伺服器組態:索引建立記憶體
適用於: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 執行所在的作業系統和硬體平台的實際記憶體數量。
建議
此選項是進階選項,只有具經驗的資料庫管理員或通過認證的 SQL Server 專業人員才可變更。
此選項 index create memory
是自我設定,而且通常不需要調整即可運作。 然而,如果無法建立索引,請考慮增加這個選項的執行值。
對生產系統建立索引通常是難得執行的工作,多半排程為工作在離峰時間執行。 因此,在建立索引不常且在離峰時間期間,增加 index create memory
可以改善索引建立的效能。 不過,將每個查詢組態選項的最小記憶體保留為較低的數位,因此即使所有要求的記憶體都無法使用,索引建立作業仍會啟動。
權限
不含參數或只含第一個參數之 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
連線至資料庫引擎。
在標準列上,選取 [新增查詢]。
複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 此範例示範如何使用 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
如需詳細資訊,請參閱伺服器設定選項。
後續操作:設定索引建立記憶體選項之後
設定會立即生效,不需要重新啟動伺服器。