Search

Top 60 Oracle Blogs

Recent comments

Parallel Query 10046 trace

前回の続き、

Parallel Query Trace

USE_CONCATヒントを入れないと、PX関連のeventがwait eventとなっていた:

select A.* from lineitem A, lineitem_org B, lineitem_comp C
where A.l_orderkey = B.l_orderkey
and A.l_orderkey = C.l_orderkey
and (
(A.l_receiptdate < B.l_commitdate and A.l_comment like '%obata%')
or (A.l_receiptdate > B.l_commitdate and B.l_comment like '%tanaka%')
or (A.l_receiptdate <> B.l_commitdate and A.l_comment like '%ichiro%')
or (A.l_receiptdate > C.l_commitdate and C.l_comment like '%tanaka%')
or (A.l_receiptdate <> C.l_commitdate and C.l_comment like '%ichiro%')
)

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 3.21 222.80 57423 57838 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 3.21 222.80 57423 57838 0 0
...
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
PX Deq: Execution Msg 67 0.01 0.03
Disk file operations I/O 1 0.00 0.00
direct path read 506 0.00 1.16
PX Deq Credit: need buffer 253 0.06 0.64
PX Deq Credit: send blkd 8375 0.25 217.64
PX qref latch 5 0.01 0.02
asynch descriptor resize 43 0.00 0.00


PX Deq Credit: send blkd待機イベント

この待機Eventを減らすための定石はParallel度を上げる。
しかし、Parallel度を上げると:

CPUは100% Coreが増える。
そこで、サービスのParallel度を下げると、
PX Deq Credit: send blkd待機イベントは更に増える。

前回の結果一覧表からも分かるとおり、3つのテーブルで1.8GB程度。
それでもDOP=8で3分以上CPU 100%が続く影響は大きい。

Ad-Hocサービスのためには、避けて通れない、重要な監視イベントだ。