表連線概念
表連線概念
Hash join
它的連線方式﹐Oracle將第一個表加載入記憶體﹐使用一種Hash技
朮﹐連線第二個表. 顯然驅動表應該選擇兩者中的較小者。
因為CBO總是傾向於把HASH連線放在次要地位﹐我們可以用
USE_HASH提示﹐強制優化器使用HASH連線方式。由於HASH算
法的使用﹐索引的存在對效能的影響不是很大。
Nested loop
即巢狀迴圈連線﹐是一種是最基本的表連線方式﹐在巢狀迴圈
中﹐首先從驅動表讀取記錄﹐然後把結果集與第二個表進行比較
連線﹐如圖所示,這一切都是通過索引來進行的﹐如果沒有索引﹐
連線成本會大大地增加。
在考慮連線順序時﹐應該把最小的表作為驅動表。
在內部表上建有可用的索引的時候﹐應該首先考慮使用Nested Loop。
Sort merge join
它不使用索引﹐它用全表掃描獲得兩個資料集合﹐然後將它們
分別排序後﹐合併成為一個最終的結果集。
注意到排序合併連線中並沒有使用索引是非常重要的。在大多數
情況下﹐通過索引訪問更快一些﹐但是當連線表中需要有大量資料
的處理和返回﹐大量的全表掃描﹐或者表上沒有建立索引的話﹐可
以考慮使用Sort merge join。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-662604/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微課sql最佳化(13)、表的連線方法(2)-基礎概念SQL
- 表連線型別型別
- 線性表——連結串列
- 使用 jOOQ 連線兩個表
- 1112跨表連線查詢
- MySQL表連線及其優化MySql優化
- sql 連線查詢例項(left join)三表連線查詢SQL
- mORMot 1.18 第10章 連線表ORM
- PostgreSQL DBA(155) - Develop(“大表”連線)SQLdev
- powerbuildr中如何使用dblink連線的表UI
- 表的連線是指在一個SQL語句中通過表與表之間的關連SQL
- 4、資料庫連線池的概念及C3P0、Uruid兩種連線池的使用資料庫UI
- 內連線、左連線、右連線
- 資料結構-線性表、連結串列資料結構
- 通過外來鍵連線多個表
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- 【資料結構】線性表-單連結串列資料結構
- 資料庫表連線的簡單解釋資料庫
- 微課sql最佳化(15)、表的連線方法(4)-關於Hash Join(雜湊連線)SQL
- 微課sql最佳化(16)、表的連線方法(5)-關於Merge Join(排序合連線)SQL排序
- Socket連線和Http連線HTTP
- 長連線和短連線
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- mysql INNER JOIN、LEFT JOIN、RIGHT JOIN;內連線(等值連線)、左連線、右連線MySql
- MySQL連線查詢驅動表被驅動表以及效能優化MySql優化
- 【SQL】SQL表連線方法方式介紹(Oracle/Postgresql)SQLOracle
- c/c++ 線性表之單向連結串列C++
- VNC連線,VNC如何連線WindowsVNCWindows
- sql 內連線和外連線SQL
- MySQL調優篇 | 表連線方式及演算法(3)MySql演算法
- YII2連線左表子屬性不顯示
- Datagrip連線SQLserver表中出現中文亂碼解決方案SQLServer
- 如何將報表與Lazarus中FastReport的資料連線?AST
- mysql三表連線查詢以及百分數排序MySql排序
- Http持久連線與HttpClient連線池HTTPclient
- 長連線和短連線的使用
- http的長連線和短連線HTTP
- 連線池和連線數詳解
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle