記憶體組態
下節說明最佳化資料庫效能所需的 SQL Server 記憶體設定。
最大伺服器記憶體
最大伺服器記憶體選項可設定 SQL Server 執行個體可使用的最大記憶體容量。如果在執行 SQL Server 的同一部伺服器上執行多個應用程式、而且您想要保證這些應用程式有足夠的記憶體可以正常運作、通常會使用此功能。
有些應用程式只會在啟動時使用任何可用的記憶體、而且不會要求額外的記憶體、即使這些應用程式的記憶體承受著記憶體壓力。這就是最大伺服器記憶體設定的作用所在。
在具有多個 SQL Server 執行個體的 SQL Server 叢集上、每個執行個體可能會爭用資源。為每個 SQL Server 執行個體設定記憶體限制、有助於保證每個執行個體的最佳效能。
* NetApp 建議 * 為作業系統保留至少 4GB 至 6GB 的 RAM 、以避免效能問題。 |
使用 SQL Server Management Studio 調整最小和最大伺服器記憶體。
若要使用 SQL Server Management Studio 調整最小或最大伺服器記憶體、必須重新啟動 SQL Server 服務。您也可以使用以下代碼、使用 TransAct SQL ( T-SQL )來調整伺服器記憶體:
EXECUTE sp_configure 'show advanced options', 1 GO EXECUTE sp_configure 'min server memory (MB)', 2048 GO EXEC sp_configure 'max server memory (MB)', 120832 GO RECONFIGURE WITH OVERRIDE
不一致的記憶體存取
非一致性記憶體存取( NUMA )是一項記憶體存取最佳化技術、可協助避免處理器匯流排上的額外負載。
如果在安裝 SQL Server 的伺服器上設定 NUMA 、則不需要額外的組態、因為 SQL Server 可感知 NUMA 並在 NUMA 硬體上執行良好。
索引會建立記憶體
索引建立記憶體選項是另一個進階選項、通常不需要變更為預設值。
它控制最初分配給建立索引的最大 RAM 容量。此選項的預設值為 0 、這表示它是由 SQL Server 自動管理。不過、如果您在建立索引時遇到困難、請考慮增加此選項的值。
每個查詢的最小記憶體
執行查詢時、 SQL Server 會嘗試分配最適當的記憶體量、以有效執行。
根據預設, [ 每個查詢的最小記憶體 ] 設定會為每個要執行的查詢分配 >= 至 1024KB 。最佳做法是將此設定保留為預設值、以便 SQL Server 能夠動態管理分配給索引建立作業的記憶體量。不過、如果 SQL Server 的 RAM 超過有效執行所需的容量、則如果您增加此設定、某些查詢的效能可能會大幅提升。因此、只要 SQL Server 、任何其他應用程式或作業系統未使用的伺服器上有可用的記憶體、則提升此設定有助於整體 SQL Server 效能。如果沒有可用的可用記憶體、增加此設定可能會影響整體效能。