針對特定工作負載最佳化伺服器組態選項

optimize for ad hoc workloads 選項是用來針對包含許多使用一次特定批次的工作負載,改善計畫快取的效率。 如果這個選項設定為 1,Database Engine 就會在首次編譯批次時,將小型已編譯計畫虛設常式 (而非完整的已編譯計畫) 儲存在計畫快取中。 這會透過避免計畫快取填滿不重複使用的已編譯計畫,協助減輕記憶體不足的壓力。

已編譯計畫虛設常式可讓 Database Engine 辨識出這個特定批次先前已經編譯,但是只儲存已編譯計畫虛設常式,如此再次叫用 (編譯或執行) 這個批次時,Database Engine 就會編譯此批次、從計畫快取中移除已編譯計畫虛設常式,並且將完整的已編譯計畫加入至計畫快取。

optimize for ad hoc workloads 設定為 1 只會影響新的計畫。已經存在計畫快取中的計畫則不會受到影響。

已編譯計畫虛設常式是 sys.dm_exec_cached_plans 目錄檢視所顯示的其中一個 cacheobjtypes。 它具有唯一的 SQL 控制代碼和計畫控制代碼。 已編譯計畫虛設常式沒有相關聯的執行計畫,因此查詢計畫控制代碼將不會傳回 XML 執行程序表。

追蹤旗標 8032 會將快取限制參數還原為 SQL Server 2005 RTM 設定,這項設定通常會允許使用更大的快取。 當經常重複使用的快取項目無法納入快取中,以及針對特定工作負載最佳化伺服器組態選項無法解決計畫快取的問題時,請使用這項設定。

警告注意事項注意

如果大型快取為其他記憶體取用者 (例如緩衝集區) 提供較少的記憶體,追蹤旗標 8032 可能會導致效能降低。

請參閱

參考

sys.dm_exec_cached_plans (Transact-SQL)

概念

伺服器組態選項