基本的にはい-SQLServer2005のパラメータスニッフィング(一部のパッチレベル)はひどく壊れています。パラメータがマスクされると数秒で完了する小さな(数千行)データセットであっても、効果的に(小さなデータセットでは数時間以内に)完了しない計画を見てきました。そして、これはパラメータが常に同じ数である場合です。これに対処すると同時に、LEFT JOIN / NULLが完了しないという多くの問題を発見し、それらをNOTINまたはNOTEXISTSに置き換えたところ、計画は完了しました。繰り返しますが、(非常に貧弱な)実行計画の問題です。これを扱っていたとき、DBAはSHOWPLANアクセスを許可しませんでした。また、すべてのSPパラメーターのマスクを開始して以来、未完了のためにこれを掘り下げる必要がある実行プランの問題はありませんでした。 。
SQL Server 2008では、OPTIMIZE FOR UNKNOWN
を使用できます。 。