久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

hash join構(gòu)建位圖的示例分析

共計(jì) 1612 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

這篇文章主要介紹了 hash join 構(gòu)建位圖的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

hash join 的邏輯
—  全表掃描小表,并把關(guān)聯(lián)字段的值取出,在 pga 里構(gòu)建 hash table。
—  遍歷大表,根據(jù)掃描的結(jié)果按照關(guān)聯(lián)字段執(zhí)行相同的 hash 函數(shù),得到 hash value,去 pga 的 hash table 里找匹配記錄。

較小的 row source 被用來(lái)構(gòu)建 hash table 與 bitmap,第 2 個(gè) row source 被用來(lái)被 hansed,并與第一個(gè) row source 生成的 hash table 進(jìn)行匹配,以便進(jìn)行進(jìn)一步的連接。Bitmap 被用來(lái)作為一種比較快的查找方法,來(lái)檢查在 hash table 中是否有匹配的行。特別的,當(dāng) hash table 比較大而不能全部容納在內(nèi)存中時(shí),這種查找方法更為有用。這種連接方法也有 NL 連接中所謂的驅(qū)動(dòng)表的概念,被構(gòu)建為 hash table 與 bitmap 的表為驅(qū)動(dòng)表,當(dāng)被構(gòu)建的 hash table 與 bitmap 能被容納在內(nèi)存中時(shí),這種連接方式的效率極高。

位圖索引的理解
位圖索引:表有多少行則索引就有多少比特位,比如表的 id 字段建立位圖索引(只有 5(第一行)、10(第二行)、15(剩下所有行)三個(gè)值),表有 100 行,則索引就有 100 比特位,則表第一行是 5,則第一行對(duì)應(yīng)第一個(gè)索引值,索引塊中第一個(gè)索引值是 5 后面對(duì)應(yīng)的不是傳統(tǒng)的 B 樹(shù)索引性質(zhì)的 rowid 而是位圖標(biāo)識(shí)如 1000000000000(99 個(gè) 0),表第二行是 10,則第二行對(duì)應(yīng)第二個(gè)索引值,索引塊中第二個(gè)索引值是 10 后面對(duì)應(yīng) 01000000000000(98 個(gè) 0),第三行之后的所有行對(duì)應(yīng)第三個(gè)索引值 001111111(98 個(gè) 1)
索引塊如下
5  1000000000000
10 0100000000000
15 0011111111111
通過(guò)上面的 1 可以看出 5 只有 1 行是第一行,10 只有 1 行是第二行,15 對(duì)應(yīng)后面的 98 行,如果如下每隔四行就是 5,則說(shuō)明 5 總計(jì)有 20 個(gè)值,發(fā)現(xiàn)每列只有一個(gè) 1, 其實(shí)就是每行只有一個(gè)值得原因
5  1000010000100
10 0100000000000
15 0011101111011

以下為個(gè)人對(duì) hash 位圖的一些理解
位圖就類似下面 a[1][0]、a[1][1]、a[1][2]、..a[1][9]、..a[10][0]
1、2、3、4、..、100
1、2、3、4、..、1000
1、2、3、4、..、10000
如何快速找出 28
a[10][10]
a[100][10]
a[1000][10]

mod(10,10)
a[1][0]=1
a[1][1]=11
..
a[1][9]=91
a[2][0]=2
a[2][1]=12
..
a[2][9]=92

a[8][?]
[8][2]- 28
以上 a[10][0]=10、a[10][1]=20(因?yàn)槭粸?1,就是 10. 加上前面?zhèn)€位的 10,就是 20)..a[10][9]=100
1、11、21、31、…91
2、12、22、32、…92
3、13、23、33、…93

8、18、28、38、…98
..
10、20、30、40、…100

mod(100,10)
a[1][0]=1
a[1][1]=11
..
a[1][9]=91
a[2][0]=2
a[2][1]=12
..
a[2][9]=92

a[28][?]
[28][0]- 28

mod(1000,10)
a[1][0]=1
a[1][1]=11
..
a[1][9]=91
a[2][0]=2
a[2][1]=12
..
a[2][9]=92

a[28][?]
[28][0]- 28

感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“hash join 構(gòu)建位圖的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-20發(fā)表,共計(jì)1612字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 平乐县| 乌兰县| 清流县| 萍乡市| 新蔡县| 湄潭县| 澄城县| 横山县| 临洮县| 陕西省| 峨边| 恭城| 凭祥市| 宾阳县| 鄂尔多斯市| 麟游县| 辽阳市| 碌曲县| 柳州市| 涞源县| 会东县| 五大连池市| 班戈县| 新建县| 宁强县| 滦南县| 丰镇市| 永修县| 巴彦县| 伊川县| 团风县| 江川县| 隆德县| 宁陵县| 从化市| 当阳市| 松溪县| 山阴县| 类乌齐县| 珠海市| 偏关县|