View a markdown version of this page

Aurora DSQL のシステムテーブルとコマンド - Amazon Aurora DSQL

Aurora DSQL のシステムテーブルとコマンド

Aurora DSQL でサポートされているシステムテーブルやカタログ、およびシステムに関する情報 (バージョンなど) を取得するための便利なクエリについては、以下のセクションを参照してください。

システムテーブル

Aurora DSQL は PostgreSQL と互換性があるため、PostgreSQL の多くのシステムカタログテーブルビューが Aurora DSQL にも存在します。

重要な PostgreSQL カタログテーブルとビュー

次の表は、Aurora DSQL で使用できる最も一般的なテーブルとビューを示しています。

名前 説明

pg_namespace

すべてのスキーマに関する情報

pg_tables

すべてのテーブルに関する情報

pg_attribute

すべての属性に関する情報

pg_views

(事前) 定義ビューに関する情報

pg_class

すべてのテーブル、列、インデックス、および同様のオブジェクトに関する説明

pg_stats

プランナー統計の表示

pg_user

ユーザーに関する情報

pg_roles

ユーザーとグループに関する情報

pg_indexes

すべてのインデックスのリスト

pg_constraint

テーブルの制約のリスト

サポートされているカタログテーブルとサポートされていないカタログテーブル

次の表は、Aurora DSQL でサポートされているテーブルとサポートされていないテーブルを示しています。

名前 Aurora DSQL に適用可能

pg_aggregate

いいえ

pg_am

はい

pg_amop

いいえ

pg_amproc

なし

pg_attrdef

はい

pg_attribute

はい

pg_authid

なし (pg_roles を使用)

pg_auth_members

可能

pg_cast

はい

pg_class

はい

pg_collation

はい

pg_constraint

はい

pg_conversion

いいえ

pg_database

なし

pg_db_role_setting

はい

pg_default_acl

はい

pg_depend

はい

pg_description

はい

pg_enum

いいえ

pg_event_trigger

いいえ

pg_extension

いいえ

pg_foreign_data_wrapper

いいえ

pg_foreign_server

いいえ

pg_foreign_table

なし

pg_index

はい

pg_inherits

はい

pg_init_privs

いいえ

pg_language

いいえ

pg_largeobject

なし

pg_largeobject_metadata

はい

pg_namespace

はい

pg_opclass

いいえ

pg_operator

はい

pg_opfamily

いいえ

pg_parameter_acl

はい

pg_partitioned_table

いいえ

pg_policy

いいえ

pg_proc

いいえ

pg_publication

いいえ

pg_publication_namespace

いいえ

pg_publication_rel

なし

pg_range

はい

pg_replication_origin

いいえ

pg_rewrite

いいえ

pg_seclabel

いいえ

pg_sequence

なし

pg_shdepend

はい

pg_shdescription

はい

pg_shseclabel

いいえ

pg_statistic

はい

pg_statistic_ext

いいえ

pg_statistic_ext_data

いいえ

pg_subscription

いいえ

pg_subscription_rel

いいえ

pg_tablespace

いいえ

pg_transform

いいえ

pg_trigger

なし

pg_ts_config

はい

pg_ts_config_map

はい

pg_ts_dict

はい

pg_ts_parser

はい

pg_ts_template

はい

pg_type

はい

pg_user_mapping

いいえ

サポートされているシステムビューとサポートされていないシステムビュー

次の表は、Aurora DSQL でサポートされているビューとサポートされていないビューを示しています。

名前 Aurora DSQL に適用可能

pg_available_extensions

いいえ

pg_available_extension_versions

なし

pg_backend_memory_contexts

はい

pg_config

いいえ

pg_cursors

いいえ

pg_file_settings

なし

pg_group

はい

pg_hba_file_rules

いいえ

pg_ident_file_mappings

なし

pg_indexes

はい

pg_locks

いいえ

pg_matviews

いいえ

pg_policies

いいえ

pg_prepared_statements

いいえ

pg_prepared_xacts

いいえ

pg_publication_tables

いいえ

pg_replication_origin_status

いいえ

pg_replication_slots

なし

pg_roles

はい

pg_rules

いいえ

pg_seclabels

いいえ

