欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年08月14日 09:40:24   投稿:hebedich  
微軟SQL Server 2014提供了眾多激動人心的新功能,但其中最讓人期待的特性之一就是代號為” Hekaton”的內存數(shù)據(jù)庫了,內存數(shù)據(jù)庫特性并不是SQL Server的替代,而是適應時代的補充,現(xiàn)在SQL Server具備了將數(shù)據(jù)表完整存入內存的功能。那么今天我們就先來看看內存數(shù)據(jù)庫

簡介

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

內存數(shù)據(jù)庫

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

性能測試

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

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

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

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

相關文章

  • Sql 語句學習指南

    Sql 語句學習指南

    為了大家更容易理解我舉出的SQL語句,本文假定已經(jīng)建立了一個學生成績管理數(shù)據(jù)庫,全文均以學生成績的管理為例來描述。
    2008-12-12
  • sql server性能調優(yōu) I/O開銷的深入解析

    sql server性能調優(yōu) I/O開銷的深入解析

    這篇文章主要給大家介紹了關于sql server性能調優(yōu) I/O開銷的相關資料,文中通過示例代碼以及圖片介紹的非常詳細,對大家的理解和學習具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • SQL數(shù)據(jù)查詢之DQL語言介紹

    SQL數(shù)據(jù)查詢之DQL語言介紹

    首先對于數(shù)據(jù)庫有一定的了解,會對于數(shù)據(jù)庫的學習有一定的幫助;?數(shù)據(jù)庫主要分為 DB(數(shù)據(jù)庫),DBMS(數(shù)據(jù)庫管理系統(tǒng)),SQL(結構化查詢語言,用于和DBMS通信的語言);這篇要講的DQL(數(shù)據(jù)查詢語句)是屬于SQL語言中的一種語言,因此是必學的語言,希望可以有一定的幫助
    2022-08-08
  • sql 2000 無法執(zhí)行查詢,因為一些文件缺少或未注冊"的解決方法

    sql 2000 無法執(zhí)行查詢,因為一些文件缺少或未注冊"的解決方法

    在SQL server 2000中打開表查看數(shù)據(jù)的時候,提示說無法執(zhí)行查詢,因為一些文件缺少或未注冊用查詢分析器可以查看數(shù)據(jù),重裝了sql2000也沒有用,這里分享下解決方法
    2014-01-01
  • sql中的常用的字符串處理函數(shù)大全

    sql中的常用的字符串處理函數(shù)大全

    這篇文章主要介紹了sql中的常用的字符串處理函數(shù),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • SQL Server 2012 安裝與啟動圖文教程

    SQL Server 2012 安裝與啟動圖文教程

    本文通過圖文并茂的形式給大家介紹了sqlserver2012的安裝步驟,本文分步驟給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2016-11-11
  • sql 觸發(fā)器使用例子

    sql 觸發(fā)器使用例子

    觸發(fā)器里沒有updated ,只有inserted 和deleted兩個臨時表。
    2009-07-07
  • SQL Server2012數(shù)據(jù)庫備份和還原的教程

    SQL Server2012數(shù)據(jù)庫備份和還原的教程

    這篇文章主要為大家詳細介紹了SQL Server2012數(shù)據(jù)庫備份和還原的教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SQL Server的死鎖說明

    SQL Server的死鎖說明

    死鎖是導致數(shù)據(jù)庫中的競爭性并發(fā)鎖,通常在多步驟事務中。當兩個或多個任務永久相互阻止時,每個任務都鎖定了其他任務嘗試鎖定的資源,就會發(fā)生死鎖。本文主要介紹了SQL Server的死鎖,感興趣的朋友可以參考閱讀
    2023-04-04
  • SQL SERVER數(shù)據(jù)庫的作業(yè)的腳本及存儲過程

    SQL SERVER數(shù)據(jù)庫的作業(yè)的腳本及存儲過程

    本站文章旨在為該問題提供解決思路及關鍵性代碼,并不能完成應該由網(wǎng)友自己完成的所有工作,請網(wǎng)友在仔細看文章并理解思路的基礎上舉一反三、靈活運用
    2015-10-10

最新評論