伺服器組態:索引建立記憶體

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中設定 index create memory 伺服器組態選項。 選項 index create memory 會控制建立索引時,一開始配置給排序作業的記憶體數量上限。 這個選項的預設值為 0 (自我設定)。 如果稍後需要更多記憶體來建立索引,而且記憶體可供使用,伺服器就會使用它。 這樣做超過此選項的設定。 如果無法使用更多記憶體,索引建立會繼續使用已配置的記憶體。

限制

每個查詢選項的最小記憶體設定優先順序高於 index create memory 選項。 如果您同時變更選項且 index create memory 小於 min memory per query,您會收到警告訊息,但已設定值。 執行查詢時,您會看到同樣的警告。

當您使用分割數據表和索引時,如果有非對齊的數據分割索引和高度平行處理原則,索引建立的最低記憶體需求可能會大幅增加。 此選項控制在單次索引建立作業中,配置給所有索引分割區的記憶體初始總量。 如果此選項所設定的數量小於執行查詢所需的最小值,查詢就會以錯誤訊息終止。

此選項的執行值不會超過可用於 SQL Server 執行所在的作業系統和硬體平台的實際記憶體數量。

建議

此選項是進階選項,只能由經驗豐富的資料庫專業人員變更。

此選項 index create memory 是自我設定,而且通常不需要調整即可運作。 然而,如果您在建立索引時遇到困難,請考慮將此選項的值調高到高於目前的執行值。

在生產系統上建立索引通常是不常執行的作業,通常會排程成工作,以便在離峰時段執行。 因此,當不常建立索引,且是在離峰時段進行時,增加 index create memory 可以提升索引建立效能。 不過,將每個查詢組態選項的最小記憶體保留為較低的數位,因此即使所有要求的記憶體都無法使用,索引建立作業仍會啟動。

權限

不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 若要使用這兩個參數執行 sp_configure 以變更組態選項,或執行 RECONFIGURE 陳述式,使用者必須獲授與 ALTER SETTINGS 伺服器層級權限。 ALTER SETTINGS 權限由 sysadmin 和 serveradmin 固定伺服器角色隱含擁有。

使用 SQL Server Management Studio

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

  2. 選取 記憶體 節點。

  3. 在 [索引建立記憶體] 之下,輸入或選取所要的索引建立記憶體選項值。

    index create memory使用 選項來控制索引建立排序所使用的記憶體數量。 此選項 index create memory 是自我設定,在大部分情況下應該運作,而不需要調整。 然而,如果您在建立索引時遇到困難,請考慮將此選項的值從目前的執行值調高。 查詢排序是透過 min memory per query 選項來控制。

使用 Transact-SQL

  1. 連線至資料庫引擎。

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

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

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'index create memory', 4096;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

如需詳細資訊,請參閱伺服器設定選項。

後續操作:設定索引建立記憶體選項之後

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