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

首頁 > 開發 > 綜合 > 正文

第13/24周 統計信息

2024-07-21 02:46:38
字體:
來源:轉載
供稿:網友
第13/24周 統計信息

歡迎來到性能調優培訓的第4個月。這個月全是關于SQL Server里的統計信息,還有它們如何幫助查詢優化器生成足夠好的執行計劃。統計信息主要是被查詢優化器用來估計查詢返回的行數。它只是個估計,沒別的。

統計信息概述

SQL Server使用在統計信息對象里稱作直方圖(Histogram)的東西,它描述了對于所給列最大200步長(Steps)的數據分布情況。最大的局限性之一,對于SQL Server里的統計信息是200步長的局限性(使用過濾統計信息可以超過這個步長,這在SQL Server 2008里就引入了)。

另外的局限性是統計信息的自動更新(Auto Update)機制:對于大于500行的表,如果500+20%的列值發生改變,統計信息才會更新。這就意味著,一旦表增長,你的統計信息的自動更新頻率將越少(每次觸發自動更新需要更多的記錄修改)。

假設你有100000條記錄的表,這個情況下,如果修改了20500(20%+500)的數據,統計信息才會自動更新。如果你有1000000條記錄的表,你需要修改200500(20%+500)的數據,統計信息才會自動更新。這里用到的算法是指數的,不是線性的。在SQL Server里有2371的跟蹤標志(trace flag)也會影響這個行為。

當你的執行計劃里保航書簽查找時,這個行為就會是巨大的問題。正如你知道的,基于當前的統計信息,如果查詢的估計行數是非常少的,查詢優化器才會選擇書簽查找運算符。如果你的統計信息過期,你的執行計劃還是有效的話,SQL Server就會盲目重用緩存計劃,你的頁讀取就會暴漲。我們來看看這個問題的具體例子。

失真的統計信息(Stale Statistics)

下面的腳本會創建有1500條記錄的表,在column2列有平均的數據分布。另外我們在column2列上定義非聚集索引。

 1 CREATE TABLE Table1 2 ( 3    Column1 INT IDENTITY, 4    Column2 INT 5 ) 6 GO 7  8 -- Insert 1500 records into Table1 9 SELECT TOP 1500 IDENTITY(INT, 1, 1) AS n INTO #Nums10 FROM11 master.dbo.syscolumns sc112 13 INSERT INTO Table1 (Column2)14 SELECT n FROM #nums15 16 DROP TABLE #nums17 GO 18 19 CREATE NONCLUSTERED INDEX idx_Table1_Colum2 ON Table1(Column2)20 GO

當你對表進行簡單的SELECT * 查詢時,你會得到帶有書簽查找運算符的執行計劃:

1 SELECT * FROM dbo.Table1 WHERE Column2='9'

索引查找(Non Clustered)運算符可以看到,SQL Server估計行數是1(估計行數(Estimated Number of Rows)屬性),實際上SQL Server也處理1條記錄(實際行數(Actual Number of Rows)屬性)。這就是說,我們這里用到的統計信息是準確的,查詢本身產生3個邏輯讀。

我們現在的表有1500條記錄,因此當20% + 500條記錄發生改變時,SQL Server會自動更新非聚集索引的統計信息。算一下,我們需要修改800條數據(1500 * 20% + 500)。

接下來我們對表做如下處理:我們對SQL Server做一點動作,只插入799條新記錄。但799條記錄的第2列值都是2。這就是說我們完全改變第2列的平均數據分布。統計信息會認為只有1條第2列值為2的記錄返回,但實際上卻有800條記錄返回(1條已存在的,799條新插入的):

1 SELECT TOP 799 IDENTITY(INT, 1, 1) AS n INTO #Nums2 FROM3 master.dbo.syscolumns sc14 5 INSERT INTO Table1 (Column2)6 SELECT 2 FROM #nums7 8 DROP TABLE #nums9 GO

現在我們來執行下列查詢語句,找第2列值為2的記錄,并打開執行計劃顯示和IO統計。

1 SET STATISTICS IO ON2 SELECT * FROM dbo.Table1 WHERE Column2 ='2'

SQL Server重用了有書簽查找的執行計劃。這就是說執行計劃里的書簽查找執行了1500次——一次性對所有記錄!這會耗費大量的邏輯讀——SQL Server這里報告了806個頁讀取。

從圖中可以看到,實際行數(Actual Number of Rows)現在已經遠遠超過了估計行數(Estimated Number of Rows)

SQL Server里失真的統計信息就會帶來這樣的問題。

小結

今天的性能調優培訓我給你簡單介紹了SQL Server里的統計信息。如你所見,失真的統計信息,對于緩存的,重用的執行計劃會帶來嚴重的性能問題。

我希望現在你已經能很好的理解SQL Server里的統計信息,當它們過期是,會給你的執行計劃帶來副作用。下周我會進一步討論統計信息,還有在SQL Server內部它們是怎樣的。請繼續關注。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
98精品在线视频| 亚洲成人a**站| 91久久在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲xxxx妇黄裸体| 欧美特黄级在线| 久久久精品国产一区二区| 91久久国产婷婷一区二区| 国产成人av在线播放| 茄子视频成人在线| 精品国产区一区二区三区在线观看| 欧美野外wwwxxx| 亚洲欧洲第一视频| 日韩在线观看av| 国产精品老女人视频| 777国产偷窥盗摄精品视频| 国产视频精品免费播放| 国产欧美在线播放| 国产成人aa精品一区在线播放| 久久久久久久av| 日韩在线欧美在线国产在线| 日韩欧美精品网站| 国产在线观看不卡| 亚洲精品www久久久| 国产在线a不卡| 91久久中文字幕| 亚洲国产精品女人久久久| 亚洲人免费视频| 国产一级揄自揄精品视频| www.久久久久久.com| 日韩电影视频免费| 国产一区二区免费| 韩国精品久久久999| 不卡av在线网站| 一区二区欧美日韩视频| 欧美国产日韩免费| 国产精品自产拍高潮在线观看| 成人信息集中地欧美| 久久av红桃一区二区小说| 国产精品视频一区二区高潮| 中文字幕日韩精品有码视频| 欧美日韩国产成人高清视频| 91大神在线播放精品| 国产精品福利网站| 中文字幕一区二区三区电影| 亚洲第一视频网| 国产精品久久综合av爱欲tv| 爱福利视频一区| 一本大道亚洲视频| 日韩国产中文字幕| 欧美精品18videosex性欧美| 成人福利在线观看| 高跟丝袜欧美一区| www.亚洲人.com| 久久久久日韩精品久久久男男| 日韩av在线不卡| 在线一区二区日韩| 成人国内精品久久久久一区| 懂色av中文一区二区三区天美| 日韩电影免费观看在线观看| 午夜精品福利视频| 久久久久久69| 成人福利在线观看| 亚洲福利视频免费观看| 成人在线免费观看视视频| 韩国v欧美v日本v亚洲| 日本一区二区在线免费播放| 69av视频在线播放| 国产成人97精品免费看片| 久久999免费视频| 91亚洲va在线va天堂va国| 国产精品一区二区女厕厕| 91精品国产自产在线| 久久男人的天堂| 久久五月天色综合| 亚洲免费视频网站| 亚洲电影天堂av| 亚洲第一福利网| 福利微拍一区二区| 欧美午夜精品久久久久久浪潮| 97国产真实伦对白精彩视频8| 久久精品国产久精国产思思| 国产欧美日韩丝袜精品一区| 国产精品久久久久久久久久久久久久| 亚洲人永久免费| 久久精品91久久久久久再现| 日韩免费电影在线观看| 第一福利永久视频精品| 91精品国产成人| 精品国产999| 精品亚洲夜色av98在线观看| 在线观看日韩欧美| 国产精品黄色影片导航在线观看| 668精品在线视频| 欧美日韩亚洲成人| 国产精品美女www爽爽爽视频| 亚洲xxx自由成熟| 亚洲国产精品久久久久秋霞不卡| xx视频.9999.com| 国产精品丝袜久久久久久高清| 日韩黄色av网站| 成人97在线观看视频| 日韩在线精品视频| 久久天天躁夜夜躁狠狠躁2022| 性色av一区二区咪爱| 狠狠色狠狠色综合日日小说| 26uuu日韩精品一区二区| 亚洲综合大片69999| 精品久久久久久久久久国产| 久久久久久国产| 亚洲精品色婷婷福利天堂| 日韩电视剧免费观看网站| 日韩电影中文字幕在线观看| 日韩精品一区二区三区第95| 国产精品第3页| 精品福利免费观看| 精品女厕一区二区三区| 欧美日韩国产影院| 久久久亚洲影院| 欧美日韩精品国产| 中文在线资源观看视频网站免费不卡| 少妇精69xxtheporn| 日本老师69xxx| 亚洲mm色国产网站| 亚洲精品videossex少妇| 日韩在线观看成人| 久久综合色88| 欧美激情视频网| 国产丝袜精品视频| 日韩精品中文字幕视频在线| 亚洲精品理论电影| 亚洲精品福利免费在线观看| 69av在线播放| 久久久久久久久综合| 成人久久久久久| 成人免费在线视频网址| 欧美综合在线第二页| 久久久免费精品视频| 欧美日韩第一视频| 91免费精品视频| 国产精品444| 日韩的一区二区| 国产精品福利网站| 福利一区福利二区微拍刺激| 日韩av在线影院| 亚洲欧美精品suv| 最近2019年日本中文免费字幕| 欧美人交a欧美精品| 欧美国产日韩在线| 欧美激情欧美狂野欧美精品| 久久精品视频一| 精品久久久久久久久久| 精品欧美aⅴ在线网站| 5252色成人免费视频| 日韩中文字幕不卡视频| 久久亚洲精品中文字幕冲田杏梨| 欧美亚洲免费电影| 在线视频欧美日韩| 懂色av中文一区二区三区天美| 色综合导航网站| 91久久夜色精品国产网站| 欧美日韩国产成人在线观看| 亚洲电影免费观看高清完整版在线| 国产精品久久久久久久久久久不卡|