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的並行Oracle並行
- Oracle中的並行Oracle並行
- Oracle並行操作——並行DML操作Oracle並行
- Oracle的並行操作[轉]Oracle並行
- Oracle並行操作——淺議使用並行的時機Oracle並行
- Oracle並行操作——從序列到並行Oracle並行
- Oracle並行FAQOracle並行
- 如何取得Oracle並行執行的traceOracle並行
- Oracle並行操作——並行查詢(Parallel Query)Oracle並行Parallel
- Oracle 中的並行系列(一)Oracle並行
- oracle並行的小細節Oracle並行
- oracle的Parallel 並行技術OracleParallel並行
- oracle表查詢的並行度Oracle並行
- 深入理解Oracle的並行操作Oracle並行
- 世界是並行的:平行計算的機遇與挑戰並行
- Oracle中的並行系列(二):你設定的並行真的生效了嗎?Oracle並行
- Oracle並行基礎一Oracle並行
- Oracle並行基礎二Oracle並行
- Oracle Redo 並行機制Oracle Redo並行
- Oracle並行新增主鍵Oracle並行
- oracle 之 控制oracle RAC 進行並行運算Oracle並行
- 世界是並行的:Tech-X消除GPU處理的門檻並行GPU
- oracle的鎖和並行機制薦Oracle並行
- Oracle“並行執行”——監控檢視Oracle並行
- oracle建立job並執行jobOracle
- 深入理解Oracle的並行操作(轉載)Oracle並行
- oracle 並行查詢時並行資源分配追蹤測試Oracle並行
- oracle11g 自動並行Oracle並行
- Oracle 11.2中控制並行的新引數Oracle並行
- 來自czmmiao深入理解Oracle的並行操作Oracle並行
- oracle 中並行度的設定需要考慮的因素Oracle並行
- 【Oracle】並行等待之PX Deq: Join ACKOracle並行
- Oracle 檢視sql開幾個並行OracleSQL並行
- oracle並行查詢一例薦Oracle並行
- oracle parallel並行及px檢視viewOracleParallel並行View
- 【Oracle】如何查詢並行是否起作用?Oracle並行
- 【Oracle】並行等待之PX Deq: Execution MsgOracle並行
- 【Oracle】並行等待之PX Deq: Execute ReplyOracle並行