Search

OakieTags

Who's online

There are currently 0 users and 36 guests online.

Recent comments

Affiliations

In-Memory Parallel QueryのテストをするとCPUビジーになるけど、、、

In-Memory Parallel Queryセッション数 のときのリソースモニターを見ると、セッション数を増やしていくとCPUは100%ビジーとなった。
でもIn-Memory PQはCPU dpend? ではParallel Queryの方が実はCPU合計時間が多いと書いた。
Parallel Queryはdirect path readのビジーによりCPUが回らないだけで、合計のCPU時間はIn-Memory PQより多い。

Heavy SQLの比較 で取得したTPC-HのTop5 SQLのCPU時間を比較してみる。
比較は、前回のV_$mystatからの統計情報を使用した。値はCPU時間(カッコ内)はDB時間

SQL# In-Memory PQ Paralle Query
1 414 (794) 433 (1379)
2 418 (943) 449 (1347)
3 140 (357) 166 (837)
4 548 (1160) 566 (1432)
5 219 (508) 246 (855)

確かに、Parallel Queryの方がCPU時間が多い。
でも、これは全てがbuffer cache上に収まっているからだ。ということが前回のテストで分かった。
buffer cacheにデータがないと:

SQL# In-Memory PQ Paralle Query
1 553 (1488) 433 (1379)
2 514 (1793) 449 (1347)
3 247 (1113) 166 (837)
4 567 (1790) 566 (1432)
5 307 (1195) 246 (855)

>「buffer cacheにデータがないと」... In-Memory PQは実行できない。上記との整合性のためIn-Memory PQと記した。
In-Memory Parallel Queryはbuffer cacheにscattered readでデータを読み込むのでCPUも多く使う。
だからIn-Memory Parallel Queryはセッションレベルで意識して使うべき。と思う。