index create memory 選項

在 SQL Server 中,index create memory 選項會控制最初配置來建立索引的記憶體數量上限。若建立索引時需要更多記憶體,且有足夠的記憶體可用,則伺服器會使用該記憶體,因而超過此選項的設定。若沒有更多可用的記憶體,則會使用預先配置的記憶體繼續進行索引建立作業。

由於 SQL Server 2005 中引進的資料分割資料表與索引,在非對齊之資料分割索引與高度平行處理的情況下,建立索引時所需的最低記憶體需求會大幅增加。從 SQL Server 2005 開始,此選項會控制在單一索引建立作業中,為所有索引分割區配置的初始記憶體數量總計。若此選項設定的記憶體數量小於執行查詢所需的最低記憶體需求,則查詢會終止,且會顯示錯誤訊息。

index create memory 選項為自我設定,並且通常不需要調整便可使用。然而,如果無法建立索引,請考慮增加這個選項的執行值。

這個選項的預設值是 0 (自我設定)。

此選項的執行值將不會超過執行 SQL Server 之作業系統與硬體平台可用的實際記憶體數量。在 32 位元作業系統上,執行值會低於 3 GB。

[!附註]

min memory per query 選項之設定的優先順序高於 index create memory 選項。在 SQL Server 2000 中,這些選項是彼此獨立的,但是從 SQL Server 2005 開始,它們具有互動關係。若您同時修改了兩個選項,且 index create memory 小於 min memory per query,您會看到警告訊息,但仍會設定該值。執行查詢時,您會看到同樣的警告。

index create memory 屬於進階選項。若使用 sp_configure 系統預存程序來變更該設定,只有當 show advanced options 設為 1 時,才可以變更 index create memory。這個設定會立即生效 (不需重新啟動伺服器)。

範例

若要將 index create memory 選項設定為 4096:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'index create memory', 4096
GO
RECONFIGURE;
GO