0

int identity主キーと。の2つの列を持つ単純なテーブルがありますvarchar(64)VarChar一意性を強制するために、列に一意性制約/インデックスを配置しています。通常のクエリパターンでは、列に値をクエリしてから、結合でPK値を使用して、他のテーブルで他のデータを検索します。

非クラスター化インデックスを一意にすることで速度のメリットはありますか?

PK列を非クラスター化インデックスに含めることは理にかなっていますか?それとも、そもそもクラスター化されたPKであるため、すでにそこにありますか?

ありがとう。

4

1 に答える 1

2

非クラスター化インデックスにPKを追加する必要はありません。ご指摘のとおり、すべての非クラスター化インデックスにはすでにPKが含まれています。

もちろん、一意の制約があると、そのインデックスをクエリする際のパフォーマンスが向上します。これは、クエリオプティマイザーが、一致するものが1つしかないことがわかっている場合に、さまざまなメカニズムを使用してデータを検索できるためです。

于 2012-06-07T21:00:37.220 に答える