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はセッションレベルで意識して使うべき。と思う。
Recent comments
5 days 23 hours ago
1 week 16 hours ago
1 week 20 hours ago
1 week 21 hours ago
6 weeks 1 day ago
6 weeks 1 day ago
7 weeks 2 days ago
11 weeks 2 days ago
17 weeks 14 hours ago
19 weeks 5 days ago