pg_sequences

なし

pg_settings

はい

pg_shadow

はい

pg_shmem_allocations

はい

pg_stats

はい

pg_stats_ext

いいえ

pg_stats_ext_exprs

なし

pg_tables

はい

pg_timezone_abbrevs

はい

pg_timezone_names

はい

pg_user

はい

pg_user_mappings

いいえ

pg_views

はい

pg_stat_activity

いいえ

pg_stat_replication

いいえ

pg_stat_replication_slots

いいえ

pg_stat_wal_receiver

いいえ

pg_stat_recovery_prefetch

いいえ

pg_stat_subscription

いいえ

pg_stat_subscription_stats

なし

pg_stat_ssl

はい

pg_stat_gssapi

いいえ

pg_stat_archiver

いいえ

pg_stat_io

いいえ

pg_stat_bgwriter

いいえ

pg_stat_wal

いいえ

pg_stat_database

いいえ

pg_stat_database_conflicts

いいえ

pg_stat_all_tables

いいえ

pg_stat_all_indexes

いいえ

pg_statio_all_tables

いいえ

pg_statio_all_indexes

いいえ

pg_statio_all_sequences

いいえ

pg_stat_slru

いいえ

pg_statio_user_tables

いいえ

pg_statio_user_sequences

いいえ

pg_stat_user_functions

いいえ

pg_stat_user_indexes

いいえ

pg_stat_progress_analyze

いいえ

pg_stat_progress_basebackup

いいえ

pg_stat_progress_cluster

いいえ

pg_stat_progress_create_index

いいえ

pg_stat_progress_vacuum

いいえ

pg_stat_sys_indexes

いいえ

pg_stat_sys_tables

いいえ

pg_stat_xact_all_tables

いいえ

pg_stat_xact_sys_tables

いいえ

pg_stat_xact_user_functions

いいえ

pg_stat_xact_user_tables

いいえ

pg_statio_sys_indexes

いいえ

pg_statio_sys_sequences

いいえ

pg_statio_sys_tables

いいえ

pg_statio_user_indexes

いいえ

sys.jobs ビュー

sys.jobs は、非同期ジョブに関するステータス情報を提供します。例えば、非同期インデックスを作成すると、Aurora DSQL は job_uuid を返します。この job_uuidsys.jobs を使って、ジョブのステータスを検索できます。

SELECT * FROM sys.jobs;

Aurora DSQL は、次のようなレスポンスを返します。

job_id | status | details | job_type | class_id | object_id | object_name | start_time | update_time ----------------------------+-----------+---------+-------------+----------+-----------+-------------------+------------------------+------------------------ wqhu6ewifze5xitg3umt24h5ua | completed | | INDEX_BUILD | 1259 | 26433 | public.nt2_c1_idx | 2025-09-25 22:07:31+00 | 2025-09-25 22:07:46+00 kkngzf33dndl3daacxehpx5eba | completed | | ANALYZE | 1259 | 26419 | public.nt | 2025-09-25 21:57:05+00 | 2025-09-25 21:57:27+00 fyopxjb6ovdn7po6lrkj63cyea | completed | | DROP | 1259 | 26422 | | 2025-09-25 22:05:57+00 | 2025-09-25 22:06:03+00

次の表では、sys.jobs ビューの列について説明します。

sys.jobs ビューの列
説明
job_id text ジョブを表す base-32 の UUID。
status text ジョブの現在のステータス。指定できる値は submittedprocessingcompletedfailed です。詳細については、「sys.jobs ステータスの値」を参照してください。
details text ジョブに関連する詳細。ジョブが失敗した場合、詳細な理由が表示されます。
job_type text 非同期ジョブのタイプ。指定できる値は次のとおりです。INDEX_BUILD - 非同期インデックスビルド。ANALYZE - システムによって送信された自動分析ジョブ。DROP - DROP TABLE オペレーションまたは DROP INDEX オペレーションの後に物理データを削除します。
class_id oid オブジェクトを含むカタログテーブルの OID。
object_id oid オブジェクトの OID。
object_name text オブジェクトの完全修飾名。DROP ジョブは、既に削除されたオブジェクトを参照できません。参照したオブジェクトが既に削除されている場合、object_name は NULL である可能性があります。
start_time timestamp with time zone ジョブが送信されたタイムスタンプ。
update_time timestamp with time zone ジョブの行が最後に更新されたタイムスタンプ。
sys.jobs ステータスの値
ステータス 説明
submitted タスクは送信されましたが、Aurora DSQL はまだタスクの処理を開始していません。
processing Aurora DSQL はタスクを処理しています。
failed タスクが失敗しました。詳細については、details 列を参照してください。
completed Aurora DSQL はタスクを正常に完了しました。

