日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《Microsoft Sql server 2008 Internals》读书笔记--第八章The Query Optimizer(5)

發(fā)布時間:2025/7/14 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Microsoft Sql server 2008 Internals》读书笔记--第八章The Query Optimizer(5) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

《Microsoft Sql server 2008 Internals》讀書筆記訂閱地址:

http://www.cnblogs.com/downmoon/category/230397.html/rss

《Microsoft Sql server 2008 Internals》索引目錄:

《Microsoft Sql server 2008 Internal》讀書筆記--目錄索引

上篇主要列舉了統(tǒng)計的概念和統(tǒng)計的設(shè)計、統(tǒng)計的濃度。本文將關(guān)注篩選統(tǒng)計和字符串統(tǒng)計、基線估計(cardinality estimation)。 ?

?

■篩選統(tǒng)計

作為SQL Server 2008中新增的篩選索引的一部分,篩選統(tǒng)計功能被加入。這意味著(某個基于篩選謂詞的表的行的子集的)統(tǒng)計對象被創(chuàng)建。可以通過sys.stats視圖來查看無數(shù)據(jù)輸出。篩選統(tǒng)計可以避免一個常見的問題:即由于數(shù)據(jù)列與列之間的相關(guān)性而變得傾斜(不準(zhǔn)確)。比如,我們有一個表cars,一列Make,一列Model。如下記錄:

Create?table?Cars
(
Car_ID?
int?,
Make?
nvarchar(20),
MODEL?
Nvarchar(20)
);
truncate?table?cars
?
insert?into?Cars
select?1,'Ford','F-150'
union?all?select?2,'Ford','Taurus'
union?all?select?3,'BMW','M3'

假定您想執(zhí)行如下查詢:

select?*?from?cars?where?Make='Ford'?and?MODEL='F-150'?

查詢處理器試圖作選擇時,它假定每一個AND子句的條件是相互獨立的,實際上執(zhí)行的結(jié)果是各條件的乘積,即(1/3)*(2/3)=2/9。然而真實的結(jié)果應(yīng)該是1/3,因為F-150肯定是Ford。當(dāng)數(shù)據(jù)量很大時,這個誤差是驚人的。

篩選統(tǒng)計通過捕捉一個帶條件的可能性從Model列進行篩選,篩選條件為Make列為Ford,這在大多數(shù)情況下會修正統(tǒng)計中的運算錯誤,特別是在where 子句包含一個相對較小的惟一值時非常有效。

除了假定獨立性外,查詢優(yōu)化器還采用其他假定來簡化估算進程。另外兩個假定是統(tǒng)一性假定和包含性假定。沒有這些假定,許多常見的查詢將會變得性能寒磣。

■字符串統(tǒng)計

SQL Server 2005采取了一項新內(nèi)容來改善針對字符串的基線估計,叫做字符串統(tǒng)計或Trie Trees,SQL Server直方圖的上限是200步(或200個惟一值),來存放整個表的分發(fā)信息。特別在查詢中使用like時,兩百個惟一值不足以提供(針對字符串的)精準(zhǔn)的基線估計,而在表外存儲大量的字符串會占用大量的空間。Trie Tree此時可以用來在列中高效地存儲一些樣例字符串。

Trie Trees沒有公開,但它通常的結(jié)構(gòu)類似于如下:
如果一個列包含如下值:
ABC

AAA

ABCDEF

ADAD

BBB
對應(yīng)的tier Tree如下:

?SQL Server實際上在列中存儲了一個字符串的樣例。這提供了一種存儲遠(yuǎn)超過200的惟一子字符串的頻度信息的能力。

?■基線估計細(xì)節(jié)

在優(yōu)化期間,查詢里的每一個運算符被計算以評估該操作影響的行數(shù),這有助于查詢優(yōu)化器基于不同的查詢計劃作出正確的權(quán)衡。這個過程是自下而上的。基表基線和統(tǒng)計被用于輸入到其上的樹節(jié)點。我們看一個例子:

Create?table?Table2010_3(col1?int,col2?int,col3?int);
go
set?nocount?on
BEGIN?TransAction;
Declare?@i?int
set?@i=0
while?@i<10000
BEGIN
????
Insert?into?Table2010_3(col1,col2,col3)?values(@i,@i,@i%50);
????
set?@i=@i+1
END
Commit?Transaction
go
Create?statistics?s2010_3?on?Table2010_3(col3);
go
select?col1,col2?from?Table2010_3?where?col3<10

其邏輯查詢樹如下:

對于該查詢,Filter操作請求在每一個參與謂詞的列(本例中是col3)上進行統(tǒng)計,該請求被傳承到Table2010_3,適當(dāng)?shù)慕y(tǒng)計對象被創(chuàng)建或更新的地方。統(tǒng)計對象此時被傳遞到篩選器,以決定操作的選擇性。選擇性被用于從樣例延展評估。

