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