■ はじめに
https://dk521123.hatenablog.com/entry/2023/03/02/230435
で、以前、テーブル情報を取得したが 今回は、PostgreSQLの統計情報系についてまとめてみる
目次
【1】pg_catalog スキーマ 1)pg_statio_all_tables 2)pg_description 【2】information_schema スキーマ
【1】pg_catalog スキーマ
https://www.postgresql.jp/document/14/html/catalogs.html
システムカタログとは、 リレーショナルデータベース管理システムがテーブルや列の情報などの スキーマメタデータと内部的な情報を格納する場所です。
1)pg_statio_all_tables
* 現在のデータベース内のテーブルごとに1行の形で、 特定のテーブルに対するI/Oに関する統計情報
https://www.postgresql.jp/document/10/html/monitoring-stats.html
詳細内容
https://www.postgresql.jp/document/10/html/monitoring-stats.html#PG-STATIO-ALL-TABLES-VIEW
2)pg_description
* 各データベースオブジェクトに対して付けられたオプションの補足説明(コメント)を格納
https://www.postgresql.jp/docs/9.4/catalog-pg-description.html
【2】information_schema スキーマ
* PostgreSQL/Redshiftだけでなく、他のDBでも使えるらしい
https://www.postgresql.jp/document/8.1/html/information-schema.html
例
https://postgresweb.com/system-catalog-and-information-schema
-- スキーマ一覧 select * from information_schema.schemata; -- テーブル一覧 select * from information_schema.tables; -- ビュー一覧 select * from information_schema.views; -- 項目一覧 select * from information_schema.columns; -- トリガー一覧 select * from information_schema.triggers;
【3】サンプル
例1:テーブルおよびコメント一覧表示
SELECT c.table_schema, c.table_name, c.column_name, d.description FROM pg_catalog.pg_statio_all_tables AS st INNER JOIN pg_catalog.pg_description AS d ON d.objoid = st.relid RIGHT JOIN information_schema.columns AS c ON d.objsubid = c.ordinal_position AND c.table_schema = st.schemaname AND c.table_name = st.relname LIMIT 10 ;
関連記事
PostgreSQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2014/03/08/000100
PostgreSQL ~ テーブル情報を取得するには ~
https://dk521123.hatenablog.com/entry/2023/03/02/230435
Amazon Redshift ~ システムビュー ~
https://dk521123.hatenablog.com/entry/2023/03/06/184928
dbt ~ Hooks ~
https://dk521123.hatenablog.com/entry/2023/12/11/040122