一旦一個操作的可選擇性被計算,它與當(dāng)前查詢的當(dāng)前行數(shù)相乘。

看下圖:

?因為0-49中有10個是小于10的,即10/50=0.2

10000*0.2=2000行。

我們來驗證一下,

本例中,存儲在直方圖中的濃度信息為0.02

又如下列查詢:

?select?COUNT(*)?from?Table2010_3?group?by?col3

評估的行數(shù)為(1/0.02)*(10000/10000)=50

當(dāng)一個多列統(tǒng)計對象被創(chuàng)建時,它按照統(tǒng)計對象的順序為這些被計算的列集計算濃度信息。我們再看下例:

Create?table?Table2010_4(col1?int,col2?int,col3?int);
go
set?nocount?on
BEGIN?TransAction;
Declare?@i?int
set?@i=0
while?@i<10000
BEGIN
????
Insert?into?Table2010_4(col1,col2,col3)?values(@i%5,@i%10,@i%50);
????
set?@i=@i+1
END
Commit?Transaction
go

如果前兩個列是隨機數(shù),則濃度信息可能類似下圖:

這解釋了每個col1,col2,col3的組合實際上是惟一的。通過檢查進入基線估計進程的各種各樣的輸入(Input),判斷計劃在編譯期間有無使用合理的信息成為可能。

本文主要介紹了篩選統(tǒng)計和字符串統(tǒng)計、基線估計,下文將關(guān)注Limitation和Costing

?

總結(jié)

以上是生活随笔為你收集整理的《Microsoft Sql server 2008 Internals》读书笔记--第八章The Query Optimizer(5)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久9999| jizzjizzjizz国产 | 亚洲天堂爱爱 | 综合网在线观看 | 色臀av| 日韩夫妻性生活 | 久久久久久久久久国产精品 | 精品无码在线视频 | 国产成人精品123区免费视频 | xxx在线播放 | 草草影院在线观看 | 女人性做爰69片免费看 | 99热8| 羞羞答答av | 六月婷婷激情 | 国内外成人在线视频 | 黄色av大片 | 99热久| 美女被男生免费视频 | 末路1997全集免费观看完整版 | 国产69页 | www.色偷偷 | 亚洲av无码国产精品久久 | 91视频在线免费看 | 蜜臀av中文字幕 | 日韩在线网址 | 欧美人与性动交a欧美精品 日韩免费高清视频 | 国产成人精品免高潮在线观看 | www.国产精品 | 性欢交69国产精品 | 一区二区精品在线观看 | 李丽珍毛片 | 丁香花五月天 | 亚欧美在线观看 | 久草久草 | 人妻91麻豆一区二区三区 | 蜜臀尤物一区二区三区直播 | 国产小视频在线免费观看 | 欧美激情精品久久久久久变态 | 国产成人精品亚洲精品色欲 | 91视频青青草 | 国产精品网址 | 成人黄色在线看 | jizz亚洲女人高潮大叫 | 三级艳丽杨钰莹三级 | 羽月希奶水一区二区三区 | 这里只有精品9 | www.天天射 | 久久一卡二卡 | 无码无套少妇毛多18pxxxx | 男女啊啊啊 | 女同互舔视频 | 国产精品一区二区三区免费看 | 亚洲va中文字幕 | 日韩脚交footjobhd | 伊人66 | 精品电影在线观看 | 精品国产一区二区三区久久久久久 | 国产精品36p | 91精品国自产在线 | 99re在线视频精品 | 亚洲国产精品成人av | 九色视频丨porny丨丝袜 | 久久久久毛片 | 黄色av中文字幕 | 一区www | 一进一出视频 | 亚洲精品在线观看av | 精品福利影院 | 中文字幕超碰在线 | 在线免费成人 | 亚洲精品在线观看视频 | 久久亚洲第一 | www国产亚洲精品久久网站 | 精品国产91| 精品国产乱码久久久久久婷婷 | 国产精品一区二区在线免费观看 | 亚洲精品成人av | 国产精品一区二区三区久久久 | 最近日韩中文字幕中文 | 宅男在线视频 | 国产女人18毛片18精品 | 少妇被躁爽到高潮无码人狍大战 | 黑人性高潮 | 国产天堂| 亚洲蜜桃av| 天天爽夜夜爽夜夜爽精品 | 亚洲大胆人体 | 新久草视频 | 色爽爽一区二区三区 | 日本视频免费在线播放 | 精品久久久久一区二区国产 | 国产综合精品在线 | 久草一本 | 中文字幕精品在线观看 | 亚洲 高清 成人 动漫 | 久久免费精品国产 | 可以直接在线观看的av | 爱情岛论坛永久入址测速 |