濮阳杆衣贸易有限公司

主頁 > 知識庫 > 揭秘SQL Server 2014有哪些新特性(1)-內(nèi)存數(shù)據(jù)庫

揭秘SQL Server 2014有哪些新特性(1)-內(nèi)存數(shù)據(jù)庫

熱門標(biāo)簽:寧波人工外呼系統(tǒng)有效果嗎 洛陽外呼系統(tǒng)平臺 廣州人工電銷機(jī)器人費(fèi)用 地圖標(biāo)注一個圓圈怎么用 400外呼系統(tǒng)合法 真人語音電銷機(jī)器人 如何在地圖標(biāo)注自己店鋪 怎樣把地圖標(biāo)注導(dǎo)入公司地址 電銷機(jī)器人被曝光

簡介

   SQL Server 2014提供了眾多激動人心的新功能,但其中我想最讓人期待的特性之一就要算內(nèi)存數(shù)據(jù)庫了。去年我再西雅圖參加SQL PASS Summit 2012的開幕式時,微軟就宣布了將在下一個SQL Server版本中附帶代號為Hekaton的內(nèi)存數(shù)據(jù)庫引擎?,F(xiàn)在隨著2014CTP1的到來,我們終于可以一窺其面貌。

內(nèi)存數(shù)據(jù)庫

    在傳統(tǒng)的數(shù)據(jù)庫表中,由于磁盤的物理結(jié)構(gòu)限制,表和索引的結(jié)構(gòu)為B-Tree,這就使得該類索引在大并發(fā)的OLTP環(huán)境中顯得非常乏力,雖然有很多辦法來解決這類問題,比如說樂觀并發(fā)控制,應(yīng)用程序緩存,分布式等。但成本依然會略高。而隨著這些年硬件的發(fā)展,現(xiàn)在服務(wù)器擁有幾百G內(nèi)存并不罕見,此外由于NUMA架構(gòu)的成熟,也消除了多CPU訪問內(nèi)存的瓶頸問題,因此內(nèi)存數(shù)據(jù)庫得以出現(xiàn)。

    內(nèi)存的學(xué)名叫做Random Access Memory(RAM),因此如其特性一樣,是隨機(jī)訪問的,因此對于內(nèi)存,對應(yīng)的數(shù)據(jù)結(jié)構(gòu)也會是Hash-Index,而并發(fā)的隔離方式也對應(yīng)的變成了MVCC,因此內(nèi)存數(shù)據(jù)庫可以在同樣的硬件資源下,Handle更多的并發(fā)和請求,并且不會被鎖阻塞,而SQL Server 2014集成了這個強(qiáng)大的功能,并不像Oracle的TimesTen需要額外付費(fèi),因此結(jié)合SSD AS Buffer Pool特性,所產(chǎn)生的效果將會非常值得期待。

SQL Server內(nèi)存數(shù)據(jù)庫的表現(xiàn)形式

    在SQL Server的Hekaton引擎由兩部分組成:內(nèi)存優(yōu)化表和本地編譯存儲過程。雖然Hekaton集成進(jìn)了關(guān)系數(shù)據(jù)庫引擎,但訪問他們的方法對于客戶端是透明的,這也意味著從客戶端應(yīng)用程序的角度來看,并不會知道Hekaton引擎的存在。如圖1所示。

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

    首先內(nèi)存優(yōu)化表完全不會再存在鎖的概念(雖然之前的版本有快照隔離這個樂觀并發(fā)控制的概念,但快照隔離仍然需要在修改數(shù)據(jù)的時候加鎖),此外內(nèi)存優(yōu)化表Hash-Index結(jié)構(gòu)使得隨機(jī)讀寫的速度大大提高,另外內(nèi)存優(yōu)化表可以設(shè)置為非持久內(nèi)存優(yōu)化表,從而也就沒有了日志(適合于ETL中間結(jié)果操作,但存在數(shù)據(jù)丟失的危險)

    下面我們來看創(chuàng)建一個內(nèi)存優(yōu)化表:

    首先,內(nèi)存優(yōu)化表需要數(shù)據(jù)庫中存在一個特殊的文件組,以供存儲內(nèi)存優(yōu)化表的CheckPoint文件,與傳統(tǒng)的mdf或ldf文件不同的是,該文件組是一個目錄而不是一個文件,因?yàn)镃heckPoint文件只會附加,而不會修改,如圖2所示。

