optimize for ad hoc workloads 選項
optimize for ad hoc workloads 選項是用來針對包含許多使用一次特定批次的工作負載,改善計畫快取的效率。如果這個選項設定為 1,Database Engine 就會在首次編譯批次時,將小型已編譯計畫虛設常式 (而非完整的已編譯計畫) 儲存在計畫快取中。這會透過避免計畫快取填滿不重複使用的已編譯計畫,協助減輕記憶體不足的壓力。
已編譯計畫虛設常式可讓 Database Engine 辨識出這個特定批次先前已經編譯,但是只儲存已編譯計畫虛設常式,如此再次叫用 (編譯或執行) 這個批次時,Database Engine 就會編譯此批次、從計畫快取中移除已編譯計畫虛設常式,並且將完整的已編譯計畫加入至計畫快取。
將 optimize for ad hoc workloads 設定為 1 只會影響新的計畫。已經存在計畫快取中的計畫則不會受到影響。
已編譯計畫虛設常式是 sys.dm_exec_cached_plans 目錄檢視所顯示的其中一個 cacheobjtype。它具有唯一的 SQL 控制代碼和計畫控制代碼。已編譯計畫虛設常式沒有相關聯的執行計畫,因此查詢計畫控制代碼將不會傳回 XML 執行程序表。