optimize for ad hoc workloads オプションを使用すると、1 回のみ使用するアドホック バッチが多数含まれているワークロードのプラン キャッシュの効率を高めることができます。 このオプションを 1 に設定すると、完全コンパイル済みプランではなく、バッチが初めてコンパイルされるときに、データベース エンジンによって小さなコンパイル済みプラン スタブがプラン キャッシュに格納されます。 これにより、プラン キャッシュが再利用されないコンパイル済みプランでいっぱいにならないようにすることで、メモリ負荷を軽減できます。
コンパイル済みのプラン スタブを使用すると、データベース エンジンは、このアドホック バッチが以前にコンパイルされたが、コンパイル済みのプラン スタブしか格納されていないことを認識できるため、このバッチが再度呼び出される (コンパイルまたは実行される) と、データベース エンジンはバッチをコンパイルし、コンパイル済みのプラン スタブをプラン キャッシュから削除し、コンパイル済みの完全なプランをプラン キャッシュに追加します。
アドホック ワークロードの最適化を 1 に設定すると、新しいプランにのみ影響します。プラン キャッシュに既に存在するプランは影響を受けません。
コンパイル済みのプラン スタブは、sys.dm_exec_cached_plans カタログ ビューによって表示される cacheobjtype の 1 つです。 これには、一意の SQL ハンドルとプラン ハンドルがあります。 コンパイル済みのプラン スタブには実行プランが関連付けられていないため、プラン ハンドルのクエリを実行しても XML Showplan は返されません。
トレース フラグ 8032 は、キャッシュ制限パラメーターを SQL Server 2005 RTM 設定に戻します。一般に、キャッシュのサイズを大きくすることができます。 この設定は、頻繁に再利用されるキャッシュ エントリがキャッシュに収まらない場合、および アドホック ワークロードの最適化サーバー構成オプション がプラン キャッシュの問題を解決できなかった場合に使用します。
警告
トレース フラグ 8032 は、大きなキャッシュでバッファー プールなどの他のメモリ コンシューマーで使用できるメモリが少なくなると、パフォーマンスが低下する可能性があります。
こちらもご覧ください
sys.dm_exec_cached_plans (Transact-SQL)
サーバー構成オプション (SQL Server)