亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

理解統計信息(3/6):誰創建和管理統計信息?在性能調優中,統計信息的作用。

2024-07-21 02:47:00
字體:
來源:轉載
供稿:網友
理解統計信息(3/6):誰創建和管理統計信息?在性能調優中,統計信息的作用。

在理解統計信息(2/6):直方圖中,我們討論了直方圖,密度向量,還有SQL Server如何用統計信息做基數計算(cardinalityestimation)。這篇文章會討論統計信息如何被創建,還有統計信息在性能調優中的重要性。

有2類統計信息,索引統計信息和列統計信息。索引統計信息是索引創建的一部分(建立索引會自動創建索引統計信息)。在where條件列被引用或查詢的group by子句里包含列,列統計信息都會由SQL Server自動創建。

有數據庫屬性設置里,可以設置數據庫是否自動創建統計信息并自動更新統計信息(數據庫屬性->選項->自動)。

自動創建統計信息默認是啟用的,它幫助查詢優化器在需要更好的進行查詢預估時,創建列統計信息。為了更好的性能,建議保留啟用。

自動更新統計信息默認也是啟用的,它幫助查詢優化器在統計信息過期的時候自動更新。當數據有明顯變化時,統計信息就需要更新。這里有個閥限(threshold limit)來標記統計信息是否過期。

自動異步更新統計信息默認是不啟用的。當自動異步更新統計信息被啟用的時候,會有2種方式進行自動更新。異步模式(默認模式),如果統計信息已經過期,查詢優化器會等到計劃生成完成才更新統計信息。同步模式,查詢優化器會初始化統計信息,不會等到計劃的生成完成。通過改變更新統計信息為同步模式可以使性能上一些工作量始終受益。SQL Server在自動創建/更新統計信息的時候,不會進行完全掃描。它只會在可接受的時間內采樣數據來計算統計信息。

在理解統計信息(1/6):密度里,我們看到,當引用的列在group by或where條件里時,統計信息會自動創建。我們來看看當自動創建統計信息關掉的時候,SQL Server如何進行預估。我們運行下面的語句并看看輸出結果。

1 ALTER DATABASE StatisticsDB SET AUTO_CREATE_STATISTICS OFF2 GO3 DROP TABLE SalesOrderDetail_NoStats4 SELECT * INTO SalesOrderDetail_NoStats FROM AdventureWorks2008r2.Sales.SalesOrderDetail5 GO6 SELECT PRoductID,COUNT(*) FROM dbo.SalesOrderDetail_NoStats GROUP BY ProductID7 GO8 EXEC SP_HELPSTATS 'SalesOrderDetail_NoStats', 'ALL'

第1句,我們關掉了StatisticsDB數據庫的自動更新統計信息。第2句,我們創建了salesOrderDetail表的副本。現在我們對ProductId進行group 扮演操作,點擊工具欄的顯示包含實際的執行計劃。

在執行計劃里,我們在表掃描運算符里看到一個黃色的驚嘆號。具體來說,它是警告我們沒有可用的統計信息。在聚集運算符里,我們看到優化器的估計行數是348.306。沒有統計信息,優化器要如何估計行數呢?這里的值是拿記錄總數開方而來。這個表有121317條記錄,如果你對它開方,即,我們就得到348.306。如果你對這個表groupby的其他任何列,預估行數還是一樣的。請注意,自動創建統計信息只控制列統計信息的自動創建。它不控制索引創建時,統計信息的自動創建。

我們來看下統計信息如何影響查詢性能。來看下面2個查詢,記得在最后的查詢語句執行前點擊工具欄的顯示包含實際的執行計劃。

 1 USE StatisticsDB 2 GO 3 /* Part 1 WITH AUTO STATS UPDATE ON */ 4  5 ALTER DATABASE StatisticsDB SET AUTO_CREATE_STATISTICS ON 6 ALTER DATABASE StatisticsDB SET AUTO_UPDATE_STATISTICS ON 7 SET STATISTICS IO ON 8 DROP TABLE SalesOrderDetail_NoStats  9 SELECT * INTO SalesOrderDetail_NoStats FROM SalesOrderDetail10 CREATE INDEX ix_productid  ON SalesOrderDetail_NoStats (productid)11 UPDATE dbo.SalesOrderDetail_NoStats SET ProductID=775 WHERE SalesOrderDetailID<>112 SELECT * FROM dbo.SalesOrderDetail_NoStats WHERE ProductID=77613 SELECT * FROM dbo.SalesOrderDetail_NoStats WHERE ProductID=77514 15 /* Part 2  WITH AUTO STATS UPDATE Off */16 17 ALTER DATABASE StatisticsDB SET AUTO_CREATE_STATISTICS OFF18 ALTER DATABASE StatisticsDB SET AUTO_UPDATE_STATISTICS OFF19 SET STATISTICS IO ON20 DROP TABLE SalesOrderDetail_NoStats 21 SELECT * INTO SalesOrderDetail_NoStats FROM SalesOrderDetail22 CREATE INDEX ix_productid  ON SalesOrderDetail_NoStats (productid)23 UPDATE dbo.SalesOrderDetail_NoStats SET ProductID=775 WHERE SalesOrderDetailID<>124 --Disabling the auto update stats25 ALTER DATABASE StatisticsDB SET AUTO_UPDATE_STATISTICS OFF26 SELECT * FROM dbo.SalesOrderDetail_NoStats WHERE ProductID=77627 SELECT * FROM dbo.SalesOrderDetail_NoStats WHERE ProductID=775

