天天看點

SQL Server 2016的資料庫範圍内的配置

SQL Server 2016真的讓人眼前一亮。幾天前微軟就提供了RCO(候選釋出版)版本的下載下傳。我已經圍觀了一圈RCO版本,其中一個最拽的功能是資料庫範圍内的配置(Database Scoped Configuration),在今天的文章裡我想談談它。補充幾句:裝好之後,居然發現沒有SSMS,崩潰中,原來是在向導中就有獨立的安裝程式,好吧!

SQL Server 2016的資料庫範圍内的配置
SQL Server 2016的資料庫範圍内的配置

這配色,真是低調有内涵。

另外,如過你的電腦已經安裝了就【Microsoft Visual Studio 2010 Shell(獨立)Redistributable Package 】,解除安裝掉吧,好像會影響SSMS的安裝。

SQL Server 2016的資料庫範圍内的配置
啟動畫面。
SQL Server 2016的資料庫範圍内的配置
登入界面。

資料庫範圍内的配置

我們知道,SQL Server有很多配置選項隻能在SQL Server執行個體級别進行全局配置。例如MAXDOP選項(當你不使用資源調控器時)。另外微軟提供我們大量不同的跟蹤标記(Trace Flags)可以修改SQL Server的内部行為。微軟現在最終宣布這些領域,SQL Server 2016會為我們提供現存的配置選項,在資料庫級别就可以配置,而不使用特定的跟蹤标記(Trace Flags)。

SQL Server 2016的資料庫範圍内的配置

我們來詳細看下它們。使用早期參數估計(Legacy Cardinality Estimation )選項,你可以控制SQL Server是否使用老的還是SQL Server 2014裡引入的新的參數估計。這是個新的配置選項,以前可以通過2312和9481跟蹤标記來實作。

MAXDOP選項就不用解釋了!終于你可以在資料庫級别控制MAXDOP!這真的太拽了!尤其對于Sharepoint。我來看看SharePoint的後續版本會不會支援資料庫級别的MAXDOP...對了,我已經很期待在資料庫級别1的MAXDOP的資料庫,來回避可惡的CXPACKET等待。

參數探查( Parameter Sniffing)!微軟稱它為特色,我叫它為BUG,通常來說參數探查是個好事,因為查詢優化器基于你首次提供的輸入值來編譯查詢計劃。這很棒,但缺點是生成的查詢計劃對提供輸入參數敏感,且隻對那些參數進行優化。如果你後來用不同的參數值重用緩存的查詢計劃,就會影響你的性能。

隻用這個配置選項,現在你可以控制查詢優化器是否使用參數探查。它可以用來替換4136跟蹤标記。如果你禁用參數探查,當你使用OPTIMIZE FOR UNKNOWN查詢提示時,SQL Server内部使用同樣的行為——它不會給你優化的性能,但會給你一緻的性能……

最後你有查詢優化器修補程式(Query Optimizer Fixes configuration option)。這個配置選項啟用或停用一些特定的查詢修補程式,它用來代替跟蹤标記4199。

小結

我真的很喜歡資料庫範圍内的配置!尤其是MAXDOP選項。對于Sharepoint來說,它是個巨大的優勢,如果我們隻針對運作Sharepoint的特定資料庫使用1的MAXDOP,剩下的一切會比配置執行個體的MAXDOP好很多。

對于這些新的配置選項,你覺得如何?喜歡它們麼?請盡情留言。

感謝關注!

參考文章:

https://www.sqlpassion.at/archive/2016/03/14/database-scoped-configuration-in-sql-server-2016/

注:此文章為

WoodyTu

學習MS SQL技術,收集整理相關文檔撰寫,歡迎轉載,請在文章頁面明顯位置給出此文連結!

若您覺得這篇文章還不錯請點選下右下角的推薦,有了您的支援才能激發作者更大的寫作熱情,非常感謝!

繼續閱讀