08:15に150万行を返す次の大きな選択クエリがあります。私は約290列を選択するクエリを最適化する必要があり、私は速度を向上させるために列の数を減らすことはできません。SQL Serverに最適化された大規模クエリとISNULL where節
select Column1 ... Column290
from dob.table1
where (ISNULL(Column50, 1) = 1)
私は、オプティマイザはインデックスを使用しますが、正しいスキャンする頼られていないためWHERE
句で使用される場合ISNULL
はパフォーマンスコストを持っていることを読んだことがありますか?
IP_Column50 = case when IP_Column50 is null then else IP_Column50 end
と
select *
from cte
where IP_Column50 = 1
だけに、私のクエリを書き換えを設定しようとした
WHERE (ISNULL(Column50, 1) = 1)
を書き換える方法を把握しようとしています
CTEには時間がかかりました。
私がもしそうなら、このアプローチについて
を読んでISNULL(COL1、0)およびインデックス計算列ならば、結果と計算列を作成することを検討して、WHERE句で
をそれを使用しかし、私これを実装する方法がわかりません。このクエリを最適化するとどんな助けにもなります。
おかげ
'Column50'のデータ型は? –