STV_TBL_TRANS
現在メモリ内にある一時データベーステーブルに関する情報を取得するには、STV_TBL_TRANS テーブルを使用します。
一時テーブルとは通常、クエリ実行中に中間結果として使用される一時行セットです。STV_TBL_PERM には恒久的なデータベーステーブルに関する情報が含まれるという点で、STV_TBL_TRANS は STV_TBL_PERM と異なります。
STV_TBL_TRANS はスーパーユーザーのみに表示されます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
slice | integer | テーブルに割り当てられたノードスライス。 |
id | integer | テーブル ID。 |
rows | bigint | テーブル内のデータ行数。 |
size | bigint | テーブルに割り当てられたバイト数。 |
query_id | bigint | クエリ ID。 |
ref_cnt | integer | 参照の数。 |
from_suspended | integer | このテーブルが、現在停止されているクエリの実行中に作成されたかどうかを示します。 |
prep_swap | integer | この一時テーブルが、必要に応じてディスクにスワップできるように準備されているかどうかを示します。(スワップは、メモリが少ない場合のみ発生します。) |
サンプルクエリ
クエリ ID が 90 であるクエリの一時テーブル情報を見るには、以下のコマンドを入力します。
select slice, id, rows, size, query_id, ref_cnt from stv_tbl_trans where query_id = 90;
このクエリは、以下の出力例のように、クエリ 90 の一時テーブル情報を返します。
slice | id | rows | size | query_ | ref_ | from_ | prep_ | | | | id | cnt | suspended | swap ------+----+------+------+--------+------+-----------+------- 1013 | 95 | 0 | 0 | 90 | 4 | 0 | 0 7 | 96 | 0 | 0 | 90 | 4 | 0 | 0 10 | 96 | 0 | 0 | 90 | 4 | 0 | 0 17 | 96 | 0 | 0 | 90 | 4 | 0 | 0 14 | 96 | 0 | 0 | 90 | 4 | 0 | 0 3 | 96 | 0 | 0 | 90 | 4 | 0 | 0 1013 | 99 | 0 | 0 | 90 | 4 | 0 | 0 9 | 96 | 0 | 0 | 90 | 4 | 0 | 0 5 | 96 | 0 | 0 | 90 | 4 | 0 | 0 19 | 96 | 0 | 0 | 90 | 4 | 0 | 0 2 | 96 | 0 | 0 | 90 | 4 | 0 | 0 1013 | 98 | 0 | 0 | 90 | 4 | 0 | 0 13 | 96 | 0 | 0 | 90 | 4 | 0 | 0 1 | 96 | 0 | 0 | 90 | 4 | 0 | 0 1013 | 96 | 0 | 0 | 90 | 4 | 0 | 0 6 | 96 | 0 | 0 | 90 | 4 | 0 | 0 11 | 96 | 0 | 0 | 90 | 4 | 0 | 0 15 | 96 | 0 | 0 | 90 | 4 | 0 | 0 18 | 96 | 0 | 0 | 90 | 4 | 0 | 0
この例では、クエリデータがテーブル 95、96、および 98 に関係していることが分かります。このテーブルにはゼロバイトが割り当てられているため、このクエリはメモリ内で実行可能です。