私は10 000行のようなテーブルを得ました。SQL Serverクエリのパフォーマンスwhere節
declare @a table
(
id bigint not null,
nm varchar(100) not null,
filter bigint
primary key (id)
)
選択は、4-5結合で、x秒かかる。 where句が追加されると、現在は3x秒かかります。 where句:
非クラスタ化インデックスを列に適用しましたが、パフォーマンスは10%しか向上しません。
ヒント?
編集:フィルタ列を追加するとパフォーマンスが問題になります。すべての結合が主キー上にあります。
結合に使用する列は、インデックスの一部ですか? – JeffO
あなたはどのフィールドを選択していますか?4-5個の結合がある場合は、それらのキーは結合の両側に索引付けされていますか? – JNK
'SELECT filter FROM @a WHERE ........ 'を実行したときのパフォーマンスはどのように見えますか?クエリオプティマイザはテーブル全体をスキャンするので(SELECTの**すべての列**を求めているので)、SELECT *を実行してインデックスを持たなければならないでしょう。 ... –