圖2.內(nèi)存優(yōu)化表所需的特殊文件組

我們再來看一下內(nèi)存優(yōu)化文件組的樣子,如圖3所示。

圖3.內(nèi)存優(yōu)化文件組

    有了文件組之后,接下來我們創(chuàng)建一個內(nèi)存優(yōu)化表,如圖4所示。

圖4.創(chuàng)建內(nèi)存優(yōu)化表

   目前SSMS還不支持UI界面創(chuàng)建內(nèi)存優(yōu)化表,因此只能通過T-SQL來創(chuàng)建內(nèi)存優(yōu)化表,如圖5所示。

圖5.使用代碼創(chuàng)建內(nèi)存優(yōu)化表

    當(dāng)表創(chuàng)建好之后,就可以查詢數(shù)據(jù)了,值得注意的是,查詢內(nèi)存優(yōu)化表需要snapshot隔離等級或者h(yuǎn)int,這個隔離等級與快照隔離是不同的,如圖6所示。

圖6.查詢內(nèi)存優(yōu)化表需要加提示

    此外,由創(chuàng)建表的語句可以看出,目前SQL Server 2014內(nèi)存優(yōu)化表的Hash Index只支持固定的Bucket大小,不支持動態(tài)分配Bucket大小,因此這里需要注意。

與內(nèi)存數(shù)據(jù)庫不兼容的特性

    目前來說,數(shù)據(jù)庫鏡像和復(fù)制是無法與內(nèi)存優(yōu)化表兼容的,但AlwaysOn,日志傳送,備份還原是完整支持。

性能測試

   上面扯了一堆理論,大家可能都看郁悶了。下面我來做一個簡單的性能測試,來比對使用內(nèi)存優(yōu)化表+本地編譯存儲過程與傳統(tǒng)的B-Tree表進(jìn)行對比,B-Tree表如圖7所示,內(nèi)存優(yōu)化表+本地編譯存儲過程如圖8所示。

圖7.傳統(tǒng)的B-Tree表

圖8.內(nèi)存優(yōu)化表+本地編譯存儲過程

   因此不難看出,內(nèi)存優(yōu)化表+本地編譯存儲過程有接近幾十倍的性能提升。

您可能感興趣的文章:
  • SQL語句實(shí)現(xiàn)查詢SQL Server內(nèi)存使用狀況
  • 優(yōu)化SQL Server的內(nèi)存占用之執(zhí)行緩存
  • SQL Server 數(shù)據(jù)頁緩沖區(qū)的內(nèi)存瓶頸分析
  • SqlServer如何通過SQL語句獲取處理器(CPU)、內(nèi)存(Memory)、磁盤(Disk)以及操作系統(tǒng)相關(guān)信息
  • SQL Server 2008 R2占用cpu、內(nèi)存越來越大的兩種解決方法
  • 解決SQL Server虛擬內(nèi)存不足情況
  • 淺談SQL Server 對于內(nèi)存的管理[圖文]
  • SQL Server內(nèi)存遭遇操作系統(tǒng)進(jìn)程壓榨案例分析
  • SQL Server在AlwaysOn中使用內(nèi)存表的“踩坑”記錄
  • sql server學(xué)習(xí)基礎(chǔ)之內(nèi)存初探

標(biāo)簽:東營 煙臺 晉中 珠海 咸寧 石家莊 北海 南昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《揭秘SQL Server 2014有哪些新特性(1)-內(nèi)存數(shù)據(jù)庫》,本文關(guān)鍵詞  揭秘,SQL,Server,2014,有,哪些,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《揭秘SQL Server 2014有哪些新特性(1)-內(nèi)存數(shù)據(jù)庫》相關(guān)的同類信息!
  • 本頁收集關(guān)于揭秘SQL Server 2014有哪些新特性(1)-內(nèi)存數(shù)據(jù)庫的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    翼城县| 郁南县| 普兰店市| 夹江县| 万州区| 合川市| 漳平市| 文化| 商城县| 乌兰察布市| 长海县| 葵青区| 新蔡县| 安义县| 阜新市| 新密市| 宣汉县| 襄垣县| 泗阳县| 田阳县| 吴忠市| 延长县| 阿城市| 平武县| 德江县| 石屏县| 吴川市| 婺源县| 灌南县| 明光市| 镇江市| 唐山市| 三原县| 雅安市| 德惠市| 和静县| 六枝特区| 蒙山县| 福海县| 阿拉善右旗| 皮山县|