3種主要表連線方式對比
1、巢狀迴圈連結(USE_NL)
主要消耗的相關資源:CPU,磁碟I/O
特點:在網上看到很多關於這方面的帖子,說小表作為驅動表,其實這種說話不完全正確,其實帶條件的大表返回較少行的結果集也可以作為驅動表(外部表)。此表連線在當有高選擇性索引或進行限制性搜尋時候效率較高,可以快速返回第一次的搜尋結果。
缺點:當索引丟失或查詢條件限制不夠時,效率很低。
2、排序合併連線(USE_MERGE)
主要消耗的相關資源:記憶體,臨時表空間
特點:在排序合併連線中,ORACLE分別將第一個源表、第二個源表按他們各自要連線的列排序,然後將兩個已經排序的源表合併。由於沒有索引,排序合併連線在合併兩表錢將強制對他們進行排序,兩表都需要進行全表掃描,所以表名在FROM自居中出現的次序並不重要。當缺乏索引或搜尋條件模糊時,該型別的連線比巢狀迴圈連線更加有效。
缺點:所有表都需要排序,它為最最佳化的吞吐量而設計,並且在結果沒有全部找到之前不返回資料。
3、雜湊連線(USE_HASH)
主要消耗的相關資源:記憶體,臨時表空間
特點:在雜湊連線中,ORACLE訪問第一張表(通常是連線結果中較小的表),並且在記憶體中建立一張基於連線鍵的雜湊表,然後他掃描另外一張表(較大的表),並根據雜湊表檢測是否有匹配的記錄。當缺乏索引或搜尋條件模糊時,該型別的連線比巢狀迴圈連線更加有效。通常比排序合併連線更快。
缺點:為建立雜湊表,需要大量的記憶體,第一次結果返回慢,如果在磁碟上操作,速度將更慢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2073245/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 各種表連線方式對比分析
- 【SQL】表連線七種方式SQL
- merge into三種表連線方式的效能比較(一)
- 不同的連線方式效能對比!
- 幾種表的連線方式(SQL)SQL
- Oracle的三種表連線方式Oracle
- iSCSI儲存的3種連線方式
- 【SQL 效能優化】表的三種連線方式SQL優化
- 三種表連線方式 最佳化總結
- hive表連線和oracle測試對比HiveOracle
- ORACLE 表連線方式Oracle
- oracle表連線方式Oracle
- 【SQL 效能最佳化】表的三種連線方式SQL
- py連線mysql常用驅動的兩種對比MySql
- 表的三種連線方式官方解釋及個人理解
- SQL表連線方式詳解SQL
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- MySQL調優篇 | 表連線方式及演算法(3)MySql演算法
- SQL中的四種連線方式SQL
- HTTP代理的兩種連線方式HTTP
- golang 幾種字串的連線方式Golang字串
- Sqlplus 多種連線方式SQL
- oracle 各種表間連線Oracle
- 表連線方式及使用場合
- Oracle 表連線方式分析(精讀)Oracle
- VMware連線網路的幾種方式
- 字串連線哪一種方式最高效字串
- vmware中三種網路連線方式
- J2ME中兩種Http連線方式Post&Get的比較HTTP
- 陣列去重的各種方式對比陣列
- 資料庫訪問幾種方式對比資料庫
- Linux網路連線的三種方式Linux
- mybatis連線資料庫的幾種方式MyBatis資料庫
- 輪詢、長輪詢、短連線、長連線區別對比
- ORACLE表連線方式及常見用法(二)Oracle
- ORACLE表連線方式的分析與優化Oracle優化
- JavaScript 各種繼承方式優缺點對比JavaScript繼承
- PHP 技術卡片 - 字串連線的幾種方式PHP字串