パラメータクエリを実行した場合、最初に実行したパラメータでクエリがコンパイルされますので、リコンパイルされるまでは、パラメータが変わってもそのプランが使用されることになります。なってしまう場合などは大きく影響が出てきます。使用することで、実際に渡されたパラメータではなく、クエリヒントとして実行時のパラメータを明示的に指定することができます。なっていたかと思います。元にクエリの実行プランが組み立てられているためです。実行された場合のプランを使用したいという場合があります。実行していた場合のクエリを以下のように変更します。プロシージャキャッシュはクリアしてあります。渡された状態でクエリがコンパイルされます。ヒントを使うことで同じのパラメータが渡された状態でクエリを実行することが可能となります。いうオプションが追加されています。オプティマイザーでクエリをコンパイルおよび最適化するときに、強制パラメーター化によって作成されたパラメーターも含め、すべてのローカル変数に対して初期値の代わりに統計データを使用することを指定します。このオプションを使うとパラメータではなく統計データをもとにクエリのコンパイルが行われるようになります。して指定することができます。違っていることが確認できます。することができるようです。先ほどのクエリを以下のように変更してみます。@param左がトレースフラグを指定しないで実行したクエリ、右がトレースフラグを指定して実行したクエリとなります。指定した場合と同じになっています。具体的にプランが変わるようなデータを持っていなかったので、概略だけになりますが、クエリ実行は奥が深いですね~。チューニング等をメインにしていますが、本ブログで情報発信している内容に関することでしたら対応できます。お仕事のご相談がありましたらTwitterfacebookやブログのコメントでご連絡いただけると幸いです。ブログにコメント頂いた内容は私が承認しない限り表示されません。受賞させていただきました。本ブログの内容は個人的に検証したものとなり、検証結果を含め記載している内容を保証するものではありません。体験記の連載をさせていただきました。最後まで飲み切れず...。