1

私はまっすぐな答えを見つけることができないようです。次の列があります。

ZipCode
StateAbbreviation
CountyName

ZipCode単独またはStateAbbreviation/CountyName組み合わせてテーブルをクエリします。PKId列が定義されているので、これがクラスター化インデックスです。

より良いパフォーマンス/効率を達成するための推奨されるアプローチは何ですか? テーブルの検索方法を考慮して、どのような種類のインデックスを作成する必要がありますか?

4

2 に答える 2

1

まず、アプリを実行して、インデックスなしで十分に高速かどうかを確認します。

2 つ目 - いくつかの場所で遅い場合は、このコードが生成する SQL ワークロードを見つけます - どのような種類のクエリがありますか? ZipCodeいずれかまたは にインデックスを追加して(StateAbbreviation, CountyName)から、アプリを再度実行してパフォーマンスを確認してください。

その 1 つのインデックスで問題が解決した場合 -> 暇な時間を楽しんでください。:-)

そうでない場合: 2 番目のインデックスを追加し、それが役立つかどうかを確認します。

できるという理由だけで、インデックスをやりすぎないでください。痛い時だけ、一人ずつ。事前にインデックスを追加するだけではなく、パフォーマンスに問題ある場合にのみ追加してください。そして、それが役立つかどうかを確認するには、測定、測定、および再度測定し、以前の測定値のベースラインと比較する必要があります.

非クラスター化インデックスが使用されることは驚くほどまれです。非クラスター化インデックスがSQL Server クエリ オプティマイザーによって考慮されるには、クエリが適切である必要があります。テーブルが「小さすぎる」場合は、テーブル スキャンが優先されます。常に使用SELECT *すると、非クラスター化インデックスも無視される可能性があります。

于 2013-12-05T06:45:20.710 に答える