欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

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

自增長鍵列統計信息的處理方法

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

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

 -- 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

在索引重建后,我們再看下直方圖,我們發現最后步進的值是2008-07-31。

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

SQL Server 2005 SP1- SQL Server 2012

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

現在下面的代碼更新統計信息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

然后,當我們執行DBCC SHOW_STATISTICS命令,你會看到SQL Server已講那列標記為Ascending。

復制代碼 代碼如下:

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

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

-- 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

來看下現在的表密度:

復制代碼 代碼如下:

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

現在的表密度是0.0008873115,因此查詢優化器的估計行數是28.4516:0.0008873115*(32265-200)。

這雖然不是最好的結果,但比估計行數1好很多!

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

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

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


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

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


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

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

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

標簽:石家莊 珠海 咸寧 晉中 東營 煙臺 南昌 北海

巨人網絡通訊聲明:本文標題《自增長鍵列統計信息的處理方法》,本文關鍵詞  自,增長,鍵列,統計,信息,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《自增長鍵列統計信息的處理方法》相關的同類信息!
  • 本頁收集關于自增長鍵列統計信息的處理方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    久久电影网站中文字幕| 国产精品国产三级国产专业不| 农村黄色一级片| 欧美极品aⅴ影院| 国产乱码精品一区二区三区忘忧草 | 亚洲aaa视频| 久久久不卡网国产精品二区| 激情综合网av| 国产一区二区三区四区在线| 2017欧美狠狠色| 激情综合五月婷婷| 午夜黄色福利视频| 中文字幕二三区不卡| 国产寡妇亲子伦一区二区| 老司机精品免费视频| 国产欧美日韩三级| 成人午夜伦理影院| 色8久久人人97超碰香蕉987| 亚洲精品日日夜夜| 午夜诱惑痒痒网| 欧美精品电影在线播放| 日韩高清一区在线| 国产毛片久久久久久久| 久久―日本道色综合久久| 国产精品18久久久久久久网站| 国产一区二区三区视频播放| 国产精品国产三级国产| 91av免费观看| 51精品国自产在线| 精品伊人久久久久7777人| 一本一本久久a久久| 最好看的中文字幕久久| 国偷自产av一区二区三区麻豆| 91精品国产欧美日韩| 精品制服美女丁香| 国产大片免费看| 亚洲综合色噜噜狠狠| 人妻av一区二区| 久久综合狠狠综合久久综合88 | 97在线观看免费高| 亚洲美女屁股眼交| 国产黄色三级网站| 国产婷婷色一区二区三区四区| 成人av资源下载| 欧美另类高清zo欧美| 日韩成人免费电影| 69夜色精品国产69乱| 亚洲一区二区三区四区在线| 97伦伦午夜电影理伦片| 日本一区二区久久| 不许穿内裤随时挨c调教h苏绵 | 亚洲色图欧洲色图婷婷| 制服丝袜av在线| 久久久精品免费观看| 99riav一区二区三区| 欧美高清激情brazzers| 国产一区二区三区免费观看| 欧洲激情一区二区| 久久福利视频一区二区| 色天天综合久久久久综合片| 日韩电影在线一区二区三区| 亚洲xxxx3d动漫| 日韩电影在线免费观看| 老湿机69福利| 蜜桃视频第一区免费观看| 精品国产视频在线观看| 日韩国产在线一| 一本色道综合亚洲| 老鸭窝一区二区久久精品| 91黄色小视频| 国内欧美视频一区二区| 欧美日韩国产经典色站一区二区三区| 久久国产生活片100| 欧美午夜电影网| 国产一区二区三区香蕉| 欧美日韩成人综合| 成人免费视频app| 日韩精品最新网址| 人妻少妇偷人精品久久久任期| 久久新电视剧免费观看| 美女伦理水蜜桃4| 亚洲特级片在线| 日本人亚洲人jjzzjjz| 亚洲国产精品一区二区www在线| 久久精品亚洲a| 美女国产一区二区| 欧美日本在线播放| 成人动漫一区二区三区| 久久蜜桃一区二区| 老司机免费视频| 亚洲欧美另类在线| 中文字幕91视频| 美美哒免费高清在线观看视频一区二区 | 欧美不卡一区二区三区四区| 91色在线porny| 国产精品久久久久久久久久久免费看 | 风间由美一区二区三区在线观看| 精品少妇一区二区三区日产乱码| 欧洲成人午夜精品无码区久久| 国产精品视频一二三| 舐め犯し波多野结衣在线观看| 亚洲444eee在线观看| 91成人在线精品| 国产精品自拍毛片| 久久综合久久99| 99久久久无码国产精品性 | 日本丰满少妇裸体自慰 | 制服丝袜第一页在线观看| 亚洲伦理在线免费看| 国产人妻精品一区二区三区不卡| 韩国毛片一区二区三区| 精品理论电影在线观看| 菠萝菠萝蜜网站| 日韩精品成人一区二区在线| 欧美日韩成人一区二区| 超碰人人cao| 一区二区三区不卡视频| 欧美在线观看18| 熟妇无码乱子成人精品| 一区二区三区在线免费观看| 一本大道av一区二区在线播放| 懂色av噜噜一区二区三区av| 国产精品午夜电影| 暗呦丨小u女国产精品| 国产91丝袜在线18| 国产精品久久久99| 久久中文免费视频| 99免费精品在线观看| 亚洲黄色在线视频| 欧美视频一区在线观看| 中文字幕无人区二| 亚洲成精国产精品女| 欧美一区二区久久| 少妇大叫太粗太大爽一区二区| 免费的国产精品| 亚洲精品一区二区三区香蕉| 精品成人无码一区二区三区| 国产美女一区二区| 中文字幕欧美日本乱码一线二线| 黄色香蕉视频在线观看| 成人av先锋影音| 一区二区三区四区视频精品免费| 欧美日韩另类一区| av在线播放网址| 久久国产精品99久久久久久老狼 | 国产精品18久久久久| 国产精品午夜在线| 91久久精品国产91性色tv| 911亚洲精选| 日本午夜一本久久久综合| 2024国产精品| 熟女少妇a性色生活片毛片| 成人激情小说乱人伦| 一区二区欧美视频| 日韩一区国产二区欧美三区| 香蕉视频久久久| 丁香激情综合国产| 亚洲国产成人91porn| 日韩精品在线网站| 午夜激情视频在线播放| 91色在线porny| 日韩va亚洲va欧美va久久| 久久久久久免费网| 色偷偷成人一区二区三区91| 69亚洲乱人伦| 国内精品伊人久久久久av一坑 | 一区视频在线播放| 欧美日韩三级视频| 国产一二三四五区| 成人av电影在线观看| 午夜视频在线观看一区二区三区| 久久综合九色综合欧美亚洲| 色婷婷综合视频在线观看| 女性生殖扒开酷刑vk| 国内一区二区视频| 亚洲在线观看免费| 久久久午夜电影| 欧美视频在线一区| 在线观看免费小视频| 日本55丰满熟妇厨房伦| 久久精品国产精品亚洲精品 | 成人18视频免费69| 性生交大片免费看l| 国产一区 二区 三区一级| 亚洲国产中文字幕在线视频综合 | 国产成人综合视频| 亚洲最新视频在线播放| 久久久综合网站| 欧美伊人精品成人久久综合97| 88久久精品无码一区二区毛片| 97成人超碰视| 国内久久婷婷综合| 亚洲成人你懂的| 中文字幕一区二区三区不卡在线 | 日韩一二三区不卡| 青草影院在线观看| 91成人在线免费视频| 又色又爽又黄18网站| 国产成人在线影院| 麻豆精品一区二区综合av|