優化SQL SERVER 2008 索引記憶體用量 Optimize Memory for Indexing in SQL Server 2008

SQL Server 2008 預設是自行動態管理索引建立記憶體量. 若建立索引時需要更多記憶體,且有足夠的記憶體可用,則伺服器會使用該記憶體,該記憶體大小是基於伺服器記憶體選項的設定。若沒有更多可用的記憶體,則會使用預先配置的記憶體繼續進行索引建立作業.

一般來說, SQL Server 對於索引建立記憶體量可以自我調整到最佳狀態.而主要的例外是當你使用資料表或索引資料分割且非對齊之資料分割.

在某些狀況下建立索引你可能會遇到問題而失敗,如高度平行處理情況,如果真的發生時,請考慮增加這個選項的執行值.

使用索引建立記憶體請遵循以下步驟:

1. 伺服器屬性選擇記憶體頁面並在索引建立記憶體中設定數值(KB為單位)。

clip_image002

2. 點擊 OK

T-SQL

exec sp_configure "index create memory",

<number of kilobytes>

Windows PowerShell

Invoke-Sqlcmd -Query "exec sp_configure ‘index create memory’,

<num kb>"-ServerInstance "Server\Instance"

附註

索引建立記憶體執行值應該要大於每個查詢的最小記憶體.如果不是的話,SQL Server將使用每個查詢的最小記憶體執行值並且查詢時顯示警告訊息.

來源出處: Microsoft Press book Microsoft SQL Server 2008 Administrator’s Pocket Consultant, Second Edition by William R. Stanek.