分享方式:


伺服器組態:每個查詢的記憶體下限

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中設定 min memory per query 伺服器組態選項。 選項 min memory per query 會指定要為查詢執行配置的最小記憶體數量(以 KB 為單位)。 這也稱為最小記憶體授與。 例如,如果 min memory per query 設定為 2,048 KB,則保證查詢至少會取得那麼多的總記憶體。 預設值為 1,024 KB。 最小值是 512 KB,最大值則是 2,147,483,647 KB (2 GB)。

限制

每個查詢的最小記憶體數量之優先順序,高於 [索引建立記憶體] 選項。 若您同時變更了兩個選項,且索引建立記憶體選項小於每個查詢的最小記憶體,您會看到警告訊息,但仍會設定該值。 執行查詢時,您會看到另一個類似的警告。

建議

此選項是進階選項,只有具經驗的資料庫管理員或通過認證的 SQL Server 專業人員才可變更。

SQL Server 查詢處理器會嘗試判斷要配置給查詢的最佳記憶體數量。 min memory per query 選項可讓系統管理員指定任何單一查詢所接收的最小記憶體數量。 若查詢中含有大量資料的雜湊和排序作業,則這些查詢通常會接收比此值更多的記憶體。 增加每個查詢的最小記憶體值可能會改善一些小型到中型查詢的效能,但這樣做可能會導致記憶體資源的競爭增加。 每個查詢的最小記憶體選項包含為排序作業所配置的記憶體。

請勿設定每個查詢伺服器組態選項的最小記憶體太高,特別是在非常忙碌的系統上,因為查詢必須等候1 ,才能保護所要求的最小記憶體,或直到超過查詢等候伺服器組態選項中指定的值為止。 如果記憶體比執行查詢所需的指定最小值還多,如果查詢可以有效地使用記憶體,則允許查詢使用額外的記憶體。

1 在此案例中,等候類型通常是 RESOURCE_SEMAPHORE。 如需詳細資訊,請參閱 sys.dm_os_wait_stats

權限

不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 以同時設定兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式時,使用者必須取得 ALTER SETTINGS 伺服器層級權限。 sysadminserveradmin 固定伺服器角色隱含地持有 ALTER SETTINGS 權限。

使用 SQL Server Management Studio

  1. 在物件總管中,請以滑鼠右鍵按一下伺服器,然後選取 [屬性]。

  2. 選取 [ 記憶體] 節點。

  3. 在 [ 每個查詢 的最小記憶體] 方塊中,輸入要配置給執行查詢的最小記憶體數量(以 KB 為單位)。

使用 Transact-SQL

  1. 連線至資料庫引擎。

  2. 在標準列上,選取 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 此範例示範如何使用 sp_configuremin memory per query 選項的值設定為 3500 KB。

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'min memory per query', 3500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

後續操作:設定每個查詢的最小記憶體選項之後

設定會立即生效,不需要重新啟動伺服器。