日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQL Server索引直方圖描述

以下的文章主要向大家講述的是SQL Server索引直方圖(The Statistics Histogram),在直方圖中,其至多可存儲(chǔ)200個(gè)樣本值。每個(gè)樣本被稱為一個(gè)step。保存在每個(gè)step中樣本值是值的范圍的端點(diǎn)。每個(gè)step保存了3個(gè)值,分別描述為:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、涼州網(wǎng)站維護(hù)、網(wǎng)站推廣。

EQ_ROWS——與樣本值相同的行數(shù)。換句話就是該step中重復(fù)值的個(gè)數(shù)。

RANG_ROWS——表示除了當(dāng)前值外,介于當(dāng)前step和前一個(gè)step之間其他值的行數(shù)。

Rang Density——表示在該范圍內(nèi)有多少個(gè)不同的值。范圍密度信息實(shí)際上有兩個(gè)單獨(dú)的列組成,分別為:DISTINCT_RANGE_ROWS 和AVG_RANG_ROWS。

DISTINCT_RANGE_ROWS表示除了當(dāng)前值外,當(dāng)前step與前一個(gè)step之間具有多少個(gè)不同值的個(gè)數(shù)。

AVG_RANGE_ROWS在該step范圍內(nèi),每個(gè)不同值的平均行數(shù)。

在listing34.1的輸出中,SQL Server索引直方圖中第一列的所有不同鍵值的值作為樣本值存儲(chǔ)在直方圖中,所以,直方圖中的樣本值之間沒有值(RANG_ROWS),其后所有的范圍值為0。你可能注意到在last name 為Ringer的索引鍵值上有一個(gè)重復(fù)值(EQ_ROWS = 2)。為了更好比較,Listing34.2顯示了bigpubs2000數(shù)據(jù)庫(kù)中的sales表的DBCC SHOW_STATISTICS信息片段。

 
 
 
  1. Listing 34.2 DBCC SHOW_STATISTICS Output for the titleidind Index on the sales Table in the bigpubs2000 Database   
  2. Statistics for INDEX 'titleidind'.   
  3. Updated Rows Rows Sampled Steps Density Average key length   
  4. Aug 21 2001 11:18PM 168725 168725 200 1.8955356E-3 26.405577   
  5. (1 row(s) affected)   
  6. All density Average Length Columns   
  7. 1.8621974E-3 6.0 title_id   
  8. 5.997505E-6 10.0 title_id, stor_id   
  9. 5.9268041E-6 26.405577 title_id, stor_id, ord_num   
  10. (3 row(s) affected)   
  11. RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS   
  12. BI0194 0.0 314.0 0 0.0   
  13. BI2184 613.0 343.0 2 306.5   
  14. BI2574 270.0 277.0 1 270.0   
  15. BI3224 618.0 286.0 2 309.0   
  16. BI3976 311.0 293.0 1 311.0   
  17. BI6450 673.0 300.0 2 336.5   
  18. BI9506 947.0 292.0 3 315.66666   
  19. BU1111 296.0 299.0 1 296.0   
  20. BU7832 349.0 334.0 1 349.0   
  21. CH0249 1011.0 311.0 3 337.0   
  22. CH0639 984.0 307.0 3 328.0   
  23. ...   
  24. TC4203 0.0 321.0 0 0.0   
  25. TC7777 0.0 297.0 0 0.0   
  26. (200 row(s) affected)   

從這個(gè)例子你可以看出,每個(gè)范圍內(nèi)有更多的值(RANG_ROWS),并且每個(gè)step中包含了更多的重復(fù)值(EQ_ROWS)。另外,直方圖中的所有200行都被使用了,表中的168,725行記錄分布在這些200行中。所有的168,725行都被用來生成統(tǒng)計(jì)信息(Rows Sampled)。

只有當(dāng)一個(gè)常量表達(dá)式與索引列進(jìn)行比較時(shí),并且常量表達(dá)式的值在查詢編譯時(shí)是已知時(shí),SARG的計(jì)算才能使用直方圖的step值。直方圖中的step可以為SARG使用的的例子包括:

 
 
 
  1. Where col_a = getddate()   
  2. Where cust_id = 12345   
  3. Where monthly_sales < 10000 /12   
  4. Where l_name like "Smith" + "%" 

有些常量表達(dá)式的直到查詢運(yùn)行時(shí)才能計(jì)算出來。這些查詢參數(shù)中包含了局部變量或者子查詢:

 
 
 
  1. Where price = @avg_price   
  2. Where total_sales > (select sum(qty) from sales)   
  3. Where titles.pub_id = publishers_id 

對(duì)于這些類型的表達(dá)式,你需要其他方法來估計(jì)匹配的行數(shù)。另外,因?yàn)橹狈綀Dsteps只記錄了索引中第一列的值,當(dāng)需要評(píng)估組合索引的多列的SARG匹配的行數(shù)時(shí),SQL Server必須使用不同方法來決定,例如下面:

 
 
 
  1. Select * from sales   
  2. Where title_id = 'BI3976'   
  3. And stor_id = 'p648' 

當(dāng)直方圖沒有被使用或者不能使用時(shí),SQL Server使用索引密度值來估計(jì)匹配的行數(shù),以上的相關(guān)內(nèi)容就是對(duì)SQL Server索引直方圖(The Statistics Histogram)的介紹,望你能有所收獲。

【編輯推薦】

  1. 創(chuàng)建SQL Server數(shù)據(jù)庫(kù)更是實(shí)在
  2. SQL Server創(chuàng)建表所要用到的代碼
  3. SQL Server創(chuàng)建約束的代碼運(yùn)用
  4. 實(shí)現(xiàn)SQL Server創(chuàng)建事務(wù)要用到的代碼
  5. 優(yōu)化SQL Server數(shù)據(jù)庫(kù)的經(jīng)驗(yàn)大盤點(diǎn)

網(wǎng)站標(biāo)題:SQL Server索引直方圖描述
分享鏈接:http://www.5511xx.com/article/ccoodeh.html