oracle Parallel技術
對於一個大的任務,一般的做法是利用一個程式,序列的執行,如果系統資源足夠,可以採用parallel技術,把一個大的任務分成若干個小的任務,同時啟用n個程式/執行緒,並行的處理這些小的任務,這些併發的程式稱為並行執行伺服器(parallel executeion ),這些併發程式由一個稱為併發協調程式的程式來管理。
啟用Parallel前的忠告:只有在需要處理一個很大的任務,如需要幾十分鐘,幾個小時的作業中,並且要有足夠的系統資源的情況下(這些資源包括cpu,記憶體,io),您才應該考慮使用parallel。否則,在一個多併發使用者下,系統本身資源負擔已經很大的情況下,啟用parallel,將會導致某一個會話試圖佔用了所有的資源,其他會話不得不去等待,從而導致系統系能反而下降的情況,一般情況下,oltp系統不要使用parallel,oltp系統中可以考慮去使用。
Parallel分類
l 並行查詢parallel query
l 並行dml parallel dml pdml
l 並行ddl parallel ddl pddl
l 並行查詢
並行查詢允許將一個 select語句劃分為多個較小的查詢,每個部分的查詢併發地執行,然後將各個部分的結果組合起來,提供最終的結果,多用於全表掃描,索引全掃描等,大表的掃描和連線、建立大的索引、分割槽索引掃描、大批次插入更新和刪除
啟用並行查詢
SQL> ALTER TABLE T1 PARALLEL;
告知,對T1啟用parallel查詢,但並行度要參照系統的資源負載狀況來確定。
利用hints提示,啟用並行,同時也可以告知明確的並行度,否則oracle自行決定啟用的並行度,這些提示只對該sql語句有效。
SQL> select /*+ parallel(t1 8) */ count(*) from t1;
SQL> select degree from user_tables table_name='T1';
DEGREE
--------------------
DEFAULT
並行度為Default,其值由下面2個引數決定
SQL> show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 2
parallel_threads_per_cpu integer 2
cpu_count表示cpu數
parallel_threads_per_cpu表示每個cpu允許的並行程式數
default情況下,並行數為cpu_count*parallel_threads_per_cpu
取消並行設定
SQL> alter table t1 noparallel;
SQL> select degree from user_tables where table_name='T1';
DEGREE
----------------------------------------
1
資料字典檢視
v$px_session
sid:各個並行會話的sid
qcsid:query coordinator sid,查詢協調器sid
l 並行dml
並行dml包括insert,update,delete,merge,在pdml期間,oracle可以使用多個並行執行伺服器來執行insert,update,delete,merge,多個會話同時執行,同時每個會話(併發程式)都有自己的undo段,都是獨立的一個事務,這些事務要麼由pdml協調器程式提交,要麼都rollback。
在一個有充足I/o頻寬的多cpu主機中,對於大規模的dml,速度可能會有很大的提升,尤其是在大型的資料倉儲環境中。
並行dml需要顯示的啟用
SQL> alter session enable parallel dml;
Disable並行dml
SQL> alter session disable parallel dml;
l 並行ddl
並行ddl提供了dba使用全部機器資源的能力,常用的pddl有
create table as select ……
create index
alter index rebuild
alter table move
alter table split
在這些sql語句後面加上parallel子句
例
SQL> alter table t1 move parallel;
Table altered
SQL> create index T1_IDX on T1 (OWNER, OBJECT_TYPE)
2 tablespace SYSTEM
3 parallel;
4 ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-736420/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle的Parallel 並行技術OracleParallel並行
- Parallel 並行技術Parallel並行
- oracle hint_no_parallel_no_parallel_indexOracleParallelIndex
- oracle hint_parallel_parallel_indexOracleParallelIndex
- Oracle Parallel ParametersOracleParallel
- Oracle's ParallelOracleParallel
- Oracle Parallel ExecutionOracleParallel
- Oracle Parallel DMLOracleParallel
- oracle expdp中的parallelOracleParallel
- oracle parallel並行_引數parameter_parallel_max_serverOracleParallel並行Server
- ORACLE技術文件Oracle
- Oracle技術網Oracle
- oracle hint_noappend_parallelOracleAPPParallel
- Oracle技術專題 - Oracle瑣Oracle
- oracle壓縮技術Oracle
- Oracle Stream Replication 技術Oracle
- 索引@oracle索引技術索引Oracle
- Oracle中文技術中心Oracle
- Oracle 中文技術網Oracle
- unix ,oracle技術區Oracle
- Oracle db file parallel write 和 log file parallel write 等待事件 說明OracleParallel事件
- Oracle's Parallel Execution Features(zt)OracleParallel
- 如何在 Oracle 技術網上發表技術文章Oracle
- Oracle實時同步技術Oracle
- Oracle流複製技術Oracle
- oracle flashback技術詳解Oracle
- 零散技術oracleOracle
- Oracle的Sharding技術Oracle
- oracle、sql技術部落格OracleSQL
- Oracle 分割槽(partition)技術Oracle
- Oracle技術基礎(一)Oracle
- Oracle技術部落格集合Oracle
- Oracle 技術探討3Oracle
- Oracle 技術探討2Oracle
- Oracle 技術探討1Oracle
- Oracle Flashback 技術 總結Oracle
- Oracle DBA技術培訓Oracle
- Oracle Flashback技術總結Oracle