SQL Server 2016真的讓人眼前一亮。幾天前微軟就提供了RCO(候選發佈版)版本的下載。我已經圍觀了一圈RCO版本,其中一個最拽的功能是資料庫範圍內的配置(Database Scoped Configuration),在今天的文章里我想談談它。補充幾句:裝好之後,居然發現沒有SSMS,崩潰
SQL Server 2016真的讓人眼前一亮。幾天前微軟就提供了RCO(候選發佈版)版本的下載。我已經圍觀了一圈RCO版本,其中一個最拽的功能是資料庫範圍內的配置(Database Scoped Configuration),在今天的文章里我想談談它。補充幾句:裝好之後,居然發現沒有SSMS,崩潰中,原來是在嚮導中就有獨立的安裝程式,好吧!
這配色,真是低調有內涵。
另外,如過你的電腦已經安裝了就【Microsoft Visual Studio 2010 Shell(獨立)Redistributable Package 】,卸載掉吧,好像會影響SSMS的安裝。
啟動畫面。
登錄界面。
資料庫範圍內的配置
我們知道,SQL Server有很多配置選項只能在SQL Server實例級別進行全局配置。例如MAXDOP選項(當你不使用資源調控器時)。另外微軟提供我們大量不同的跟蹤標記(Trace Flags)可以修改SQL Server的內部行為。微軟現在最終宣佈這些領域,SQL Server 2016會為我們提供現存的配置選項,在資料庫級別就可以配置,而不使用特定的跟蹤標記(Trace Flags)。
我們來詳細看下它們。使用早期參數估計(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/