oracle的並行世界
參考文章 How to Enable and Disable Parallelism (文件 ID 2394025.1)
啟用並行
在資料庫級別
設定 PARALLEL_MAX_SERVERS = N。其中 N 是預設值,可以根據以下推薦的公式得出:
預設值 = PARALLEL_THREADS_PER_CPU * CPU_COUNT * concurrent_parallel_users * 5
在例項中,以預設並行度執行的 concurrent_parallel_users 的數量取決於例項的記憶體初始化引數設定。例如,如果設定了 MEMORY_TARGET 或 SGA_TARGET 初始化引數,則 concurrent_parallel_users = 4。如果未設定 MEMORY_TARGET 或 SGA_TARGET,則檢查 PGA_AGGREGATE_TARGET。如果為 PGA_AGGREGATE_TARGET 設定了值,則 concurrent_parallel_users = 2。如果沒有為 PGA_AGGREGATE_TARGET 設定值,則 concurrent_parallel_users = 1。
在會話級別
在會話級別為 DML、DDL 和 QUERY 操作啟用並行,可以使用以下命令:
ALTER SESSION ENABLE PARALLEL DML;
ALTER SESSION ENABLE PARALLEL DDL;
ALTER SESSION ENABLE PARALLEL QUERY;
ALTER SESSION FORCE PARALLEL [DML|DDL|QUERY] PARALLEL <DEGREE>; -- Degree 的值可以是 2,4,8 或者 16 等等...
ALTER SESSION FORCE PARALLEL [DML|DDL|QUERY];
在語句級別
Parallel Hint 可以像下面這樣使用:
/*+ PARALLEL */ - 如果在物件級別沒有設定 DOP,則會使用預設 DOP
(或者) /*+ PARALLEL(4) */
(或者) /*+ PARALLEL(emp, 4) */
12c 中的新 Hint:ENABLE_PARALLEL_DML。這適用於 12c 或更高版本。
/*+ enable_parallel_dml parallel(x) */ -- (x)是可選的,其中 x 是所請求的並行度
例如:insert /*+ parallel(8) enable_parallel_dml */ into t1 select * from t1_1;
注意:
Hint “enable_parallel_dml”可以在/*+ */分隔符中以任何順序出現。
在物件級別
在物件級別啟用並行:
ALTER TABLE <TABLE_NAME> PARALLEL <n>;
ALTER INDEX <INDEX_NAME> PARALLEL <n>;
有關物件級別 DOP 的更多詳細資訊,請參閱 Document 1549214.1
注意:在大多數情況下,表和索引的 DOP 應該匹配。為索引和表設定不同的值可能會產生意外的計劃並影響效能。
取消並行
在資料庫級別
要在資料庫級別禁用並行,您必須設定:
PARALLEL_MIN_SERVERS = 0
PARALLEL_MAX_SERVERS = 0
在會話級別
在會話級別為 DML、DDL 和 QUERY 操作禁用並行,使用下面的命令:
ALTER SESSION DISABLE PARALLEL DML;
ALTER SESSION DISABLE PARALLEL DDL;
ALTER SESSION DISABLE PARALLEL QUERY;
在物件級別
禁用物件級別的並行:
ALTER TABLE <TABLE_NAME> PARALLEL 1;
ALTER INDEX <INDEX_NAME> PARALLEL 1;
注意:所有具有並行 hint 的語句仍將並行執行,因為語句級的 PARALLEL hint 優先於會話和物件級別
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26964624/viewspace-2646904/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle並行FAQOracle並行
- Oracle 中的並行系列(一)Oracle並行
- oracle表查詢的並行度Oracle並行
- Oracle中的並行系列(二):你設定的並行真的生效了嗎?Oracle並行
- Oracle“並行執行”——監控檢視Oracle並行
- oracle 並行查詢時並行資源分配追蹤測試Oracle並行
- 走進Oracle世界Oracle
- ORACLE並行相關的引數Oracle並行
- 不為人知的技術--Oracle並行非同步執行儲存過程Oracle並行非同步儲存過程
- 【效能】Oracle表並行對邏輯遷移後查詢效能的影響Oracle並行
- 從Oracle的資料庫世界路過APOracle資料庫
- Python的 併發、並行Python並行
- LLM並行訓練5-MoE並行並行
- Oracle之多行記錄變一行記錄,行變列,並排序(wmsys.wm_concat)Oracle排序
- 如何進入開源世界並打造自己的明星 Project?Project
- JAVA中的執行緒世界Java執行緒
- LLM並行訓練1-流水線並行並行
- LLM並行訓練3-資料並行並行
- LLM並行訓練2-張量並行並行
- 強大的Stream並行流並行
- Java 中的並行處理Java並行
- [Java併發]執行緒的並行等待Java執行緒並行
- C#中的並行處理、並行查詢的方法你用對了嗎?C#並行
- LLM並行訓練7-混合並行總結並行
- 2020-12-19 docker 部署oracle 並plsq遠端連結oracleDockerOracle
- C#並行,多執行緒程式設計並行集合和PLINQ的例項講解並行執行緒程式設計
- 12C開始oracle實現了SCALABLE LGWR多程式並行寫redo logOracle並行
- 執行緒 並行 與 併發 的區別執行緒並行
- JDK8中的並行流JDK並行
- 非同步和並行的區別非同步並行
- Java 8並行流的效能陷阱Java並行
- ArcGIS Desktop 工具的並行處理並行
- systemverilog中for/foreach並行執行並行
- WRF WPS多核並行執行並行
- oracle列轉行Oracle
- [ORACLE] SQL執行OracleSQL
- 從偽並行的 Python 多執行緒說起並行Python執行緒
- 透過一個示例形象地理解C# async await 非並行非同步、並行非同步、並行非同步的併發量控制C#AI並行非同步