上述2組語句我們都在productid列創建了索引(統計信息也會自動創建),然后我們更新productid為775,只留1條還是不同的productid值。更新后,表里只有2個不同的productid值775和776。第1組語句,我們進行了自動更新統計信息啟用的SELECT查詢。第2組語句我們進行了自動更新統計信息停用的SELECT查詢。我們來看看2者執行計劃和IO統計信息的不同。

我們來看看啟用的執行計劃。第1個where條件是productid=776的查詢估計行數是1,000348,優化器進行的是索引查找。第2個where條件是productid=775的查詢估計行數是121316,優化器選擇的是表掃描,而不是非聚集索引查找和書簽查找。對優化器來說表掃描更有效,相比使用索引查找和書簽查找來獲取表里的所有記錄(只有一條記錄productid是776)。完成這個操作只需要1495個邏輯讀。

我們來看看停用的執行計劃。第1個where條件是productid=776的查詢估計行數是228,優化器進行的是索引查找。這個是基于索引創建是的統計信息來預估的,這個信息在update后已經過期了。第2個where條件是productid=775的查詢估計行數是234,這就嚴重誤導了查詢優化器使用了非聚集掃描和書簽查找來操作,而不是表掃描來獲取表的所有記錄(只有一條記錄productid是776)。完成這個操作需要121710個邏輯讀,相比啟用情況下僅1495個邏輯讀是非常非常高了。

從上面的例子,我們清楚的看到優化器需要更新的統計信息來選擇最優執行計劃,即使你有了必須的索引。在處理性能問題時,我們也需要關注下統計信息。把估計行數與實際行數的區別當作一個好指標,用來深入了解下統計信息,或統計信息的人為更新。

自動更新統計信息可以在以下3個級別進行關閉:

  • 數據庫級別,使用修改數據庫命令:ALTER DATABASE StatisticsDB SET AUTO_UPDATE_STATISTICS OFF
  • 索引級別,在創建或重建索引時使用STATISTICS_NORECOMPUTE選項。這有點令人迷惑。這個選項默認是關閉的。就是說自動更新屬性是啟用的。
  • 統計信息級別,當創建或更新統計信息時使用NORECOMPUTE選項。

