SELECT calgetstats()を実行すると、直前に実行したクエリの統計情報を取得することができます。
これにより、どれくらいメモリを使用したか、エクステントマップは使用されたか等の情報を確認できます。
実行例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
mysql> SELECT lo_orderkey,lo_orderpriority FROM lineorder WHERE lo_orderkey=1; +-------------+------------------+ | lo_orderkey | lo_orderpriority | +-------------+------------------+ | 1 | 2-HIGH | | 1 | 2-HIGH | | 1 | 2-HIGH | +-------------+------------------+ 3 rows in set (1.05 sec) mysql> SELECT calgetstats()\G *************************** 1. row *************************** calgetstats(): Query Stats: MaxMemPct-0; NumTempFiles-0; TempFileSpace-0B; ApproxPhyI/O-513; CacheI/O-8194; BlocksTouched-8194; PartitionBlocksEliminated-617870; MsgBytesIn-109KB; MsgBytesOut-2KB; Mode-Distributed 1 row in set (0.00 sec) |
※実行結果を見やすくするために改行しています。
取得できる情報は以下です。
項目名 | 内容 |
---|---|
MaxMemPct | クエリ時実行時にUMが使用したメモリのピーク時の値(パーセント)。 |
NumTempFiles | クエリ実行時に使用した一時ファイルの数。 |
TempFileSpace | クエリ実行時に使用した一時ファイルのサイズ。 |
ApproxPhyI/O | ディスクから読み取ったブロック数。対象データがすべてキャッシュされている場合、この値は0になります。 |
CacheI/O | メモリ(キャッシュ)から読み取ったブロック数。 |
BlocksTouched | メモリー内で処理されたブロック数。 |
PartitionBlocksEliminated | エクステントマップにより除外されたブロックアクセスの数。エクステントマップが使用されなかった場合、この値は0になります。 |
MsgBytesIn、MsgByteOut | クエリ実行時に送受信されたデータのバイト数(MB)。 |
参考情報
統計情報の活用例については以下をご確認ください。SELECT時にエクステントマップが使用されているか確認する