SQL Server 2012 で古典的なパラメーター スニッフィングの問題に遭遇しました。いくつかの調査に基づいて、この問題に関する複数のオプションを見つけました。違いを理解するために必要な 2 つのオプションはOPTION(OPTIMIZE FOR UNKNOWN)
vsOPTION(RECOMPILE)
です。
この問題が発生しているクエリの最後に使用することをためらっていますOPTION(RECOMPILE)
。これは、サーバーが毎回新しい実行計画を生成することを強制するためです。このクエリを頻繁に呼び出すと、そのマシンの CPU が急増します。
利用可能な最良のソリューションを使用するために、2 つのオプションの実際の違いは何ですか?
OPTION(OPTIMIZE FOR UNKNOWN)
毎回再コンパイルする代わりにキャッシュを再利用しますか?