程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 揭秘SQL Server 2014有哪些新特性(2)-固態硬盤 Buffer Pool(緩沖池) 擴展

揭秘SQL Server 2014有哪些新特性(2)-固態硬盤 Buffer Pool(緩沖池) 擴展

編輯:關於SqlServer

簡介

    SQL Server 2014中另一個非常好的功能是,可以將SSD虛擬成內存的一部分,來供SQL Server數據頁緩沖區使用。通過使用SSD來擴展Buffer-Pool,可以使得大量隨機的IOPS由SSD來承載,從而大量減少對於數據頁的隨機IOPS和PAGE-OUT。

SSD AS Buffer Pool

    SSD是固態硬盤,不像傳統的磁盤有磁頭移動的部分,因此隨機讀寫的IOPS遠遠大於傳統的磁盤。將SSD作為Buffer Pool的延伸,就可以以非常低的成本巨量的擴充內存。而傳統的模式是內存只能容納下熱點數據的一小部分,從而造成比較大的Page-Out,如圖1所示。

圖1.大量隨機的IOPS需要由磁盤陣列所承擔

    但如果考慮到將SSD加入計算機的存儲體系,那麼內存可以以非常低的成本擴展到約等於熱點數據,不僅僅是提升了性能,還可以減少IO成本,如圖2所示。

圖2.擴展後內存幾乎能HOLD所有熱點數據

    由圖1和圖2的對比可以看出,擴展後可以使用更便宜的SATA存儲。此外,該特性是透明的,無需應用程序端做任何的改變。

    此外,該特性為了避免數據的丟失,僅僅在作為緩沖區的SSD中存儲Buffer Pool的Clean Page,即使SSD出現問題,也只需要從輔助存儲中Page In頁即可。

    最後,該特性對於NUMA進行了特別優化,即使擁有超過8個Socket的系統,CPU也能無障礙的訪問內存。

啟用BUFFER Pool Extension

    在SQL Server 2014總,啟用Buffer Pool Extension非常簡單,僅僅需要擁有SysAdmin權限後,輸入一個T-SQL語句即可,如圖3所示。

   

    圖3.啟用Buffer Pool Extension

    對應的,我們可以在物理磁盤中看到這個擴展文件,該文件的性能和Windows的虛擬內存文件非常類似,如圖4所示。

   

    圖4.對應的Buffer Pool擴展文件

    但這裡值得注意的是,我們啟用的內存擴展無法小於物理內存或阈值,否則會報錯,如圖5所示。

   

    圖5.報錯信息

    對於該功能,SQL Server引入了一個全新的DMV和在原有的DMV上加了一列,來描述Buffer Pool Extention,如圖6所示。

   

    圖6.引入的新的DMV和對於原有DMV的更新

    此外,對於該特性的監控,SQL Server還引入了大量與之相關的計數器,如圖7所示。

   

    圖7.相關計數器

小結

    SQL Server Buffer Pool Extension給我們提供了以更低成本來滿足更高企業級需求的可能,結合內存數據庫,未來的可能性將無限延伸。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved