web-dev-qa-db-ja.com

すべてのインデックスとそのタイプ(BTREE、BRIN、HASHなど...)をリストする方法

Postgresql 9.6.4でシステムカタログを照会しています

テーブルとそのインデックスの結果セットを取得するのは簡単ですが、欠けているのはインデックスタイプ(BTREE、BRINなど)です。システムカタログのどこにもインデックスのタイプが見つかりません。

カタログにクエリを実行して、インデックスとそのタイプのリストを取得する方法

4
maxTrialfire

Postgresqlのインデックスのタイプは pg_amカタログテーブル。 したがって、すべてのテーブルとそのインデックスのリストを、インデックスタイプ(またはPostgreSQLが呼び出すアクセス方法( "am"))とともに取得するには、次のコマンドを実行します。

SELECT tab.relname, cls.relname, am.amname
FROM pg_index idx 
JOIN pg_class cls ON cls.oid=idx.indexrelid
JOIN pg_class tab ON tab.oid=idx.indrelid
JOIN pg_am am ON am.oid=cls.relam;
7
maxTrialfire