動的検索条件の最適なソース:
ErlandSommarskogによるT-SQLの動的検索条件
インデックスを使用できるかどうかに関して、これをどのように行うかについては、多くの微妙な影響があります。 SQL Server 2008の適切なリリースを使用している場合は、OPTION (RECOMPILE)
を追加するだけです。 クエリに追加され、実行時のローカル変数の値が最適化に使用されます。
これを考慮してください、OPTION (RECOMPILE)
このコードを取得します(この混乱したOR
でインデックスを使用することはできません s):
WHERE
(@search1 IS NULL or [email protected])
AND (@search2 IS NULL or [email protected])
AND (@search3 IS NULL or [email protected])
実行時に最適化して(@ Search2のみが値とともに渡された場合):
WHERE
[email protected]
インデックスを使用できます(Column2で定義されている場合)