L
o
a
d
i
n
g
.
.
.

ホーム

お知らせ

製品・ソリューション

サービス

導入事例・パートナー

EXEM Academy・ブログ

会社情報

採用情報

2018.03.22

Parallel query

目次



基本情報

Parallel Queryは同時接続、同時使用が多いOLTP環境ではなく、配置やDW環境では、クエリの処理性能を向上させる目的で使用されます。
Parallel QueryはParallel Hintを使用したり、オブジェクトの生成時にdegreeを指定することで使用し、Full Table Scan、Index Fast Full Scan、Hash Join、partition tableのLocal Index Scanなどの場合に使用することができます。


オブジェクトの作成時のDegree指定

Create table Test
Parallel (Degree 5)
(id number(2), name varchar2(20));


Parallel Hint使用

Select /*+ Parallel(test,4) */ *
From test;


分析事例


不適切なDegree設定によるParallel Query実行過多

テーブルの作成時にParallel DegreeとInstances値がdefaultに設定されており、インデックスの使用が可能なSQLにもかかわらずfull table scanが発生しParallelで実行されて、パフォーマンスの低下が発生しました。DWやバッチプログラムで大容量の処理速度を向上させるためにParallel Queryを使用するか、OLTP環境では、CPU使用率とActive Sessionの数を増加させるので、使用することは、パフォーマンスの低下を誘発するのです。

5_1_1

上記のようにActive Sessionが急増している区間が存在します。

5_1_2

PX DEQで始まる待機イベントはParallel関連なので、Parallelで同時にSQL文が実行時され、Slaveプロセスが起動し、Active Sessionが増加することを類推することができます。セッションが実行しているSQL文は、同じSQLでParallel Hintが明示されていないにもかかわらず、Parallelで行われました。(確認した結果、SQLステートメントが照会しているTableのDegreeが設定されていました。)

alter table TEST parallel ( degree 1 );

上記のように、tableのParallel degreeを1に変更してParallel Queryの実行過多を解決します。


PHP Code Snippets Powered By : XYZScripts.com