国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

第16/24周 SQL Server 2014中的基數(shù)計(jì)算

2024-08-31 00:54:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
第16/24周 SQL Server 2014中的基數(shù)計(jì)算

大家好,歡迎回到性能調(diào)優(yōu)培訓(xùn)。上個(gè)星期我們討論在SQL Server里基數(shù)計(jì)算過(guò)程里的一些問(wèn)題。今天我們繼續(xù)詳細(xì)談下,SQL Server 2014里引入的新基數(shù)計(jì)算。

新基數(shù)計(jì)算

SQL Server 2014里一個(gè)增強(qiáng)是新的基數(shù)計(jì)算。上個(gè)星期你已經(jīng)學(xué)到老基數(shù)計(jì)算有些限制,會(huì)生成錯(cuò)誤的估計(jì),這會(huì)導(dǎo)致不好的執(zhí)行計(jì)劃表現(xiàn)。截至SQL Server 2012,你一直在使用自SQL Server 7.0引入的基數(shù)計(jì)算。

當(dāng)然,幾年來(lái)也有很多問(wèn)題被修正,但默認(rèn)它們都沒(méi)啟用的——你需要啟用SQL Server里指定的跟蹤標(biāo)志才可以使這些修正生效。用那個(gè)方法微軟確保它們不會(huì)引入所謂的計(jì)劃質(zhì)量退化(Plan-Quality Regressions)。因此新的基數(shù)計(jì)算在SQL Server里是自SQL Server 7.0以來(lái)在那個(gè)領(lǐng)域的第一個(gè)重大改變。

新基數(shù)計(jì)算的目的是提高你執(zhí)行計(jì)劃的質(zhì)量。但是當(dāng)然,還是有情況你會(huì)看到計(jì)劃的退化。因此對(duì)于你的工作負(fù)荷和指定查詢(xún),你要仔細(xì)評(píng)估下新基數(shù)計(jì)算是否可用。因此SQL Server 2014再次引入不同的跟蹤標(biāo)志,使用它們你可以影響查詢(xún)優(yōu)化器如何工作。

為了使用新基數(shù)計(jì)算,你的數(shù)據(jù)庫(kù)必須設(shè)置數(shù)據(jù)庫(kù)兼容級(jí)別(Database Compatibility Level)為120。當(dāng)你從先前SQL Server版本還原或附加數(shù)據(jù)庫(kù),你的兼容級(jí)別會(huì)改變——因此查詢(xún)優(yōu)化器就不會(huì)用到新的基數(shù)計(jì)算。使用下面的查詢(xún)你可以很容易得出在你SQL Server實(shí)例里,每個(gè)數(shù)據(jù)庫(kù)的兼容級(jí)別:

1 SELECT name, compatibility_level FROM sys.databases2 3 GO

如果在你面前有一個(gè)執(zhí)行計(jì)劃,你可以對(duì)SELECT運(yùn)算符查看下它的屬性窗口,看下CardinalityEstimationModelVersion屬性值。70表示使用老的基數(shù)計(jì)算,120表示使用新的基數(shù)計(jì)算。

另外,SQL Server 2014提供下列2個(gè)新的跟蹤標(biāo)記:

  • 2312
  • 9481

使用2312跟蹤標(biāo)記你可以指出,你想使用SQL Server 2014新的基數(shù)計(jì)算(例如,當(dāng)你想使用低于120的兼容級(jí)別)。如果你想回到老的基數(shù)計(jì)算,就可以使用9481跟蹤標(biāo)記。你可以在實(shí)例級(jí)別,會(huì)話級(jí)別,也可以通過(guò)QUERYTRACEON查詢(xún)提示來(lái)設(shè)置這些跟蹤標(biāo)記。我們來(lái)看下面的例子,使用2312跟蹤標(biāo)記來(lái)強(qiáng)制使用新的基數(shù)計(jì)算。

1 SELECT * FROM Person.Person2 OPTION (QUERYTRACEON 2312)3 GO

新基數(shù)計(jì)算提供很多改變,可以帶來(lái)更好的估計(jì),更有可能帶來(lái)更好的執(zhí)行計(jì)劃。微軟已經(jīng)對(duì)基數(shù)計(jì)算的下列領(lǐng)域進(jìn)行了重寫(xiě):

  • 對(duì)于多列謂語(yǔ)的估計(jì)
  • 如何處理自增鍵列問(wèn)題
  • 對(duì)JOIN謂語(yǔ)的估計(jì)
  • 通過(guò)擴(kuò)展事件的故障排除

如果你想了解這些改變的更多細(xì)節(jié),我強(qiáng)烈推薦讀下Joe Sack寫(xiě)的白皮書(shū)用SQL Server 2014基數(shù)計(jì)算優(yōu)化你的查詢(xún)計(jì)劃(Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimator)。也可以閱讀下SQL Server 2014里的針對(duì)基數(shù)估計(jì)的新設(shè)計(jì)(New Design for Cardinality Estimation)。

小結(jié)

在這1期的性能調(diào)優(yōu)培訓(xùn)我給你概括介紹了SQL Server 2014引入的新基數(shù)計(jì)算。

這個(gè)月我們已經(jīng)對(duì)SQL Server里的統(tǒng)計(jì)信息進(jìn)行了非常深入的學(xué)習(xí)!在過(guò)去的4個(gè)星期里,我們看到它們對(duì)獲得好性能的執(zhí)行計(jì)劃確實(shí)非常重要。從下個(gè)星期開(kāi)始,第5個(gè)月的性能調(diào)優(yōu)培訓(xùn)開(kāi)始了,你會(huì)學(xué)習(xí)到SQL Server里的鎖,阻塞和死鎖(Locking, Blocking, and Deadlocking)。請(qǐng)繼續(xù)關(guān)注!


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海安县| 汝州市| 大安市| 灵山县| 汝阳县| 延吉市| 平山县| 莱芜市| 桂平市| 隆化县| 高碑店市| 日喀则市| 句容市| 犍为县| 新源县| 汕尾市| 巴里| 澄城县| 房山区| 稻城县| 瑞安市| 读书| 永州市| 赞皇县| 临高县| 南开区| 青川县| 徐汇区| 灵山县| 奉节县| 乌鲁木齐市| 曲麻莱县| 奉新县| 宜章县| 龙海市| 庆安县| 正安县| 新绛县| 青海省| 古浪县| 蚌埠市|