SQL Server 2008 OPTIMIZE FOR UNKNOWN クエリ ヒントを読みました。私はそれがどのように機能するかを理解しています。
しかし、いつ、どこで使用するかについて質問があります。UDF 内で指定することはできません。ストアド プロシージャ内で指定できます。ただし、このMSDN ブログ投稿には次のように記載されています。
4. クエリをストアド プロシージャに移動すると、それを別のプロシージャ コンテキストに入れることができ、その値をオプティマイザに表示するのに適した方法になります (注: これは SQL 2000 でも機能します)。
これは、ストアド プロシージャに渡されるすべてのパラメーターが「盗聴」され、それによって SQL Server が最適な実行プランをコンパイルするのに役立つと言っているように思えます。これは、キャッシュされたプランが再検討/再コンパイルされることを意味しています (そのメカニズムは不明です)。ただし、OPTIMIZE FOR UNKNOWN の必要性がすべて無効になるため、これは混乱を招きます。
クエリ ヒントに関する MSDN の記事では、私の質問は取り上げられていません。
理想的には、これを解決する Microsoft からの何かへのポインターを使用して、誰かが私のためにこれに答えることができますか? ありがとう。