使用sp_autostats存儲過程可以查看表的對應統計信息的自動更新統計信息設置情況。如果在數據級別設置自動更新統計信息為停用,那表級別也會停用。可以使用sp_autostats存儲過程修改表級別的自動更新統計信息設置情況。繼續圍觀理解統計信息(4/6):自動更新統計信息的閥值——人為更新統計信息的重要性。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91欧美激情另类亚洲| 久久久久日韩精品久久久男男| 91精品国产色综合久久不卡98口| 欧美日韩亚洲91| 91久久久久久久久久久| 欧美一级电影免费在线观看| 欧美一级免费看| 亚洲精品国产精品国产自| 国产亚洲精品一区二555| 成人在线视频福利| 欧美日韩国产综合新一区| 欧美激情综合色| www.色综合| 亚洲理论在线a中文字幕| 欧美性生交xxxxx久久久| 亚洲国产精品热久久| 久久久在线观看| 在线播放日韩av| 亚洲免费人成在线视频观看| 欧美大学生性色视频| 欧美成人在线免费| 国产精品av免费在线观看| 38少妇精品导航| 日韩禁在线播放| 欧美日韩国产成人在线观看| 欧美电影第一页| 国产精品久久久91| 国产综合色香蕉精品| 日韩最新av在线| 日韩电影免费观看在线观看| 在线播放精品一区二区三区| 中文字幕综合在线| 91日韩在线播放| 午夜精品久久久久久久男人的天堂| 国产999精品久久久影片官网| 国产一区二区三区精品久久久| 2019中文字幕在线观看| 欧美成人自拍视频| 国产精品美女主播在线观看纯欲| 最近2019年中文视频免费在线观看| 欧美电影免费播放| 亚洲视频日韩精品| 亚洲欧洲xxxx| 久久中文久久字幕| 亚洲国产成人爱av在线播放| 亚洲欧美日韩视频一区| 亚洲人成绝费网站色www| 亚洲国产精彩中文乱码av| 亚洲欧美日韩精品久久亚洲区| 日韩精品在线视频美女| 国产精品成久久久久三级| 国产精品视频在线播放| 九九热精品视频国产| 欧美精品在线免费播放| 中文字幕在线看视频国产欧美| 国产精品久久久久久久久男| 亚洲欧美日韩在线高清直播| 综合国产在线视频| 欧美精品久久久久久久久| 精品欧美国产一区二区三区| 亚洲影视九九影院在线观看| 精品中文字幕久久久久久| 久久天天躁狠狠躁夜夜躁2014| 日韩av成人在线观看| 欧美在线xxx| 久久久久这里只有精品| 精品中文字幕久久久久久| 日韩精品视频免费| 欧美刺激性大交免费视频| 97超级碰在线看视频免费在线看| 久久高清视频免费| 久久精品视频在线观看| x99av成人免费| 国产精品久久久久av免费| 国产成人精品免费久久久久| 亚洲男人天堂久| 日韩av不卡在线| 久久久久在线观看| 正在播放亚洲1区| 中日韩美女免费视频网址在线观看| 久久99青青精品免费观看| 国产精品一区二区三区免费视频| 蜜月aⅴ免费一区二区三区| 992tv成人免费影院| 91国产精品电影| 国内精品模特av私拍在线观看| 国产精品草莓在线免费观看| 日本精品一区二区三区在线| 国产精品老女人精品视频| 国产91色在线播放| 亚洲aa在线观看| 精品在线小视频| 欧美精品日韩www.p站| 国产97免费视| 日韩免费看的电影电视剧大全| 欧美激情视频三区| 欧美黑人国产人伦爽爽爽| 欧美成人免费网| 日韩经典一区二区三区| 91成人在线观看国产| 精品成人乱色一区二区| 亚洲精品在线91| 成人免费看吃奶视频网站| 中文国产亚洲喷潮| 久久精品青青大伊人av| 日韩成人在线视频观看| 欧美日本国产在线| 欧美日韩999| 在线日韩av观看| 国产精品视频不卡| 色爱精品视频一区| 中文字幕在线看视频国产欧美在线看完整| 日韩欧美在线字幕| 日韩中文字幕免费看| 欧美精品一本久久男人的天堂| 97免费在线视频| 成人免费看吃奶视频网站| 亚洲a级在线播放观看| 国产精品久久久久99| 亚洲香蕉伊综合在人在线视看| 91社区国产高清| 国产成人拍精品视频午夜网站| 亚洲国产精久久久久久| 亚洲男子天堂网| 国产日韩欧美夫妻视频在线观看| 成人在线中文字幕| 国产精品久久久久久久美男| 亚洲成人三级在线| 国色天香2019中文字幕在线观看| 日本视频久久久| 欧美中文字幕视频在线观看| 国产成人精品一区| 精品久久久一区| 18一19gay欧美视频网站| 国产日韩av高清| 中文字幕精品av| 亚洲sss综合天堂久久| 欧美日韩裸体免费视频| 奇米成人av国产一区二区三区| 国产在线999| 国内精品久久久久久中文字幕| 91午夜在线播放| 国产不卡一区二区在线播放| 精品成人69xx.xyz| 国产精品午夜视频| 国产精品丝袜一区二区三区| 国产精品久久久久久久久久小说| 久久人人爽亚洲精品天堂| 92国产精品视频| 国产精品美女呻吟| 国产国产精品人在线视| 国产精品一区二区三区久久| 亚洲电影第1页| 午夜精品久久久99热福利| 日韩欧美成人免费视频| 日韩精品免费一线在线观看| 欧美插天视频在线播放| 最近2019中文字幕mv免费看| 亚洲三级av在线| 精品在线观看国产| 亚洲欧美日韩一区二区在线| 亚洲国产精品va在线看黑人动漫| 丰满岳妇乱一区二区三区| 欧美日韩亚洲精品一区二区三区|