您目前已離線,請等候您的網際網路重新連線

記憶體設定,以及調整大小的考量,在 SQL Server 2012年和更新版本

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2663912
結論
Microsoft SQL Server 會執行自動和動態記憶體內部的 SQL Server 元件,並在系統上的工作負載的目前記憶體需求為基礎的管理。SQL Server 也會提供與記憶體相關的組態選項,來幫助您取得特定的應用程式的行為模式和特定的進階的需求微調。下面是不同的組態選項:
  • sp_configure 選項 (最大伺服器記憶體 (MB)最小伺服器記憶體 (MB),以及啟用 awe 的)
  • -g啟動參數 (memory_to_reserve)
  • 鎖定的分頁

Microsoft SQL Server 2012年介紹在記憶體管理員中的變更如果會影響到系統管理員如何設定這些記憶體選項。請檢閱 SQL Server 2012年,或在設定新的 SQL Server 2012年安裝之前,您升級前此處描述的變更。

注意本文也適用於 Microsoft SQL Server 2014年。
其他相關資訊
SQL Server 2012年也會引入省掉特定類型的記憶體配置的方式和控制可以使用這些類型的配置的記憶體最大數量的記憶體組態選項的變更。在 SQL Server 2012年變更為特定記憶體配置要求從 SQL CLR 和多頁配置。SQL Server 2012年有新的頁面配置器,可管理單一頁面和多頁配置 (小於 8 KB 且大於 8 KB 配置要求)。因此,在 SQL Server 2012年沒有個別的 「 多頁配置"類別。

「 最大伺服器記憶體 (MB) 」 和 「 最小伺服器記憶體 (MB) 」 的變更

在舊版的 SQL Server (SQL Server 2005,SQL Server 2008 中,SQL Server 2008 R2),下列組態選項會決定緩衝集區所耗用的實體記憶體的限制。請注意我們談這個由 SQL Server 資料庫引擎的處理程序認可的案例、 實體記憶體中的實體記憶體:
  • 最大伺服器記憶體 (MB)
  • 最小伺服器記憶體 (MB)
