通常再執行 SQL 時, 都是單線單進程在處理 , Parallel 就是 Oracle 利用多線多進程對SQL分別做執行處理, 最後再結合最後的結果 ,使用了Parallel後都能大幅度的提高執行速度。
目前Oracle 提供 Parallel 的操作類型如下:
1.查詢
2.DDL
3.DML
Parallel 最好使用於系統有足夠的資源時,不然可能就會影響到DB內其他用戶的效能
Hint 語法為 /*+ parallel (table_name , cash_number) */
Update 範例
code
|
update /*+ parallel (test_dml_parallel,4) */ test_dml_parallel set object_id='20'; |
執行時間:116 secs
看到執行計畫發現Update 並沒有Parallel,Oracle只有在搜尋並行。
這時執行
SQL> ALTER SESSION ENABLE PARALLEL DML;
code
|
update /*+ parallel (test_dml_parallel,4) */ test_dml_parallel set object_id='20'; |
執行時間:56 secs
執行 ALTER SESSION ENABLE PARALLEL DML 後 ,Update真正使用Parallel,如果不執行此語法,也只是Select Parallel 而已。
Insert 示範
執行
SQL> ALTER SESSION ENABLE PARALLEL DML;
code
|
insert /*+ parallel (test_dml_parallel,4) */ into test_dml_parallel select * from test_dml_parallel ; |
通過 Insert 的執行計畫看到,Insert 的 Parallel 是透過 /*+APPEND*/ 插入,假如以一般常規方式插入還需加上 /*+NOAPPEND*/
啟用 session 並行
ALTER SESSION ENABLE PARALLEL DML;
關閉 session 並行
ALTER SESSION DISABLE PARALLEL DML;
沒有留言:
張貼留言