メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

システムテーブルとビューのタイプ

システムテーブルには、STL テーブルと STV テーブルの 2 種類があります。

STL テーブルは、システムの履歴を提供するためにディスクに保持されたログから生成されます。STV テーブルは、現在のシステムデータのスナップショットを含む仮想テーブルです。これらのテーブルは一時的なメモリ内データに基づいていて、ディスクベースのログまたは通常のテーブルには保持されません。一時的な STV テーブルへの参照を含むシステムビューは、SVV ビューと呼ばれます。STL テーブルへの参照のみを含むビューは、SVL ビューと呼ばれます。

システムテーブルとビューは、通常のテーブルと同じ整合性モデルを使用しません。システムテーブルとビュー (特に STV テーブルと SVV ビュー) にクエリを実行するときは、これについて注意するのことが重要です。例えば、列 c1 を持つ通常のテーブル t1 がある場合、次のクエリは行を返さないと予想されます。

Copy
select * from t1 where c1 > (select max(c1) from t1)

ただし、システムテーブルに対する次のクエリは行を返すと予想されます。

Copy
select * from stv_exec_state where currenttime > (select max(currenttime) from stv_exec_state)

このクエリが行を返すと予想される理由は、currenttime が一時的で、クエリの 2 つの参照が評価時に同じ値を返さない可能性があるためです。

一方、次のクエリは行を返さないと予想されます。

Copy
select * from stv_exec_state where currenttime = (select max(currenttime) from stv_exec_state)