表連線概念
表連線概念
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】表連線 --半連線SQL
- 表連線cost
- Oracle 表連線Oracle
- 表連線方法
- 兩表連線三:合併連線
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- 微課sql最佳化(13)、表的連線方法(2)-基礎概念SQL
- 表連線型別型別
- ORACLE 表連線方式Oracle
- SQL 三表連線SQL
- 排序和表連線排序
- oracle表連線方式Oracle
- Oracle的表連線方法(三)雜湊連線Oracle
- 兩表連線一:巢狀迴圈連線巢狀
- Oracle的表連線方法(一)排序合併連線Oracle排序
- Oracle表連線操作——Hash Join(雜湊連線)下Oracle
- Oracle表連線操作——Hash Join(雜湊連線)上Oracle
- 使用表連線替代exists
- 【SQL 學習】表連線SQL
- 表與表之間連線式on,using以及自然連線的區別
- Oracle的表連線方法(二)巢狀迴圈連線Oracle巢狀
- MySQL表連線及其優化MySql優化
- Mysql資料庫表連線MySql資料庫
- Oracle的表連線方法(七)Oracle
- Oracle的表連線方法(五)Oracle
- Oracle的表連線方法(六)Oracle
- oracle 各種表間連線Oracle
- 發表話題的連線
- 【SQL】表連線七種方式SQL
- SQL表連線方式詳解SQL
- 使用 jOOQ 連線兩個表
- Oracle表連線操作——Merge Sort Join(合併排序連線)Oracle排序
- oracle 專用伺服器連線與共享伺服器連線的概念和區別Oracle伺服器
- sql 連線查詢例項(left join)三表連線查詢SQL
- windows7連線hbase建立表Windows
- 表連線方式及使用場合
- 幾種表的連線方式(SQL)SQL