校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 自增長鍵列統(tǒng)計信息的處理方法

自增長鍵列統(tǒng)計信息的處理方法

熱門標(biāo)簽:電銷機器人被曝光 怎樣把地圖標(biāo)注導(dǎo)入公司地址 地圖標(biāo)注一個圓圈怎么用 寧波人工外呼系統(tǒng)有效果嗎 真人語音電銷機器人 廣州人工電銷機器人費用 洛陽外呼系統(tǒng)平臺 如何在地圖標(biāo)注自己店鋪 400外呼系統(tǒng)合法

這篇文章通過文字代碼的形式講解了如何處理用自增長鍵列的統(tǒng)計信息。我們都知道,在SQL Server里每個統(tǒng)計信息對象都有關(guān)聯(lián)的直方圖。直方圖用多個步長描述指定列數(shù)據(jù)分布情況。在一個直方圖里,SQL Server最大支持200的步長,但當(dāng)你查詢的數(shù)據(jù)范圍在直方圖最后步長后,這是個問題。我們來看下面的代碼,重現(xiàn)這個情形:

 -- Create a simple orders table
 CREATE TABLE Orders
 (
  OrderDate DATE NOT NULL,
  Col2 INT NOT NULL,
  Col3 INT NOT NULL
 )
 GO
 
 -- Create a Non-Unique Clustered Index on the table
 CREATE CLUSTERED INDEX idx_CI ON Orders(OrderDate)
 GO
 
 -- Insert 31465 rows from the AdventureWorks2008r2 database
 INSERT INTO Orders (OrderDate, Col2, Col3) SELECT OrderDate, CustomerID, TerritoryID FROM AdventureWorks2008R2.Sales.SalesOrderHeader
 GO
 
 -- Rebuild the Clustered Index, so that we get fresh statistics.
 -- The last value in the Histogram is 2008-07-31.
 ALTER INDEX idx_CI ON Orders REBUILD
 GO
 
 -- Insert 200 additional rows *after* the last step in the Histogram
 INSERT INTO Orders (OrderDate, Col2, Col3)
 VALUES ('20100101', 1, 1)
 GO 200

在索引重建后,我們再看下直方圖,我們發(fā)現(xiàn)最后步進(jìn)的值是2008-07-31。

復(fù)制代碼 代碼如下:

DBCC SHOW_STATISTICS('dbo.Orders', 'idx_CI') WITH HISTOGRAM

你已經(jīng)看到,在最后步進(jìn)到表里后,我們插入了200條額外記錄。這樣的話,直方圖并沒有真實反饋實際的數(shù)據(jù)分布情況,但SQL Server還是要進(jìn)行基數(shù)計算。我們現(xiàn)在來看看在不同版本里SQL Server是如何處理這個問題的。

復(fù)制代碼 代碼如下:

SQL Server 2005 SP1- SQL Server 2012

在SQL Server 2014之前,基數(shù)計算對此問題的處理非常簡單:SQL Server估計行數(shù)為1,你可以從下面的圖片里看到。

點擊工具欄的顯示包含實際的執(zhí)行計劃,并執(zhí)行如下查詢:

復(fù)制代碼 代碼如下:

SELECT * FROM dbo.Orders WHERE OrderDate='2010-01-01'

 自SQL Server 2005 SP1起,查詢優(yōu)化器可以標(biāo)記1列為自增長(Ascending)來克服剛才介紹的限制。如果你用自增長列值更新了統(tǒng)計信息對象3次,那列就會被標(biāo)記為自增長列。為了看有沒有列標(biāo)記為自增長,你可以使用跟蹤標(biāo)記2388。當(dāng)你啟用這個跟蹤標(biāo)記,DBCC SHOW_STATISTICS的輸出就改變了,有額外列返回。

復(fù)制代碼 代碼如下:

DBCC TRACEON(2388)
DBCC SHOW_STATISTICS('dbo.Orders', 'idx_CI')

