設定 index create memory (伺服器組態選項)
適用於:SQL Server
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中設定 [索引建立記憶體] 伺服器設定選項。 [索引建立記憶體] 選項會控制在建立索引時,一開始為排序作業所配置的記憶體數量上限。 這個選項的預設值是 0 (自我設定)。 若稍後在建立索引時需要更多記憶體,且有足夠的記憶體可用,則伺服器會使用該記憶體,因而超過此選項的設定。 若沒有更多可用的記憶體,則會使用預先配置的記憶體繼續進行索引建立作業。
本主題內容
開始之前:
使用下列方法設定 index create memory 選項:
開始之前
限制事項
[每個查詢的最小記憶體] 選項之設定,優先順序高於 [索引建立記憶體] 選項。 若您同時變更了兩個選項,且 index create memory 小於 min memory per query,您會看到警告訊息,但仍會設定該值。 執行查詢時,您會看到同樣的警告。
使用資料分割資料表與索引時,如果有非對齊之資料分割索引與高度平行處理,建立索引時所需的最低記憶體需求會大幅增加。 此選項會控制在單一索引建立作業中,為所有索引資料分割配置的初始記憶體數量總計。 若此選項設定的記憶體數量小於執行查詢所需的最低記憶體需求,則查詢會終止,且會顯示錯誤訊息。
此選項的執行值將不會超過執行 SQL Server 之作業系統與硬體平台可用的實際記憶體數量。
建議
此選項是進階選項,只有具經驗的資料庫管理員或通過認證的 SQL Server 專業人員才可變更。
[索引建立記憶體] 選項為自我設定,並且通常不需要調整便可使用。 然而,如果無法建立索引,請考慮增加這個選項的執行值。
對生產系統建立索引通常是難得執行的工作,多半排程為工作在離峰時間執行。 因此,一旦有機會在離峰時間或是在建立索引不頻繁時,加大 [索引建立記憶體] 可能有助於改善建立索引的效能。 但仍請儘量將 [每個查詢的最小記憶體] 設定選項維持在較小的值,讓索引建立作業即使無法取得要求的記憶體,還是能夠啟動。
安全性
權限
不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 以同時設定兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式時,使用者必須取得 ALTER SETTINGS 伺服器層級權限。 系統管理員 (sysadmin) 及 serveradmin 固定伺服器角色會隱含 ALTER SETTINGS 權限。
使用 SQL Server Management Studio
若要設定 index create memory 選項
在物件總管中,請以滑鼠右鍵按一下伺服器,然後選取 [屬性]。
按一下 [記憶體] 節點。
在 [索引建立記憶體] 之下,輸入或選取所要的索引建立記憶體選項值。
index create memory 選項可用來控制索引建立排序所使用的記憶體大小。 [索引建立記憶體] 屬於自我設定的選項,而且不需調整即可適用於大部份情況。 然而,如果無法建立索引,請考慮增加這個選項的執行值。 查詢排序是透過 min memory per query 選項來控制。
使用 TRANSACT-SQL
若要設定 index create memory 選項
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例示範如何使用 sp_configure 將
index create memory
選項的值設定為4096
。
USE AdventureWorks2022;
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'index create memory', 4096
GO
RECONFIGURE;
GO
如需詳細資訊,請參閱伺服器設定選項 (SQL Server)。
待處理:設定 index create memory 選項之後
設定會立即生效,不需要重新啟動伺服器。
另請參閱
sys.configurations (Transact-SQL)
RECONFIGURE (Transact-SQL)
伺服器記憶體伺服器組態選項
伺服器組態選項 (SQL Server)
sp_configure (Transact-SQL)