私は多対多のテーブルを持っています、としましょう:
PersonJob(personId,jobId)
クラスター化インデックス(personId、jobId)を使用します。
質問は:
SQLのどこかにある場合は、次のようなクエリを作成します。
SELECT *
FROM PersonJob JOIN Job ON PersonJob.jobId = Job.jobId
.......
そのクラスター化インデックスを利用して、PersonJobテーブル内の特定のjobIdを持つレコードを検索しますか?または、PersonJobテーブルのjobId列に新しい非クラスター化非一意インデックスを作成する方がよいでしょうか?
ありがとうPawel
クラスター化インデックスの利点はなく、クエリは引き続きPersonJobテーブルのすべての行をスキャンする必要があります。
クラスター化インデックス(jobID、personId)で列が逆になっている場合は、インデックスを利用します。クラスター化インデックスは、インデックスを形成する列の値によってテーブル内の実際の行を並べ替えることを考慮してください。したがって、(personId、jobID)のクラスター化インデックスを使用すると、同じpersonIdを持つすべての行が(jobIDの順序で)「グループ化」されますが、同じjobIDを持つ行はテーブル全体に分散されます。