程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 揭秘SQL Server 2014有哪些新特征(1)-內存數據庫

揭秘SQL Server 2014有哪些新特征(1)-內存數據庫

編輯:MSSQL

揭秘SQL Server 2014有哪些新特征(1)-內存數據庫。本站提示廣大學習愛好者:(揭秘SQL Server 2014有哪些新特征(1)-內存數據庫)文章只能為提供參考,不一定能成為您想要的結果。以下是揭秘SQL Server 2014有哪些新特征(1)-內存數據庫正文


簡介

   SQL Server 2014供給了浩瀚沖動人心的新功效,但個中我想最使人等待的特征之一就要算內存數據庫了。客歲我再西雅圖加入SQL PASS Summit 2012的揭幕式時,微軟就宣告了將鄙人一個SQL Server版本中附帶代號為Hekaton的內存數據庫引擎。如今跟著2014CTP1的到來,我們終究可以一窺其面孔。

內存數據庫

    在傳統的數據庫表中,因為磁盤的物理構造限制,表和索引的構造為B-Tree,這就使得該類索引在年夜並發的OLTP情況中顯得異常乏力,固然有許多方法來處理這類成績,好比說悲觀並發掌握,運用法式緩存,散布式等。但本錢仍然會略高。而跟著這些年硬件的成長,如今辦事器具有幾百G內存其實不罕有,另外因為NUMA架構的成熟,也清除了多CPU拜訪內存的瓶頸成績,是以內存數據庫得以湧現。

    內存的學名叫做Random Access Memory(RAM),是以如其特征一樣,是隨機拜訪的,是以關於內存,對應的數據構造也會是Hash-Index,而並發的隔離方法也對應的釀成了MVCC,是以內存數據庫可以在異樣的硬件資本下,Handle更多的並發和要求,而且不會被鎖壅塞,而SQL Server 2014集成了這個壯大的功效,其實不像Oracle的TimesTen須要額定付費,是以聯合SSD AS Buffer Pool特征,所發生的後果將會異常值得等待。

SQL Server內存數據庫的表示情勢

    在SQL Server的Hekaton引擎由兩部門構成:內存優化表和當地編譯存儲進程。固然Hekaton集成進了關系數據庫引擎,但拜訪他們的辦法關於客戶端是通明的,這也意味著從客戶端運用法式的角度來看,其實不會曉得Hekaton引擎的存在。如圖1所示。

圖1.客戶端APP不會感知Hekaton引擎的存在

    起首內存優化表完整不會再存在鎖的概念(固然之前的版本有快照隔離這個悲觀並發掌握的概念,但快照隔離依然須要在修正數據的時刻加鎖),另外內存優化表Hash-Index構造使得隨機讀寫的速度年夜年夜進步,別的內存優化表可以設置為非耐久內存優化表,從而也就沒有了日記(合適於ETL中央成果操作,但存在數據喪失的風險)

    上面我們來看創立一個內存優化表:

    起首,內存優化表須要數據庫中存在一個特別的文件組,以供存儲內存優化表的CheckPoint文件,與傳統的mdf或ldf文件分歧的是,該文件組是一個目次而不是一個文件,由於CheckPoint文件只會附加,而不會修正,如圖2所示。

圖2.內存優化表所需的特別文件組

我們再來看一下內存優化文件組的模樣,如圖3所示。

圖3.內存優化文件組

    有了文件組以後,接上去我們創立一個內存優化表,如圖4所示。

圖4.創立內存優化表

   今朝SSMS還不支撐UI界面創立內存優化表,是以只能經由過程T-SQL來創立內存優化表,如圖5所示。

圖5.應用代碼創立內存優化表

    當表創立好以後,便可以查詢數據了,值得留意的是,查詢內存優化表須要snapshot隔離品級或許hint,這個隔離品級與快照隔離是分歧的,如圖6所示。

圖6.查詢內存優化表須要加提醒

    另外,由創立表的語句可以看出,今朝SQL Server 2014內存優化表的Hash Index只支撐固定的Bucket年夜小,不支撐靜態分派Bucket年夜小,是以這裡須要留意。

與內存數據庫不兼容的特征

    今朝來講,數據庫鏡像和復制是沒法與內存優化表兼容的,但AlwaysOn,日記傳送,備份復原是完全支撐。

機能測試

   下面扯了一堆實際,年夜家能夠都看愁悶了。上面我來做一個簡略的機能測試,來比對應用內存優化表+當地編譯存儲進程與傳統的B-Tree表停止比較,B-Tree表如圖7所示,內存優化表+當地編譯存儲進程如圖8所示。

圖7.傳統的B-Tree表

圖8.內存優化表+當地編譯存儲進程

   是以不好看出,內存優化表+當地編譯存儲進程有接近幾十倍的機能晉升。

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