SQL Server數(shù)據(jù)庫是目前應(yīng)用非常廣泛的數(shù)據(jù)庫類型,而SQL Serve2014則是目前SQL Server 數(shù)據(jù)庫家族當(dāng)中已經(jīng)成熟的最新版本。那么SQL Server 2014相對于前期出來的兄弟版本,究竟有哪些方面的性能提升或者功能增加呢?中培偉業(yè)《SQL Server 2014數(shù)據(jù)庫管理與性能調(diào)優(yōu)》培訓(xùn)專家臧老師在這里進(jìn)行了介紹。
臧老師指出,SQL Server 2014作為該系列的重要升級版本,核心要素分為兩點:云與速度——換言之,更具體地講在于Azure集成與內(nèi)存內(nèi)OLTP(即聯(lián)機事務(wù)處理。實事求是地講,相較于云、臧老師對于速度方面的提升更感興趣,不過他也指出目前有越來越多的客戶開始嘗試以云為基礎(chǔ)的運營方式、而云功能對于這部分使用者而言可謂至關(guān)重要。
縱觀整個SQL Server家族,臧老師認(rèn)為SQL Server 2014可以算是自SQL Server 2008 RTM以來最為重要的一個版本。據(jù)臧老師介紹,SQL Server 2008帶來的變更數(shù)據(jù)捕捉、數(shù)據(jù)壓縮以及最為重要的PowerShell等功能特性。接下來的SQl Server 2008 R2則提供用于自助式商務(wù)智能的PowerPivot插件、StreamInsight以及主數(shù)據(jù)服務(wù)。SQL Server 2012帶給我們的新組件包括Availability Groups、列式存儲索引以及數(shù)項T-SQL強化。大家可以將SQL Server 2008視為一套數(shù)據(jù)倉庫版本,SQL Server 2008 R2作為商務(wù)智能版本,而SQL Server 2012則作為高可用性版本。
SQL Server 2014對部分上述功能作出了進(jìn)一步增強,其中包括Availability Groups、列式存儲索引以及安全性加密備份機制等等。
將數(shù)據(jù)庫交由Azure打理
SQL Server 2014允許用戶通過兩種方式使用Azure存儲資源。第一,大家可以將數(shù)據(jù)庫備份至Azure BLOB存儲體系當(dāng)中。盡管這項功能官方將其稱為SQL Server Backup to URL)早在2012年就已經(jīng)出現(xiàn),但SQL Server 2014利用SQL Server Managed Backup to Windows Azure對其進(jìn)行了強化作。
滿足速度需求
時至今日,即使是規(guī)模最小的網(wǎng)絡(luò)業(yè)務(wù)新興企業(yè)都開始將著眼點放在全球市場,但他們很快發(fā)現(xiàn)自己的服務(wù)器已經(jīng)被無數(shù)請求所淹沒。在性能表現(xiàn)方面,微軟在這套最新SQL Server版本中提供了一些不錯的特性以應(yīng)對此類挑戰(zhàn)。
臧老師指出,Hekaton之所以能夠帶來如此顯著的性能提升效果,依靠的是對優(yōu)化算法、樂觀并發(fā)、消除物理鎖定與閉鎖以及內(nèi)存內(nèi)表存儲等機制的結(jié)合。如果大家設(shè)定了只將面向優(yōu)化內(nèi)存表的存儲規(guī)程,則可以將其轉(zhuǎn)換成Hekaton規(guī)程以獲得更理想的運行速度。轉(zhuǎn)換過程會將其編譯成原生代碼,從而實現(xiàn)執(zhí)行效率提升。
這種轉(zhuǎn)換對于對象類型有所限制,因此大家需要在全面采用這套解決方案之前先對代碼進(jìn)行檢查與測試。舉例來說,優(yōu)化存儲規(guī)程當(dāng)中不能包含指針、子查詢甚至是CTE(即公用表表達(dá)式。這只是這份長長的不支持清單當(dāng)中的一部分條目,剩下的部分請大家自己做好功課——包括數(shù)據(jù)庫與表的各種要求。鑒于這還是一項全新功能,我相信這些限制將隨時間的推移而逐漸解除。
SQL Server 2012引入的列式存儲索引給數(shù)據(jù)倉庫的性能表現(xiàn)帶來大幅提升。我個人曾經(jīng)實際體驗過,原本在傳統(tǒng)索引中需要耗時數(shù)分鐘的查詢操作在列式存儲索引中不到一秒即可完成。列式存儲索引的弊端在于其無法進(jìn)行更新。為了將數(shù)據(jù)載入到表中,大家必須首先清除這些索引,并在載入完成后另行創(chuàng)建。SQL Server 2014很好地解決了這個問題,如今列式存儲索引已經(jīng)支持更新功能,這無疑是一個巨大的進(jìn)步。
專走捷徑
這項功能被稱為Delayed Durability,它實際并不會對數(shù)據(jù)庫產(chǎn)生加速作用、但卻能讓終端用戶從使用體驗上感受到提速效果。
我們假設(shè)終端用戶現(xiàn)在需要更新一條記錄。更新內(nèi)容首先被寫入到內(nèi)存中的日志里,而這份日志隨后被寫入磁盤。在日志記錄被寫入到磁盤中后,應(yīng)用程序會識別出事務(wù)處理已經(jīng)完成,這樣用戶就能繼續(xù)進(jìn)行其它工作了。針對數(shù)據(jù)庫的實際更新操作會在之后的時段內(nèi)進(jìn)行。現(xiàn)在有了Delayed Durability,應(yīng)用程序?qū)⒃谌罩颈粚懭氲酱疟P之前就獲得事務(wù)完成提醒。這意味著終端用戶用不著等待日志向低速磁盤介質(zhì)寫入這一相對緩慢的處理過程,即可快速處理其它工作。臧老師發(fā)現(xiàn)很多系統(tǒng)中的瓶頸都源自日志處理過程,而Delayed Durability能夠很好地解決這個問題。
最后,SQL Server 2014還帶來了一系列安全強化機制。當(dāng)然,我們現(xiàn)在已經(jīng)擁有備份加密方案,不過其它新功能的出現(xiàn)直接宣判了第三方備份產(chǎn)品的死刑。此外新版本還提供多種新的服務(wù)器級權(quán)限——CONNECT ANY USER DATABASESELECT ALL USER SECURABLES——它們允許大家以前所未有的簡便方式進(jìn)行安全事務(wù)管理。具體來講,我們現(xiàn)在可以將這些權(quán)限一次性指派給全部現(xiàn)有以及未來將要創(chuàng)建的數(shù)據(jù)庫系統(tǒng)。大家不必再隨著新數(shù)據(jù)庫的不斷加入而重復(fù)權(quán)限分配流程。
臧老師最后總結(jié)道,SQL Server 2014為我們提供了多種提升性能表現(xiàn)的途徑,并允許大家利用Azure云實現(xiàn)備份與高可用性保障。目前面對此類難題的SQL Server用戶們,臧老師也認(rèn)為這款新的版本足夠值得大家的重視
想了解更多IT資訊,請訪問中培偉業(yè)官網(wǎng):中培偉業(yè)