亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Server 2012內存

發布時間:2020-06-16 02:34:27 來源:網絡 閱讀:3084 作者:UltraSQL 欄目:數據庫

SQLServer 2012內存

 

翻譯自:https://mssqlwiki.com/tag/sql-server-2012-memory-architecture/

 

SQL Server 2012與之前的版本相比,內存管理器在有效的方式管理SQL Server內存消耗上做出了很多改變。每個DBA應該知道的SQL Server 2012內存的重要改變已經在這篇博文中文檔化了。如果你不熟悉之前版本的SQL Server內存架構,在你繼續了解Denali內存管理器的改變之前,我推薦你閱讀這篇文章

 

SQL Server 2012內存 

 

MaxServer Memory

 

在之前版本的SQL Server里,“Max Server Memory”控制了Single page allocator(BPOOL)可以在SQL Server中消耗的用戶地址空間的最大物理內存。

 

只有Single page allocator時候BPOOL的一部分,Max server memory只控制BPOOL,因此,以下分配來自BPOOL(Max server memory)之外。

  1. 來自SQL ServerMulti-Page分配(這些分配請求大于8KB且需要持續內存)

  2. CLR分配(這些包含SQLCLR堆和在啟動期間創建的全局分配)

  3. SQL Server進程里用于threadstacks的內存使用(Max worker threads * thread stack size)。Thread stack size32SQL Server里是512K,在WOW904K,在64位是2MB

  4. 通過Non-SQL Server dll產生的直接Windows分配(這些包含Windows堆使用和通過模塊加載到SQL Server進程里的直接虛擬分配。例如:來自擴展存儲過程DLL的分配,使用OLE自動化過程(sp_OA調用)的對象創建,加載到SQL Server進程里的鏈接服務器提供者的分配)

 

SQL Server 2012內存管理器現在已經結合了singlepage allocatormultipage allocator作為any-size page allocator。結果,any-size paeallocator現在管理分配,而在過去歸類為single pageMulti-page分配。

  1. Max server memory”現在控制和包含“Multi pages allocations”。

  2. 之前版本SQL Server CLR分配內存在BPOOLMax server memory)之外。SQL Server 2012包含在“Max server memory”里包含SQL CLR分配的內存。

 

SQL Server 2012Max servermemory”配置不只包含以下分配:

  1. SQL Server進程里對于threadstacks的內存分配。

  2. 直接對于Windows的內存分配請求(例如:來自于加載到SQL Server進程的第三方DLL的分配(HeapVirtualalloc調用),使用OLE自動化過程(sp_OA)等的對象創建)。

 

這些改變允許DBA根據內存需要和使用資源調節器更加準確的配置和控制SQL Server

 

-g啟動參數

 

我們使用-g啟動選項修改在SQL Server用戶地址空間稱為“Memory-To-Reserve”的一個區域的默認值。這個區域也被為“Memory-To-Leave”或MTL。這個“Memory-To-Reserve”或-g配置選項只與32SQL Server實例相關。

 

在之前的SQL Server版本里,直到SQL Server 2008 R2Multi pages allocationCLRMemory-To-Reserve (-g)的一部分,從Denali開始它們是BPOOL的一部分(被Max server memory控制),因此,如果你在之前的版本設置它為multipage allocatorCLR分配更多空間,而現在遷移到Denali,你需要移除-g

 

SQL Server2012開始移除了AWE特性

 

AWE特性在之前32位版本的SQLServer中用于尋址大于4GB內存。該特性現在從Denali中移除了。參考:“AWE棄用”。因此如果你需要更多內存,那么你需要遷移到64SQL Server

 

在內存中鎖定頁

 

跟蹤標志845不再需要在內存中鎖定頁。只要SQL Server啟動賬號有“Lock pages in memory”權限,數據中心版、企業版、標準版和商業智能版對于在BPOOL中分配內存將使用AWE分配器API,該分配將會被鎖定。

 

動態虛擬地址空間管理

 

在之前版本的32SQL Server里,我們在啟動時預留了Bpool,剩下的地址空間用于MTLMemory to reserveMemory to leave)。在Denali虛擬地址空間管理是動態的(我們不在啟動時預留),因此,對于第三方組件相比使用-g參數配置,可以使用更多內存。

 

SQLCLR在啟動時加載

 

在之前版本的SQL ServerCommon language runtime(CLR)功能當第一個SQL CLR過程或函數被調用的時候在SQLServer進程內初始化。SQL Server 2012在啟動時執行SQL CLR初始化。該初始化不依賴于“clr enabled”配置選項。

 

你會注意到在服務啟動期間SQL Server錯誤日志里的如下信息:

 

2012-10-18 15:23:13.250spid8s       Starting up database ‘master’.

2012-10-18 15:23:13.930Server       CLR version v4.0.30319 loaded.

 

總的物理內存和內存模塊使用

 

在服務器上總的物理可用內存和內存模塊使用記錄在SQL Server錯誤日志。

 

2012-10-18 15:23:06.690Server       Detected 131067 MB of RAM. This isan informational message; no user action is required.

2012-10-18 15:23:06.700Server       Using locked pages in the memorymanager

2012-10-22 15:32:20.450Server       Detected 131067 MB of RAM. This isan informational message; no user action is required.
2012-10-22 15:32:20.450 Server       Using conventional memory in the memory manager.

 

DMV和性能計數器改變

 

在之前的SQL Server版本里,與SQL ServerBPOOL內和BPOOL外相關的分配,大多數DMV使用single_pages_kbmulti_pages_kb。現在它們一起體現為pages_kb。更多詳情請點擊這里



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

土默特右旗| 象州县| 孟州市| 宜丰县| 高州市| 沅陵县| 集贤县| 昭苏县| 渑池县| 拜泉县| 宣威市| 台州市| 米脂县| 穆棱市| 漳州市| 昂仁县| 广灵县| 黑河市| 白城市| 宁明县| 凌云县| 巫溪县| 施秉县| 曲靖市| 青河县| 靖西县| 怀化市| 海林市| 德令哈市| SHOW| 海晏县| 林芝县| 巢湖市| 嘉义县| 武陟县| 滨海县| 桃园市| 绍兴县| 靖西县| 广西| 镇平县|