パラレル実行
Oracleの持つ自動並列化機能
例)インデックスの作成
●通常
CREATE INDEX 索引名 ON 表名(列名);
●パラレル実行
CREATE INDEX 索引名 ON 表名(列名) PARALLEL [並列度];
●パラレル実行での索引の再構成
ALTER INDEX 索引名 REBUILD PARALLEL [並列度] ;
- 並列度を指定しない場合、CPU数から自動的に算出される。
DMLでのパラレル処理
- SELECT、INSERT、UPDATE、DELETE、MERGEも並列化できる。
- パラレル化の設定をしても使われるとは限らない。
- 処理レコード数が少ないSQLなどでは使われない。
SELECT文とパラレル実行
- PARALLELヒント句
SELECT /*+ PARALLEL(表名, 並列度) */ ・・・; - ALTER SESSIONによるパラレル化
ALTER SESSION FORCE PARALLEL QUERY [PARALLEL並列度]; - 表や索引のPARALLEL属性によるパラレル化
ALTER TABLE 表名 PARALLEL [並列度];
ALTER INDEX 索引名 PARALLEL [並列度];
DML文とパラレル実行
- DMLパラレル化
ALTER SESSION FORCE PARALLEL DML [PARALLEL並列度];
パラレル実行のアーキテクチャ
- パラレル処理は、パラレルスレーブプロセスが担う。ora_p+数字
- Oracleサーバプロセスは、パラレルスレーブプロセスを統括するコーディネータとして機能する。