SQL Server2016獨有的10大新特性剖析
特性一:完美支持JSON格式
JSON就是Java Script Object Notation(輕量級數(shù)據(jù)交換格式)。在SQL Server 2016中,你現(xiàn)在可以在應(yīng)用和SQL Server數(shù)據(jù)庫引擎之間用JSON格式交互。微軟公司在SQL Server中增加了對JSON的支持,可以解析JSON格式數(shù)據(jù)然后以關(guān)系格式存儲。此外,利用對JSON的支持,還可以把關(guān)系型數(shù)據(jù)轉(zhuǎn)換成JSON格式數(shù)據(jù)。微軟公司還增加了一些函數(shù)提供對存儲在SQL Server中的JSON數(shù)據(jù)執(zhí)行查詢。SQL Server有了這些內(nèi)置增強支持JSON操作的函數(shù),應(yīng)用程序使用JSON數(shù)據(jù)與SQL Server交互就更容易了。
特性二:全程加密技術(shù)(Always Encrypted)
全程加密技術(shù)(Always Encrypted)支持在SQL Server中保持?jǐn)?shù)據(jù)加密,只有調(diào)用SQL Server的應(yīng)用才能訪問加密數(shù)據(jù)。該功能支持客戶端應(yīng)用所有者控制保密數(shù)據(jù),指定哪些人有權(quán)限訪問。SQL Server 2016通過驗證加密密鑰實現(xiàn)了對客戶端應(yīng)用的控制。該加密密鑰永遠不會傳遞給SQL Server。使用該功能,你可以避免數(shù)據(jù)庫或者操作系統(tǒng)管理員接觸客戶應(yīng)用程序敏感數(shù)據(jù)(包括靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù))。該功能現(xiàn)在支持敏感數(shù)據(jù)存儲在云端管理數(shù)據(jù)庫中,并且永遠保持加密。即便是云供應(yīng)商也看不到數(shù)據(jù)。
特性三:動態(tài)數(shù)據(jù)屏蔽(Dynamic Data Masking)
如果你對保護數(shù)據(jù)感興趣,希望一部分人可以看到加密數(shù)據(jù),而另一些人只能看到加密數(shù)據(jù)混淆后的亂碼,那么你一定會對動態(tài)數(shù)據(jù)屏蔽感興趣。利用動態(tài)數(shù)據(jù)屏蔽功能,你可以將SQL Server數(shù)據(jù)庫表中待加密數(shù)據(jù)列混淆,那些未授權(quán)用戶看不到這部分?jǐn)?shù)據(jù)。利用動態(tài)數(shù)據(jù)屏蔽功能,你還可以定義數(shù)據(jù)的混淆方式。例如,如果你在表中接收存儲信用卡號,但是你希望只看到卡號后四位。使用動態(tài)數(shù)據(jù)屏蔽功能定義屏蔽規(guī)則就可以限制未授權(quán)用戶只能看到信用卡號后四位,而有權(quán)限的用戶可以看到完整信用卡信息。
特性四:多TempDB數(shù)據(jù)庫文件
如果你運行的是多核計算機,那么運行多個tempdb數(shù)據(jù)文件就是最佳實踐做法。以前直到SQL Server 2014版本,你安裝SQL Server之后總是不得不手工添加tempdb數(shù)據(jù)文件。在SQL Server 2016中,你現(xiàn)在可以在安裝SQL Server的時候直接配置需要的tempdb文件數(shù)量。這樣你就不再需要安裝完成之后再手工添加tempdb文件了。
特性五:PolyBase
PolyBase支持查詢分布式數(shù)據(jù)集。有了PolyBase,你可以使用Transact SQL語句查詢Hadoop或者SQL Azure blob存儲。你現(xiàn)在可以使用PolyBase寫臨時查詢,實現(xiàn)SQL Server關(guān)系型數(shù)據(jù)與Hadoop或者SQL Azure blog存儲中的半結(jié)構(gòu)化數(shù)據(jù)之間的關(guān)聯(lián)查詢。此外,你還可以利用SQL Server的動態(tài)列存儲索引針對半結(jié)構(gòu)化數(shù)據(jù)來優(yōu)化查詢。如果組織跨多個分布式位置傳遞數(shù)據(jù),PolyBase就成了利用SQL Server技術(shù)訪問這些位置的半結(jié)構(gòu)化數(shù)據(jù)的便捷解決方案了。
特性六:歷史表(Temporal Table)
歷史表會在基表中保存數(shù)據(jù)的舊版本信息。有了歷史表功能,SQL Server會在每次基表有行更新時自動管理遷移舊的數(shù)據(jù)版本到歷史表中。歷史表在物理上是與基表獨立的另一個表,但是與基表是有關(guān)聯(lián)關(guān)系的。如果你已經(jīng)構(gòu)建或者計劃構(gòu)建自己的方法來管理行數(shù)據(jù)版本,那么你應(yīng)該先看看SQL Server 2016中新提供的歷史表功能,然后再決定是否需要自行構(gòu)建解決方案。
特性七:行級安全(Row Level Security)
SQL數(shù)據(jù)庫引擎具備了行級安全特性以后,就可以根據(jù)SQL Server登錄權(quán)限限制對行數(shù)據(jù)的訪問。限制行是通過內(nèi)聯(lián)表值函數(shù)過濾謂詞定義實現(xiàn)的。安全策略將確保過濾器謂詞獲取每次“SELECT”或者 “DELETE”操作的執(zhí)行。在數(shù)據(jù)庫層面實現(xiàn)行級安全意味著應(yīng)用程序開發(fā)人員不再需要維護代碼限制某些登錄或者允許某些登錄訪問所有數(shù)據(jù)。有了這一功能,用戶在查詢包含行級安全設(shè)置的表時,他們甚至不知道他們查詢的數(shù)據(jù)是已經(jīng)過濾后的部分?jǐn)?shù)據(jù)。
特性八:Query Store
如果你經(jīng)常使用執(zhí)行計劃,你就會喜歡新版的Query Store功能。在2016之前的版本中,你可以使用動態(tài)管理試圖(DMV)來查看現(xiàn)有執(zhí)行計劃。但是,DMV只支持你查看計劃緩存中當(dāng)前活躍的計劃。如果出了計劃緩存,你看不到計劃的歷史情況。有了Query Store功能,SQL現(xiàn)在可以保存歷史執(zhí)行計劃。不僅如此,該功能還可以保存那些歷史計劃的查詢統(tǒng)計。這是一個很好的補充功能,你可以利用該功能隨著時間推移跟蹤執(zhí)行計劃的性能。
特性九:Stretch Database
Stretch Database功能提供了把內(nèi)部部署數(shù)據(jù)庫擴展到Azure SQL 數(shù)據(jù)庫的途徑。有了Stretch Database功能,訪問頻率最高的數(shù)據(jù)會存儲在內(nèi)部數(shù)據(jù)庫,而訪問較少的數(shù)據(jù)會離線存儲在Azure SQL 數(shù)據(jù)庫中。當(dāng)你設(shè)置數(shù)據(jù)庫為“stretch“時,那些比較過時的數(shù)據(jù)就會在后臺遷移到Azure SQL數(shù)據(jù)庫。如果你需要運行查詢同時訪問活躍數(shù)據(jù)和stretched數(shù)據(jù)庫中的歷史信息,數(shù)據(jù)庫引擎會將內(nèi)部數(shù)據(jù)庫和Azure SQL數(shù)據(jù)庫無縫對接,查詢會返回你要的結(jié)果,就像在同一個數(shù)據(jù)源一樣。該功能使得DBA工作更容易了,他們可以歸檔歷史信息轉(zhuǎn)到更廉價的存儲介質(zhì),無需修改當(dāng)前實際應(yīng)用代碼。這樣你就可以把常用的內(nèi)部數(shù)據(jù)庫查詢保持最佳性能狀態(tài)。
特性十:SQL SERVER支持R語言
微軟公司收購Revolution Analytics公司之后,現(xiàn)在可以在SQL Server上針對大數(shù)據(jù)使用R語言做高級分析功能了。SQL Server支持R語言處理以后,數(shù)據(jù)科學(xué)家們可以直接利用現(xiàn)有的R代碼并在SQL Server數(shù)據(jù)庫引擎上運行。這樣我們就不用為了執(zhí)行R語言處理數(shù)據(jù)而把SQL Server數(shù)據(jù)導(dǎo)出來處理。該功能把R語言處理帶給了數(shù)據(jù)。
(譯注:Revolution Analytics公司是耶魯大學(xué)的派生公司,成立于2007年,是一家基于開源項目R語言做計算機軟件和服務(wù)的供應(yīng)商。該公司去年被微軟收購。)
原文鏈接:SQL Server2016獨有的10大新特性剖析