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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【SQL 效能優化】表的三種連線方式SQL優化
- 【SQL 效能最佳化】表的三種連線方式SQL
- Oracle的三種表連線方式Oracle
- 3種主要表連線方式對比
- JavaScript 字串連線效能比較JavaScript字串
- 不同的連線方式效能對比!
- 多表連線的三種方式詳解 hash join、merge join、 nested loopOOP
- IIS下PHP的三種配置方式比較PHP
- 三種表連線方式 最佳化總結
- 幾種表的連線方式(SQL)SQL
- Spring IOC三種注入方式比較Spring
- 表的三種連線方式官方解釋及個人理解
- 【SQL】表連線七種方式SQL
- J2ME中兩種Http連線方式Post&Get的比較HTTP
- 表的連線方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN(轉)OOP
- LVS:三種負載均衡方式比較+另三種負載均衡方式負載
- LVS 三種負載均衡方式比較負載
- Linux網路連線的三種方式Linux
- 分享一種比較萬能的居中方式
- 各種表連線方式對比分析
- 資料泵不同工作方式效能比較(三)
- vmware中三種網路連線方式
- LVS-三種負載均衡方式比較負載
- 七種WebSocket框架的效能比較Web框架
- COPA 獲利分析的兩種方式比較
- JS嵌入html的方式及各種方式的比較JSHTML
- 資料泵不同工作方式效能比較(一)
- Javascript中的幾種繼承方式比較JavaScript繼承
- java中四種操作xml方式的比較JavaXML
- ORACLE 表連線方式Oracle
- oracle表連線方式Oracle
- 字串連線哪一種方式最高效字串
- C#例項化物件的三種方式及效能對比C#物件
- XML資料讀取方式效能比較XML
- 使用者連線到oracle的三種驗證方式Oracle
- Oracle表連線操作——Merge Sort Join(合併排序連線)Oracle排序
- pl/sql中比較好玩的一種連結資料庫方式SQL資料庫
- 資料庫表的連線方式及用法(一)資料庫