3種主要表連線方式對比
1、巢狀迴圈連結(USE_NL)
主要消耗的相關資源:CPU,磁碟I/O
特點:在網上看到很多關於這方面的帖子,說小表作為驅動表,其實這種說話不完全正確,其實帶條件的大表返回較少行的結果集也可以作為驅動表(外部表)。此表連線在當有高選擇性索引或進行限制性搜尋時候效率較高,可以快速返回第一次的搜尋結果。
缺點:當索引丟失或查詢條件限制不夠時,效率很低。
2、排序合併連線(USE_MERGE)
主要消耗的相關資源:記憶體,臨時表空間
特點:在排序合併連線中,ORACLE分別將第一個源表、第二個源表按他們各自要連線的列排序,然後將兩個已經排序的源表合併。由於沒有索引,排序合併連線在合併兩表錢將強制對他們進行排序,兩表都需要進行全表掃描,所以表名在FROM自居中出現的次序並不重要。當缺乏索引或搜尋條件模糊時,該型別的連線比巢狀迴圈連線更加有效。
缺點:所有表都需要排序,它為最最佳化的吞吐量而設計,並且在結果沒有全部找到之前不返回資料。
3、雜湊連線(USE_HASH)
主要消耗的相關資源:記憶體,臨時表空間
特點:在雜湊連線中,ORACLE訪問第一張表(通常是連線結果中較小的表),並且在記憶體中建立一張基於連線鍵的雜湊表,然後他掃描另外一張表(較大的表),並根據雜湊表檢測是否有匹配的記錄。當缺乏索引或搜尋條件模糊時,該型別的連線比巢狀迴圈連線更加有效。通常比排序合併連線更快。
缺點:為建立雜湊表,需要大量的記憶體,第一次結果返回慢,如果在磁碟上操作,速度將更慢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2073245/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL調優篇 | 表連線方式及演算法(3)MySql演算法
- HTTP代理的兩種連線方式HTTP
- SQL中的四種連線方式SQL
- Linux網路連線的三種方式Linux
- VMware連線網路的幾種方式
- 資料庫訪問幾種方式對比資料庫
- 陣列去重的各種方式對比陣列
- Kubernetes 幾種儲存方式效能對比 (轉載)
- JavaScript 各種繼承方式優缺點對比JavaScript繼承
- 輪詢、長輪詢、短連線、長連線區別對比
- 動態IPvps介紹,有哪種連線方式?
- PHP 技術卡片 - 字串連線的幾種方式PHP字串
- 快速理解VirtualBox的四種網路連線方式
- 在 .NET 中建立物件的幾種方式的對比物件
- js實現繼承的幾種方式和對比JS繼承
- python 通過 Web3.py 連線以太坊區塊鏈的幾種方式PythonWeb區塊鏈
- python 透過 Web3.py 連線以太坊區塊鏈的幾種方式PythonWeb區塊鏈
- 資料結構線性表兩種方式分享資料結構
- Sqlserver執行計劃中表的四種連線方式SQLServer
- java排序方式對比Java排序
- 2030年全球移動應用主要技術連線佔比預測(附原資料表)
- 幀動畫的多種實現方式與效能對比動畫
- 【SQL】SQL表連線方法方式介紹(Oracle/Postgresql)SQLOracle
- python連線clickhouse資料庫的兩種方式小結Python資料庫
- Java裡連線字串的幾種方式以及優缺點Java字串
- 117 遠端連線mysql資料庫的幾種方式MySql資料庫
- C#例項化物件的三種方式及效能對比C#物件
- 簡單介紹python連線telnet和ssh的兩種方式Python
- 基於C++和Rust兩種方式擴充套件nodejs對比C++Rust套件NodeJS
- JDBC連線openGauss6.0和PostgreSQL16.2效能對比JDBCSQL
- CSS & SVG 繪製寫作網格線的3種方式CSSSVG
- VirtualBox網路連線方式
- java操作Oracle 方式一 ( 連線-》操作-》斷開連線 )JavaOracle
- 多表連線的三種方式詳解 hash join、merge join、 nested loopOOP
- oracle資料庫透過sqlplus連線的幾種方式介紹Oracle資料庫SQL
- 幾種磁碟iops對比
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- JS嵌入html的方式及各種方式的比較JSHTML
- 要點3:輸入函式對比與自定義輸入方式函式