2009-08-14 13 views
0

私はモックアップリポジトリのユニットテストを書いています。実際のリポジトリはlinq2sqlにありますが、モックアップはlinq2sqlオブジェクトのリストのみを使用します。それは多くのテーブルから多くのテーブルに来るとき、効率はかなり低いです。多対多テーブルの効率的なクエリ

ここにシナリオがあります。

私はtablePersonInCommunityであり、CommunityIDとPersonIDを格納するmany2manyテーブルを持っています。また、many2manyテーブルのtablePersionInContactは、ContactIDとPersionIDを格納します。 ContactIDはContactテーブルのエンティティを指します。これは、以下の構造を有する:

ContactID int型、 ContactType INT(ビジネスまたはホーム)、 アドレス1列、 アドレス2列、 を...今

、私はレコードを取得したい次のようになります。 PersionID、BusinessContact、HomeContact

最も効率的なソリューションは何ですか? 100人の情報を含む私の簡単なテストでは、Imがリストのモックアップに対してテストする時にタイムアウトが発生しました。

ありがとうございます!

答えて

0

答えは、テーブルに適切なインデックス戦略があることを確認することになります。

so ...多対多のテーブルでは、(ContactID、PersonID)にインデックスを持ち、別の(PersonID、ContactID)にインデックスを付けることで、連絡先や連絡先で人を検索することができます人によって。

ロブ

+0

ありがとうございます。しかし、私はリストベースのモックアップにユニットテストを実行しています。インデックスを追加する方法はありません。私は自分のコードで別のアルゴリズムを使用しました。以前よりも速く同じようにありがとう! – Roy

関連する問題