merge into三種表連線方式的效能比較(一)
SQL> show user
USER 為 "SYS"
SQL> alter system flush buffer_cache;
USER 為 "SYS"
SQL> alter system flush buffer_cache;
系統已更改。
SQL> alter system flush shared_pool;
系統已更改。
SQL> set time on
21:51:31 SQL> set timing on
21:51:34 SQL> merge /*+ use_merge(t tmp) */ into t_big t using t_big_tmp tmp on
(t.big_id=tmp.big_id) when not matched then insert (t.big_id,big_name) values(tm
p.big_id,tmp.big_name);
21:51:31 SQL> set timing on
21:51:34 SQL> merge /*+ use_merge(t tmp) */ into t_big t using t_big_tmp tmp on
(t.big_id=tmp.big_id) when not matched then insert (t.big_id,big_name) values(tm
p.big_id,tmp.big_name);
1000000 行已合併。
已用時間: 00: 00: 02.43
21:52:08 SQL> rollback;
21:52:08 SQL> rollback;
回退已完成。
已用時間: 00: 00: 00.20
21:52:14 SQL> alter system flush buffer_cache;
21:52:14 SQL> alter system flush buffer_cache;
系統已更改。
已用時間: 00: 00: 06.25
21:52:30 SQL> alter system flush shared_pool;
21:52:30 SQL> alter system flush shared_pool;
系統已更改。
已用時間: 00: 00: 00.03
21:52:37 SQL> merge /*+ use_hash(t tmp) */ into t_big t using t_big_tmp tmp on (
t.big_id=tmp.big_id) when not matched then insert (t.big_id,big_name) values(tmp
.big_id,tmp.big_name);
21:52:37 SQL> merge /*+ use_hash(t tmp) */ into t_big t using t_big_tmp tmp on (
t.big_id=tmp.big_id) when not matched then insert (t.big_id,big_name) values(tmp
.big_id,tmp.big_name);
1000000 行已合併。
已用時間: 00: 00: 04.16
21:52:55 SQL> rollback;
21:52:55 SQL> rollback;
回退已完成。
已用時間: 00: 00: 00.17
21:53:14 SQL> alter system flush buffer_cache;
21:53:14 SQL> alter system flush buffer_cache;
系統已更改。
已用時間: 00: 00: 08.48
21:53:33 SQL> alter system flush shared_pool;
21:53:33 SQL> alter system flush shared_pool;
系統已更改。
已用時間: 00: 00: 00.01
21:53:37 SQL> merge /*+ use_nl(t tmp) */ into t_big t using t_big_tmp tmp on (t.
big_id=tmp.big_id) when not matched then insert (t.big_id,big_name) values(tmp.b
ig_id,tmp.big_name);
^C
C:\Users\123>
C:\Users\123>
C:\Users\123>
C:\Users\123>
21:53:37 SQL> merge /*+ use_nl(t tmp) */ into t_big t using t_big_tmp tmp on (t.
big_id=tmp.big_id) when not matched then insert (t.big_id,big_name) values(tmp.b
ig_id,tmp.big_name);
^C
C:\Users\123>
C:\Users\123>
C:\Users\123>
C:\Users\123>
小結:真正表100w記錄,臨時表無記錄,二表相同表結構
二表皆無索引,use_merge>use_hash>use_nl
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-750844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多表連線的三種方式詳解 hash join、merge join、 nested loopOOP
- Linux網路連線的三種方式Linux
- JS嵌入html的方式及各種方式的比較JSHTML
- 轉換String三種方式比較:toString()、String.valueOf()、(String)
- C#例項化物件的三種方式及效能對比C#物件
- Java幾種常用JSON庫效能比較JavaJSON
- SQL中的四種連線方式SQL
- HTTP代理的兩種連線方式HTTP
- 效能比較
- mongodb資料遷移2種方式比較MongoDB
- 【前端詞典】5 種滾動吸頂實現方式的比較[效能升級版]前端
- jmeter混合場景的多種實現方式比較JMeter
- 三種滑動方式的比較(scrollTo & view動畫 & 改變佈局引數)View動畫
- Mysql關於長連線短連線優劣比較MySql
- VMware連線網路的幾種方式
- 請比較下for、forEach、for of的效能的效能
- 比較Java Swing中三種註冊事件的方法Java事件
- 三種高階比較排序演算法排序演算法
- 幾種排序的比較排序
- 微課sql最佳化(16)、表的連線方法(5)-關於Merge Join(排序合連線)SQL排序
- html樣式表三種引入方式HTML
- Wordpress獨立站資料庫連線錯誤的三種解決方式資料庫
- 頂級三種服務網格比較 - cncf
- 幀動畫的多種實現方式與效能對比動畫
- 【前端詞典】4 種滾動吸頂實現方式的比較前端
- WPF應用中一種比較完美的許可權控制設計方式
- PHP 技術卡片 - 字串連線的幾種方式PHP字串
- 快速理解VirtualBox的四種網路連線方式
- Kubernetes 幾種儲存方式效能對比 (轉載)
- golang的比較好的一些超連結Golang
- Java Bean Copy元件的效能比較JavaBean元件
- 三種主流虛擬化技術的比較(Vmware/Citrix/Microsoft)ROS
- python 批量resize效能比較Python
- Vmvare三種網路連線方式:橋接模式、NAT模式和HostOnly模式橋接模式
- 關於Spring的JDBC連線mysql(與傳統jdbc比較)SpringJDBCMySql
- SpringBoot中關於 HikariPool、Druid及常用連線池的比較Spring BootUI
- 從全方位為你比較3種資料科學工具的比較:Python、R和SAS(附連結)資料科學Python
- Sqlserver執行計劃中表的四種連線方式SQLServer
- 2023版:深度比較幾種.NET Excel匯出庫的效能差異Excel