現(xiàn)在下面的代碼更新統(tǒng)計信息3次,每次用自增長鍵列值在我們聚集索引末尾插入行。

 -- => 1st update the Statistics on the table with a FULLSCAN
  UPDATE STATISTICS Orders WITH FULLSCAN
  GO
  
  -- Insert 200 additional rows *after* the last step in the Histogram
  INSERT INTO Orders (OrderDate, Col2, Col3)
 VALUES ('20100201', 1, 1)
  GO 200
  
 -- => 2nd update the Statistics on the table with a FULLSCAN
 UPDATE STATISTICS Orders WITH FULLSCAN
 GO
 
 -- Insert 200 additional rows *after* the last step in the Histogram
 INSERT INTO Orders (OrderDate, Col2, Col3)
 VALUES ('20100301', 1, 1)
 GO 200
 
 -- => 3rd update the Statistics on the table with a FULLSCAN
 UPDATE STATISTICS Orders WITH FULLSCAN
 GO

然后,當(dāng)我們執(zhí)行DBCC SHOW_STATISTICS命令,你會看到SQL Server已講那列標(biāo)記為Ascending。

復(fù)制代碼 代碼如下:

DBCC TRACEON(2388)
DBCC SHOW_STATISTICS('dbo.Orders', 'idx_CI')

現(xiàn)在當(dāng)你再次執(zhí)行查詢不是直方圖范圍的數(shù)據(jù)時,沒有任何改變。為了使用標(biāo)記為自增長鍵列,你要啟用另外一個跟蹤標(biāo)記-2389。如果你啟用這個跟蹤標(biāo)記,查詢優(yōu)化器就是密度向量(Density Vector)來進(jìn)行基數(shù)計算。

-- Now we query the newly inserted range which is currently not present in the Histogram.
-- With Trace Flag 2389, the Query Optimizer uses the Density Vector to make the Cardinality Estimation.
SELECT * FROM Orders
WHERE OrderDate = '20100401'
OPTION (RECOMPILE, QUERYTRACEON 2389)
GO

來看下現(xiàn)在的表密度:

復(fù)制代碼 代碼如下:

DBCC TRACEOFF(2388)
DBCC SHOW_STATISTICS('dbo.Orders', 'idx_CI')

現(xiàn)在的表密度是0.0008873115,因此查詢優(yōu)化器的估計行數(shù)是28.4516:0.0008873115*(32265-200)。

這雖然不是最好的結(jié)果,但比估計行數(shù)1好很多!

(這里有問題,我本地是SQL Server 2008r2,測試估計行數(shù)還是1,不知原因,望知道的朋友解釋下,多謝!)

SQL Server 2014
在SQL Server 2014引入的一個新功能是新基數(shù)計算。新基數(shù)計算對于自增長鍵問題的處理非常簡單:默認(rèn)不使用任何跟蹤標(biāo)記,來使用統(tǒng)計信息對象的密度向量來進(jìn)行基數(shù)計算。下面查詢啟用2312跟蹤標(biāo)記的基數(shù)計算來運行同個查詢。

1 -- With the new Cardinality Estimator SQL Server estimates 28.4516 rows at the Clustered Index Seek operator.
2 SELECT * FROM Orders
3 WHERE OrderDate = '20100401'
4 OPTION (RECOMPILE, QUERYTRACEON 2312)
5 GO


我們來看這里的基數(shù)計算,你會看到查詢優(yōu)化器再次估計行數(shù)是28.4516,但這一次沒表上自增長。這是SQL Server 2014的自帶功能。

(SQL Server 2014測試失敗,估計行數(shù)也是1……)


在這篇文章,我向你展示了SQL Server的查詢優(yōu)化器如何處理自增長鍵問題。在SQL Server 2014之前,你需要啟用2389跟蹤標(biāo)記來獲得更好的基數(shù)計算——這樣的話那列會標(biāo)記為自增長(ascending)。SQL Server 2014,查詢優(yōu)化器默認(rèn)就使用密度向量來進(jìn)行基數(shù)計算,這樣就方便很多。我希望你對此有所收獲,在SQL Server里如何處理自增長鍵列問題你會有更好的想法。

