STV_TBL_PERM - Amazon Redshift

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

STV_TBL_PERM

STV_TBL_PERM テーブルには、現在のセッション用にユーザーが作成した一時テーブルを含め、Amazon Redshift の永続テーブルに関する情報が表示されます。STV_TBL_PERM には、すべてのデータベース内のすべてのテーブルに関する情報が含まれます。

このテーブルは、クエリの処理中にシステムが作成する一時的なデータベーステーブルの情報を表示する STV_TBL_TRANS とは異なります。

STV_TBL_PERM はスーパーユーザーのみに表示されます。詳細については、「Visibility of data in system tables and views」を参照してください。

テーブルの列

列名 データ型 説明
slice integer テーブルに割り当てられたノードスライス。
id integer テーブル ID。
name character(72) テーブル名。
rows bigint スライス内のデータ行数。
sorted_rows bigint ディスク上でソート済みの、スライス内の行数。この数が ROWS の数と異なる場合は、テーブルに vacuum を実行して行をソートし直してください。
temp integer テーブルが一時テーブルであるかどうか。0 = false、1 = true。
db_id integer テーブルが作成されたデータベースの ID。
insert_pristine integer 内部使用を目的とします。
delete_pristine integer 内部使用を目的とします。
backup integer テーブルがクラスタースナップショットに含まれているかどうかを示す値。0 = いいえ、1 = はい。詳細については、CREATE TABLE コマンドの BACKUP パラメータを参照してください。

サンプルクエリ

次のクエリは、個別のテーブルIDsと名前のリストを返します。

select distinct id, name from stv_tbl_perm order by name; id | name --------+------------------------- 100571 | category 100575 | date 100580 | event 100596 | listing 100003 | padb_config_harvest 100612 | sales ...

他のシステムテーブルはテーブル を使用するためIDs、どのテーブル ID が特定のテーブルに対応するかを知ることが非常に役立ちます。この例では、SELECT DISTINCT を使用して重複内容が削除されています (テーブルは複数のスライスに配分されています)。

VENUE テーブル内の各列で使用されているブロックの数を調べるには、以下のクエリを使用します:

select col, count(*) from stv_blocklist, stv_tbl_perm where stv_blocklist.tbl = stv_tbl_perm.id and stv_blocklist.slice = stv_tbl_perm.slice and stv_tbl_perm.name = 'venue' group by col order by col; col | count -----+------- 0 | 8 1 | 8 2 | 8 3 | 8 4 | 8 5 | 8 6 | 8 7 | 8 (8 rows)

使用に関する注意事項

ROW 列には、vacuum されていない (または SORT ONLY オプション付きで vacuum された) 削除済みの行の数が含まれます。このため、STV_TBL_PERM テーブル内の ROW 列の SUM は、特定のテーブルを直接クエリしたときの COUNT(*) 結果と一致しないことがあります。例えば、VENUE から 2 行が削除された場合、COUNT(*) の結果は 200 ですが、SUM (ROWS) の結果は 202 のままです:

delete from venue where venueid in (1,2); select count(*) from venue; count ------- 200 (1 row) select trim(name) tablename, sum(rows) from stv_tbl_perm where name='venue' group by name; tablename | sum -----------+----- venue | 202 (1 row)

STV_TBL_PERM のデータを同期するには、VENUE テーブルの完全バキュームを実行します。

vacuum venue; select trim(name) tablename, sum(rows) from stv_tbl_perm where name='venue' group by name; tablename | sum -----------+----- venue | 200 (1 row)