sys.iam_pg_role_mappings ビュー

ビュー sys.iam_pg_role_mappings には、IAM ユーザーに付与されたアクセス許可に関する情報が表示されます。例えば、DQSLDBConnect が Aurora DSQL に管理者以外のユーザーへのアクセスを許可する IAM ロールで、testuser という名前のユーザーに DQSLDBConnect ロールと対応するアクセス許可が付与されている場合、sys.iam_pg_role_mappings ビューをクエリして、どのユーザーにどのアクセス許可が付与されているかを確認できます。

SELECT * FROM sys.iam_pg_role_mappings;

役立つシステムメタデータクエリ

これらのクエリを使用して、テーブルのフルスキャンなどの高コストのオペレーションを実行せずに、テーブル統計とシステムメタデータを取得します。

テーブルの推定行数を取得する

テーブルのフルスキャンを実行せずにテーブル内の行数の概算数を取得するには、次のクエリを使用します。

SELECT reltuples FROM pg_class WHERE relname = 'table_name';

このコマンドにより、以下のような出力が返されます。

  reltuples
--------------
 9.993836e+08

このアプローチは、Aurora DSQL の大きなテーブルに対する SELECT COUNT(*) よりも効率的です。

現在の Aurora DSQL メジャーバージョンを取得する

Aurora DSQL クラスターの現在のメジャーバージョンを取得するには、次のクエリを使用します。

SELECT * FROM sys.dsql_major_version();

このコマンドにより、以下のような出力が返されます。

 dsql_major_version
--------------------
                  1

これにより、Aurora DSQL で SQL 接続がオンになっているメジャーバージョンが返されます。

現在の PostgreSQL バージョンを取得する

Aurora DSQL クラスターの現在の PostgreSQL バージョンを取得するには、次のクエリを実行します。

SHOW server_version;

このコマンドにより、以下のような出力が返されます。

 server_version
----------------
 16.13

これにより、Aurora DSQL で SQL 接続がオンになっている PostgreSQL バージョンが返されます。

ANALYZE コマンド

ANALYZE コマンドは、データベース内のテーブルの内容に関する統計を収集し、結果を pg_stats システムビューに保存します。その後、クエリプランナーはこれらの統計を使用して、最も効率的なクエリの実行プランを決定します。

Aurora DSQL では、明示的なトランザクション内で ANALYZE コマンドを実行することはできません。ANALYZE はデータベーストランザクションのタイムアウト制限の対象ではありません。

手動介入の必要性を減らし、統計を一貫して最新の状態に保つために、Aurora DSQL はバックグラウンド処理として ANALYZE を自動的に実行します。このバックグラウンドジョブは、テーブルで観測された変化率に基づいて自動的にトリガーされます。これは、前回の分析以降に挿入、更新、または削除された行 (タプル) の数にリンクされます。

ANALYZE はバックグラウンドで非同期的に実行され、そのアクティビティは次のクエリを使用してシステムビュー sys.jobs でモニタリングできます。

SELECT * FROM sys.jobs WHERE job_type = 'ANALYZE';

主な考慮事項

注記

ANALYZE ジョブは、Aurora DSQL の他の非同期ジョブと同様に請求されます。テーブルを変更すると、自動バックグラウンド統計収集ジョブが間接的にトリガーされ、関連するシステムレベルのアクティビティが原因で計測料金が発生する可能性があります。

バックグラウンド ANALYZE ジョブは自動的にトリガーされ、手動 ANALYZE で収集するタイプの統計と同じものを収集し、デフォルトでユーザーテーブルに適用します。システムテーブルとカタログテーブルは、この自動プロセスから除外されます。