希望對大家有所啟迪,謝謝。

您可能感興趣的文章:
  • 對有自增長字段的表導(dǎo)入數(shù)據(jù)注意事項
  • SQL Server設(shè)置主鍵自增長列(使用sql語句實現(xiàn))
  • oracle中的ID號實現(xiàn)自增長的方法
  • mysql修改自增長主鍵int類型為char類型示例
  • 實現(xiàn)oracle數(shù)據(jù)庫字段自增長(兩種方式)

標(biāo)簽:石家莊 珠海 咸寧 晉中 東營 煙臺 南昌 北海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《自增長鍵列統(tǒng)計信息的處理方法》,本文關(guān)鍵詞  自,增長,鍵列,統(tǒng)計,信息,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《自增長鍵列統(tǒng)計信息的處理方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于自增長鍵列統(tǒng)計信息的處理方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩国产一二三区| 一区二区视频在线| 亚洲日本欧美天堂| 成人午夜激情影院| 亚洲视频每日更新| 欧美精品vⅰdeose4hd| 亚洲成在人线免费| 欧美一区二区三区喷汁尤物| 视频一区视频二区在线观看| 久久亚洲一区二区三区四区| www.日韩在线| 视频精品一区二区| 国产欧美视频一区二区三区| 日本高清不卡视频| 乱一区二区av| 亚洲男帅同性gay1069| 欧美日韩小视频| 国产高清精品网站| 亚洲一区视频在线| 精品美女在线播放| 91色婷婷久久久久合中文| 午夜精品福利一区二区蜜股av| 日韩三级中文字幕| 国产不卡在线播放| 天天影视涩香欲综合网| 国产精品久久久久久久久免费丝袜 | 免费视频一区二区| 国产精品久久久久久久浪潮网站| 欧美日韩高清一区二区三区| 激情久久五月天| 天天综合日日夜夜精品| 国产精品短视频| 国产精品拍天天在线| 欧美一区二区视频观看视频| 91年精品国产| 成人午夜电影小说| 国内国产精品久久| 久久精品国产网站| 欧美日韩精品系列| 色悠悠久久综合| 成人伦理片在线| 成人sese在线| 粉嫩aⅴ一区二区三区四区| 久久黄色级2电影| 日韩精彩视频在线观看| 亚洲综合区在线| 国产精品久久久久久久岛一牛影视 | 欧美日韩在线播放| 成人av网站免费| 成人激情免费视频| 国产精品自拍网站| 国产一区二区不卡老阿姨| 久久成人免费电影| 精品一区二区三区在线播放 | 丝袜美腿亚洲色图| 一区二区三区美女| 一区二区三区精品视频| 亚洲自拍都市欧美小说| 亚洲一区影音先锋| 午夜精品久久久久久久99水蜜桃 | 成人免费va视频| 99精品国产视频| 91在线免费看| 精品视频在线免费看| 日韩亚洲欧美高清| 国产日韩欧美精品综合| 国产精品久久久久影院| 亚洲综合免费观看高清完整版在线| 亚洲乱码国产乱码精品精小说| 亚洲女女做受ⅹxx高潮| 视频在线观看91| 国产精品影音先锋| 91亚洲永久精品| 国产女同互慰高潮91漫画| 久久一区二区三区四区| 成人欧美一区二区三区黑人麻豆| 亚洲欧美日韩一区二区| 一区二区三区91| 日本欧美加勒比视频| 国产乱码精品一区二区三区忘忧草| 国产成人亚洲综合色影视| 91视频在线观看免费| 欧美高清视频www夜色资源网| 精品福利一区二区三区免费视频| 国产精品亲子伦对白| 婷婷夜色潮精品综合在线| 国产乱国产乱300精品| 欧美三级一区二区| 国产欧美日韩视频一区二区| 午夜伊人狠狠久久| 粉嫩嫩av羞羞动漫久久久 | 91在线视频官网| 欧美日韩国产成人在线免费| 国产午夜亚洲精品午夜鲁丝片| 亚洲女人的天堂| 国内精品不卡在线| 欧美精品日韩精品| 日韩伦理av电影| 国产一区视频网站| 久久精品欧美一区二区三区麻豆| 亚洲欧美日韩人成在线播放| 国产尤物一区二区| 欧洲精品一区二区| 国产欧美日韩精品a在线观看| 亚洲成人在线观看视频| 成人午夜激情影院| 久久美女艺术照精彩视频福利播放 | 欧美电影在哪看比较好| 成人欧美一区二区三区白人 | 亚洲国产精华液网站w| 美洲天堂一区二卡三卡四卡视频| 91日韩在线专区| 中文字幕成人网| 国产美女视频一区| 欧美一级片免费看| 日韩激情视频网站| 在线成人午夜影院| 亚洲国产精品一区二区久久| 色婷婷激情一区二区三区| 精品久久久久久久久久久久包黑料| 亚洲在线观看免费视频| 91日韩一区二区三区| 中文成人av在线| 成人综合激情网| 日本一区二区电影| 国产**成人网毛片九色| 国产精品丝袜久久久久久app| 国产剧情在线观看一区二区| 欧美大片在线观看一区二区| 久久国产视频网| 91麻豆精品国产| 欧美aⅴ一区二区三区视频| 欧美剧情电影在线观看完整版免费励志电影| 中文字幕亚洲欧美在线不卡| caoporn国产精品| 亚洲欧美国产毛片在线| 色噜噜狠狠一区二区三区果冻| 亚洲精品免费播放| 91高清视频在线| 午夜欧美大尺度福利影院在线看| 91成人免费网站| 午夜av一区二区三区| 日韩欧美一级特黄在线播放| 蜜桃精品视频在线观看| 亚洲精品在线免费观看视频| 国产精品自拍一区| 亚洲天堂中文字幕| 欧美日韩成人在线一区| 久久精品久久99精品久久| 精品不卡在线视频| 99在线精品一区二区三区| 一区二区三区四区视频精品免费| 欧美色倩网站大全免费| 蜜臀av性久久久久蜜臀av麻豆| 精品久久久久一区| 99久久国产综合精品麻豆| 午夜在线成人av| 久久精品男人的天堂| 色天天综合久久久久综合片| 亚洲成a人片在线观看中文| 亚洲精品一区二区三区香蕉| 成人国产电影网| 日韩精品一二三| 亚洲欧洲国产日韩| 日韩欧美一级二级三级| 91在线观看地址| 老司机精品视频导航| 亚洲夂夂婷婷色拍ww47 | 国产精品久久久久婷婷| 91精品黄色片免费大全| 国产成人99久久亚洲综合精品| 一区二区三区免费看视频| 欧美精品一区二区三区四区| 日本福利一区二区| 国产精品自产自拍| 五月天一区二区三区| 中文字幕亚洲在| 精品国产乱码久久久久久蜜臀 | aaa欧美色吧激情视频| 青青草国产精品亚洲专区无| 国产精品欧美经典| 日韩欧美国产不卡| 在线观看一区不卡| 不卡区在线中文字幕| 国产一区在线不卡| 蜜臀久久久久久久| 亚洲精品国产a| 亚洲欧洲精品一区二区精品久久久| 日韩女优视频免费观看| 欧美欧美欧美欧美首页| 一本大道久久a久久精二百| 成人性生交大片免费看视频在线 | 国产综合久久久久久鬼色| 亚洲一区二区三区四区五区黄| 中文字幕免费在线观看视频一区| 日韩欧美一区二区视频| 日韩一区二区精品| 欧美年轻男男videosbes| 日本韩国精品在线| 欧美亚洲一区二区三区四区|