設定每筆查詢的最小記憶體數 (伺服器組態選項)
適用於:SQL Server
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中設定 [每次查詢的最少記憶體] 伺服器設定選項。 每個查詢的最小記憶體 選項會指定為執行查詢所配置的最小記憶體數量 (以 KB 為單位)。 這也稱為最小記憶體授與。 例如,如果將 min memory per query 設成 2,048 KB,就可以保證查詢至少有這些記憶體量可使用。 預設值為 1,024 KB。 最小值是 512 KB,最大值則是 2,147,483,647 KB (2 GB)。
本主題內容
開始之前:
使用下列方法設定 min memory per query 選項:
開始之前
限制事項
- 每個查詢的最小記憶體數量之優先順序,高於 [索引建立記憶體] 選項。 若您同時變更了兩個選項,且索引建立記憶體選項小於每個查詢的最小記憶體,您會看到警告訊息,但仍會設定該值。 執行查詢時,您會看到另一個類似的警告。
建議
此選項是進階選項,只有具經驗的資料庫管理員或通過認證的 SQL Server 專業人員才可變更。
SQL Server 查詢處理器會嘗試判斷要配置給查詢的最佳記憶體數量。 min memory per query 選項可讓系統管理員指定任何單一查詢所接收的最小記憶體數量。 若查詢中含有大量資料的雜湊和排序作業,則這些查詢通常會接收比此值更多的記憶體。 提高 min memory per query 的值也許可以改善一些小型至中型查詢的效能,但這樣做也可能導致競用記憶體資源的情形增加。 每個查詢的最小記憶體選項包含為排序作業所配置的記憶體。
因為查詢必須等到1其可取得要求的最小記憶體,或是等到超過查詢等候伺服器設定選項中指定的值為止,所以請勿將 min memory per query 伺服器設定選項設得太高,特別是在非常忙碌的系統上。 如果可用的記憶體多於執行所需的指定最小值,那麼只要記憶體可以有效地供查詢使用,查詢就會利用額外的記憶體。
1 在此情況下,等候類型通常是 RESOURCE_SEMAPHORE。 如需詳細資訊,請參閱 sys.dm_os_wait_stats (Transact-SQL)。
安全性
權限
不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 以同時設定兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式時,使用者必須取得 ALTER SETTINGS 伺服器層級權限。 系統管理員 (sysadmin) 及 serveradmin 固定伺服器角色會隱含 ALTER SETTINGS 權限。
使用 SQL Server Management Studio
設定 min memory per query 選項
在物件總管中,請以滑鼠右鍵按一下伺服器,然後選取 [屬性]。
按一下 [記憶體] 節點。
在 [每個查詢的最小記憶體] 方塊中,輸入將為執行查詢而配置的最小記憶體數量 (以 KB 為單位)。
使用 TRANSACT-SQL
設定 min memory per query 選項
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例示範如何使用 sp_configure 將
min memory per query
選項的值設定為3500
KB。
USE AdventureWorks2022;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE ;
GO
EXEC sp_configure 'min memory per query', 3500 ;
GO
RECONFIGURE;
GO
待處理:設定 min memory per query 選項之後
設定會立即生效,不需要重新啟動伺服器。
另請參閱
RECONFIGURE (Transact-SQL)
伺服器組態選項 (SQL Server)
sp_configure (Transact-SQL)
設定 index create memory 伺服器組態選項
sys.dm_os_wait_stats (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)