記憶體架構
SQL Server 會視需要動態地取得和釋放記憶體。雖然有指定記憶體的選項可供選擇而且在某些環境下也是必要的,但是系統管理員通常不需要指定應配置多少記憶體給 SQL Server。
SQL Server 支援 Address Windowing Extensions (AWE),允許在 32 位元版本的 Microsoft Windows 作業系統上使用超過 4 GB 的實體記憶體。最多支援 64 GB 的實體記憶體。在 Microsoft Windows 2000 上執行的 SQL Server 執行個體會使用靜態 AWE 記憶體配置,而在 Microsoft Windows Server 2003 上執行的執行個體則使用動態 AWE 記憶體配置。
[!附註]
只有在 SQL Server Enterprise Edition、Standard Edition 和 Developer Edition 中才有提供 AWE 支援,而且這項支援只適用於 32 位元的作業系統。Analysis Services 無法利用 AWE 對應記憶體的功能。如果可用的實體記憶體低於使用者模式的虛擬位址空間,則無法啟用 AWE。
所有資料庫軟體的主要設計目的之一,便是將磁碟 I/O 最小化,因為磁碟的讀取和寫入,是電腦上最需要用到大量資源的作業之一。SQL Server 會在記憶體中建立緩衝集區,以保存從資料庫讀取的頁面。SQL Server 的大部分程式碼,主要是用來最小化磁碟和緩衝集區之間實體讀取和寫入數目。SQL Server 會嘗試在兩個目標之間取得平衡:
避免緩衝集區過大,造成整個系統的記憶體不足。
最大化緩衝集區的大小以最小化資料庫檔案的實體 I/O。
如需詳細資訊,請參閱<緩衝區管理>。
根據預設,SQL Server 2005 版本會動態管理每一個執行個體的記憶體。在 Windows 2000 和更新版本的作業系統上,SQL Server 管理 AWE 對應記憶體的方法有所不同。
[!附註]
在工作負載極高的系統上,某些需要大量記憶體來執行的大型查詢因為無法取得要求的最少記憶體,而在等候記憶體資源時發生逾時錯誤。若要解決這個問題,請增加 query wait 選項。如果是平行查詢,請考慮減少 max degree of parallelism 選項。
[!附註]
在記憶體負載極高的系統中,若在查詢計畫中使用合併聯結、排序與點陣圖的查詢,當查詢無法取得點陣圖所需的最低記憶體時,會卸除點陣圖。這樣會影響查詢效能,且若排序程序無法放入記憶體中,它會增加 tempdb 資料庫中工作資料表的使用數目,導致 tempdb 成長。若要解決此問題,請新增記憶體或微調查詢以使用不同與更快的查詢計畫。如需有關微調的詳細資訊,請參閱<最佳化 tempdb 效能>與<如何:微調資料庫>。
提供最大的記憶體量給 SQL Server
透過使用 AWE 與 [記憶體中的鎖定分頁] 權限,您可以提供下列記憶體量給 SQL Server Database Engine。
32 位元 |
64 位元 |
|
---|---|---|
傳統記憶體 |
所有 SQL Server 版本:處理虛擬位址空間的最大限制:
|
所有 SQL Server 版本:處理虛擬位址空間的最大限制:
附註
在 Windows Server 2003 上,限制為 512 GB;而在 Windows Server 2003 Service Pack 1 上,限制則為 1 TB。當 Windows 支援額外的記憶體時,SQL Server 可以達到上述限制。
|
AWE 機制 (允許 SQL Server 在 32 位元平台上超過處理虛擬位址空間的限制。) |
SQL Server Standard、Enterprise 與 Developer 版本:緩衝集區最多可存取 64 GB 的記憶體。 |
無法使用3 |
在記憶體作業系統 (OS) 中鎖定分頁的權限 (允許鎖定實體記憶體,以防止鎖定記憶體的 OS 分頁)4。 |
SQL Server Standard、Enterprise 與 Developer 版本:SQL Server 處理序使用 AWE 機制所需。透過 AWE 機制配置的記憶體無法分頁。 授與此權限但未啟用 AWE 對伺服器將沒有作用。 |
SQL Server Enterprise 與 Developer 版本:建議使用,以避免作業系統分頁。視工作負載而定,可以改善效能。可存取的記憶體量類似於傳統記憶體案例。 |
1**/3gb** 是作業系統開機參數。如需詳細資訊,請造訪 MSDN Library。
2 WOW64 (Windows on Windows 64) 是 32 位元的 SQL Server 在 64 位元作業系統上執行的模式。如需詳細資訊,請造訪 MSDN Library。
3 請注意,sp_configureawe enabled 選項會出現在 64 位元的 SQL Server 上,但會忽略它。這個選項可能會在未來的版本或 64 位元的 SQL Server Service Pack 中移除。
4 如果授與在記體中鎖定分頁的權限 (在具有 AWE 支援的 32 位元上或是在 64 位元上),我們建議另外設定最大的伺服器記憶體。如需詳細資訊,請參閱<伺服器記憶體選項>。