0

SQL2005 データベースをスキャンすると、テーブルに次の 2 つのインデックスが表示されました。

**PK_CLUSTERED_INDEX**
 USER_ID
 COMPANY_ID
 DEPARTMENT_ID

**NON-unique_NON-clustered_INDEX**
 USER_ID
 COMPANY_ID

私の最初の考えは、PK_CLUSTERED_INDEX には既にこれらの列が含まれているため、最後のインデックスを削除し、正しい順序と並べ替えを行うことです。最後のインデックスはまったく利益をもたらしますか?

4

3 に答える 3

0

この場合、一意でないインデックスを削除します。オプティマイザヒットすることはないと思います。最初のインデックスはより一意であり、一致を見つけた後の行の検索は必要ありません。

最初のものは全体的に優れています.2番目のものを落としても何も失うことはありません.

于 2010-02-24T15:09:25.440 に答える
0

NON-unique_NON-clustered_INDEX インデックスを削除します。これは冗長であり、必要ありません。

于 2010-02-24T15:09:47.877 に答える
0

User_ID、または User_ID と Company_ID 列で検索する場合、両方のインデックスがそれを満たすことができます。ただし、これら 2 つのフィールドに加えて Department_Id もクエリされる場合は、PK インデックスのみが理想的です。

クエリが User_ID と Company_ID でフィルター処理し、他のデータ列を返す必要がある場合でも、PK インデックスにはすべてのデータが含まれているので最適です。非クラスター化インデックスはそうではありませんが、おそらく効率的ではない余分なフィールドを引き出すためにキールックアップが必要になります。

私には冗長に見えるので、間違いなく削除することを検討します。

インデックスが実際に使用されているかどうかを確認したり、使用レベルを把握するには、さまざまなインデックス使用統計スクリプトのいずれかを実行できます。良い例はここにあります。

于 2010-02-24T15:10:56.080 に答える