Thisconfiguration 選項通常會包含小於或等於在 SQL Server 處理序中的 8 KB 的記憶體配置。這些配置 werealso 稱為"single_page_allocations"因為 SQL Server 記憶體管理員使用的頁面大小為 8 KB。這種組態並未包含下列的記憶體配置要求:
  • 從 SQL Server 的多頁配置: 這些是要求超過 8 KB 的配置。
  • CLR 配置: 這些配置包括 SQL CLR 堆積和其全域配置在 CLR 初始化期間所建立的。
  • 在 SQL Server 處理序中的執行緒堆疊的記憶體配置。
  • 直接對 Windows 的記憶體配置要求: 其中包括 Windows 堆積使用狀況] 和 [SQL Server 處理序上載入的模組所做的直接虛擬配置。這類的記憶體配置要求的範例包括擴充的預存程序的 Dll,由使用自動化程序 (sp_OA 呼叫) 和從連結的伺服器提供者的配置的物件的配置。

從 SQL Server 2012年開始,多頁配置和 CLR 配置也會包含由最大伺服器記憶體 (MB)最小伺服器記憶體 (MB)所控制的記憶體限制。這項變更提供更精確的縮放能力的瀏覽 SQL Server 記憶體管理員的所有記憶體需求。升級至 SQL Server 2012年之後,請仔細檢閱您目前的最大伺服器記憶體 (MB)最小伺服器記憶體 (MB)值。因為 SQL Server 2012年現在包含一個同步備份,而它就更多的記憶體配置,相較於較早版本的帳戶,您應該檢閱這類的值。這些變更套用到 32 位元和 64 位元版本的 SQL Server 2012年。

下表會指出特定類型的記憶體配置由最大伺服器記憶體 (MB) ] 與 [最小伺服器記憶體 (MB)的 「 組態 」 選項。
記憶體配置的類型SQL Server 2005 中,SQL Server 2008,SQL,Server 2008 R2SQL Server 2012,SQL Server 2014
單頁配置是的多個合併到 「 任何大小 」 頁面配置
多頁配置是的多個合併到 「 任何大小 」 頁面配置
CLR 配置
執行緒堆疊的記憶體
直接從 Windows 的配置
SQL Server 2012年和更新版本中可能會配置更多的記憶體比最大伺服器記憶體設定中所指定的值。伺服器記憶體總計 (KB)值已達到 (如同 [最大伺服器記憶體所指定) 的 [目標伺服器記憶體 」 (KB)] 設定時,可能會發生這個問題。如果沒有符合需求的多頁記憶體要求 (多個 8 KB),因為記憶體分散的連續可用記憶體不足,SQL Server 就可以執行過高的承諾,而不是拒絕記憶體要求。

只要執行這項配置時,資源監視器就會開始釋放已配置的記憶體,並嘗試將伺服器記憶體總計 (KB)值 belowthe目標伺服器記憶體 」 (KB)規格。因此,SQL Server 記憶體使用量簡短可能超過最大伺服器記憶體設定。在此情況下,[最大伺服器記憶體] 與 [目標伺服器記憶體 」 (KB)設定,將會超過總伺服器記憶體 」 (KB)效能計數器讀取。

這個問題通常會在下列作業所示:
  • 大型的 Columnstore 索引查詢
  • Columnstore 索引 (重新) 建立時,執行雜湊與排序作業的情況下,這在使用大量的記憶體
  • 需要大量記憶體緩衝區的備份作業
  • 追蹤需要儲存大型的輸入的參數的作業

SQL Server 2014年累積更新 8SQL Server 2014 sp1 的累積更新 1引入更快的記憶體版本中,改善,上述的概觀中所述。此外,SQL Server 2014年累積更新 9解決記憶體配置問題涉及過度的承諾。如需詳細資訊,請參閱下列微軟知識庫文件:
如需有關記憶體的部分,顯示由 [最大伺服器記憶體] 設定所控制的詳細資訊,請參閱 伺服器記憶體伺服器組態選項 線上叢書 》 的主題。

"Memory_to_reserve"的變更


在舊版的 32 位元 SQL Server (SQL Server 2005,SQL Server 2008 中,SQL Server 2008 R2) 中,SQL Server 記憶體管理員設定保留部分程序虛擬位址空間,以讓使用下列的配置要求:
  • 從 SQL Server 的多頁配置: 這些是要求超過 8 KB 的配置。
  • CLR 配置: 這些配置包括 SQL CLR 堆積和其全域配置在 CLR 初始化期間所建立的。
  • 在 SQL Server 處理序中的執行緒堆疊的記憶體配置。
  • 直接對 Windows 的記憶體配置要求: 這些配置要求包括 Windows 堆積使用狀況] 和 [SQL Server 處理序上載入的模組所做的直接虛擬配置。這類的記憶體配置要求的範例包括擴充的預存程序的 Dll,由使用自動化程序 (sp_OA 呼叫) 和從連結的伺服器提供者的配置的物件的配置。

保留給這些配置的虛擬位址空間是由memory_to_reserve的 [設定] 選項所決定的。SQL Server 會使用預設值是 256 MB。若要覆寫預設值,請使用 SQL Server -g啟動參數。這部分的虛擬位址空間亦稱為 「 保留到記憶體"或"非-緩衝集區的地區]。

由於 SQL Server 2012年新 「 任何大小 」 頁面配置器處理大於 8 KB 的配置, memory_to_reserve值不包括多頁配置。這項變更,除了其他項目保持不變,與這個組態選項。

下表指出 SQL Server 處理序是否特定類型的記憶體配置可分為虛擬位址空間的memory_to_reserve區域。
記憶體配置的類型SQL Server 2005,SQL Server 2008年,SQL Server 2008 R2SQL Server 2012,SQL Server 2014
單頁配置否,多個合併到 「 任何大小 」 頁面配置
多頁配置否,多個合併到 「 任何大小 」 頁面配置
CLR 配置
執行緒堆疊的記憶體
直接從 Windows 的配置

變更其他記憶體相關的組態選項

如果您設定 SQL Server 2005、 SQL Server 2008 中或 SQL Server 2008 R2,若要使用 「 已啟用 awe"選項,請檢閱下列的文件,以了解這個組態選項的重要變更:

如果您設定 SQL Server 2005 時,SQL Server 2008 或 SQL Server 2008 R2 使用 「 鎖定的頁 」 的功能,請檢閱下列的文件,以了解這個組態選項的重要變更:

對於 SQL Server 的各種版本的最大的記憶體使用情形

不同版本的 SQL Server 對他們可以使用的各種資源的最大限制。會有限制的 SQL Server 的不同版本的最大記憶體使用量上強制執行。例如,SQL Server 2008 R2 標準版的執行個體可以使用 64 GB 的最大記憶體。完整的詳細資訊,請移至下列的 MSDN 網頁:從 SQL Server 2012年開始,這些記憶體會強制執行限制只針對資料庫快取 (緩衝集區)。SQL Server 記憶體管理員中的快取的其餘部分都可以使用更多的記憶體比由這些版本限制所指定。例如,SQL Server 2012年表達的版本可以使用其資料庫快取 1.4 g 的最大大小。其他 (例如程序快取、 中繼資料快取,等等) 的快取可能會耗用記憶體到 「 最大伺服器記憶體 」 設定所指定的大小為止。

警告:本文為自動翻譯

內容

文章識別碼:2663912 - 最後檢閱時間:11/07/2015 07:18:00 - 修訂: 6.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2014 Enterprise

  • kbtshoot kbmt KB2663912 KbMtzh
意見反應
s://c.microsoft.com/ms.js">