久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結

時間:2019-05-12 19:03:57下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結》。

第一篇:SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結

SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結

SQL Server三大算法(嵌套,合并,哈希)的IO成本

1.Nested Loop Join(嵌套循環聯結)

算法:

其思路相當的簡單和直接:對于關系R的每個元組 r 將其與關系S的每個元組 s 在JOIN條件的字段上直接比較并篩選出符合條件的元組。寫成偽代碼就是:

代價:

被聯結的表所處內層或外層的順序對磁盤I/O開銷有著非常重要的影響。而CPU開銷相對來說影響較小,主要是元組讀入內存以后(in-memory)的開銷,是 O(n * m)

對于I/O開銷,根據 page-at-a-time 的前提條件,I/O cost = M + M * N,翻譯一下就是 I/O的開銷 = 讀取M頁的I/O開銷 + M次讀取N頁的I/O開銷。

2.Sort-Merge Join(排序合并聯結)

Nested Loop一般在兩個集合都很大的情況下效率就相當差了,而Sort-Merge在這種情況下就比它要高效不少,尤其是當兩個集合的JOIN字段上都有聚集索引(clustered index)存在時,Sort-Merge性能將達到最好。

算法:

基本思路也很簡單(復習一下數據結構中的合并排序吧),主要有兩個步驟:

(1)按JOIN字段進行排序

(2)對兩組已排序集合進行合并排序,從來源端各自取得數據列后加以比較(需要根據是否在JOIN字段有重復值做特殊的“分區”處理)

代價:(主要是I/O開銷)

有兩個因素左右Sort-Merge的開銷:JOIN字段是否已排序 以及 JOIN字段上的重復值有多少。

? 最好情況下(兩列都已排序且至少有一列沒有重復值):O(n + m)只需要對兩個集合各掃描一遍。(這里的m,n如果都能用到索引那就更好了)

? 最差情況下(兩列都未排序且兩列上的所有值都相同):O(n * log n + m * log m + n * m)兩次排序以及一次全部元組間的笛卡爾乘積

3.Hash Join(哈希聯結)

Hash Join在本質上類似于兩列都有重復值時的Sort-Merge的處理思想——分區(patitioning)。但它們也有區別:Hash Join通過哈希來分區(每一個桶就是一個分區)而Sort-Merge通過排序來分區(每一個重復值就是一個分區)。

值得注意的是,Hash Join與上述兩種算法之間的較大區別同時也是一個較大限制是它只能應用于等值聯結(equality join),這主要是由于哈希函數及其桶的確定性及無序性所導致的。算法:

基本的Hash Join算法由以下兩步組成:

同nested loop,在執行計劃中build input位于上方,probe input位于下方。hash join操作分兩個階段完成:build(構造)階段和probe(探測)階段。

(1)Build Input Phase: 基于JOIN字段,使用哈希函數h2為較小的S集合構建內存中(in-memory)的哈希表,相同鍵值的以linked list組成一個桶(bucket)

(2)Probe Input Phase: 在較大的R集合上對哈希表進行核對以完成聯結。代價:

值得注意的是對于大集合R的每個元組 r,hash bucket中對應 r 的那個bucket中的每個元組都需要與 r 進行比較,這也是算法最耗時的地方所在。

CPU開銷是O(m + n * b)b是每個bucket的平均元組數量。

總結:

三種join方法,都是擁有兩個輸入,優化的基本原則:

1.避免大數據的hash join,(hash join適合低并發情況,他占用內存和io是很大的)。

2,盡量將其轉化為高效的merge join、nested loop join。可能使用的手段有表結構設計、索引調整設計、SQL優化,以及業務設計優化

下載SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結word格式文檔
下載SQL Server 三大算法(嵌套,合并,哈希)的IO成本總結.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    主站蜘蛛池模板: 日本欧美大码a在线观看| 午夜亚洲理论片在线观看| 国农村精品国产自线拍| av成人无码无在线观看| 日韩精品毛片无码一区到三区| 久久精品成人免费观看97| 99re6在线视频精品免费下载| 熟妇人妻中文字幕| _97夜夜澡人人爽人人喊_欧美| 国产欧美精品区一区二区三区| 国产成人精品热玖玖玖| 欧美va天堂va视频va在线| 欧美激情一区二区三区高清视频| 99国产揄拍国产精品人妻| 日日摸天天碰中文字幕你懂的| 亚洲大成色www永久网站| 欧美拍拍视频免费大全| 欧美成人午夜免费影院手机在线看| 在线精品免费视频无码的| 中文字幕天天躁日日躁狠狠躁免费| 国内精品伊人久久久久av一坑| 亚洲色精品88色婷婷七月丁香| 尹人香蕉久久99天天拍欧美p7| 久久国产亚洲精品无码| 精品无码综合一区二区三区| 国产区女主播在线观看| 亚洲欧美中文日韩v在线97| 强行从后面挺进人妻| 国产成人精品亚洲日本专区61| 中文区中文字幕免费看| 久久精品人妻中文系列| 337p日本大胆欧美裸体艺术| 欧美丰满熟妇乱xxxxx图片| 亚洲精品无码专区久久| 巨乳人妻久久+av中文字幕| 亚洲欧美在线x视频| 欧美又大又色又爽aaaa片| 狠狠色噜噜狠狠狠狠蜜桃| 99在线精品免费视频九九视| 亚洲色婷婷六月亚洲婷婷6月| 久久婷婷五月综合97色|