かなめのロジック

フリーSEの雑記ブログ。ORACLEやPostgreSQL、情報セキュリティ、金融について主に書いています。

インデックスの情報取得(psqlのメタコマンド使用)

time 2018/05/26

インデックスの情報取得(psqlのメタコマンド使用)

テーブルに張られているインデックスの一覧や詳細の情報を、psqlのメタコマンドを使って取得する方法をまとめました。

sponsored link

インデックスの一覧情報

¥di

インデックスの一覧情報の取得には、psqlに接続し、メタコマンドのひとつである¥diを使用します。

簡単に取得できる方法ですが、そのインデックスが主キー制約設定時に作成されているインデックスなのかどうかなど細かい情報がでません。
そのためそれらの情報が欲しい場合は、後述の詳細情報を取得するか、pg_index等のシステムカタログを検索する必要があります。

¥diコマンドは、正規表現を使用して、文字列の一部が一致するインデックスだけを対象とするようなあいまい検索が可能です。
例えば、pk_から始まるインデックスの一覧を取得する場合には、¥di pk_*とします。

インデックスの詳細情報(¥d)

インデックスの詳細情報の取得には、psqlに接続し、メタコマンドのひとつである¥dを使用します。

¥dは、テーブル名かインデックス名をつけて使用します。

¥d テーブル名

テーブルに設定されているインデックスの詳細情報が知りたい場合は、¥d テーブル名とします。

pk_test_table2はカラムaに張られていて、PRIMARY KEYとあるので主キー制約設定時に作成されているインデックスであることが分かります。
idx2_test_table2はカラムcに張られていて、UNIQUEとあるので一意制約つきのインデックスです。
また、どのインデックスもB-treeインデックスであることも分かります。(他にHashインデックス等があります)

¥d インデックス名

インデックス名を指定して詳細情報を取得することも可能です。その場合は、¥d インデックス名とします。

test_table1のカラムa,bに対して張られている複合インデックスであることや、主キー制約設定時に作成されているインデックスであることが分かります。

sponsored link

管理人

かなめ

フリーの業務系システムエンジニア。情報処理安全確保支援士。 ORACLEと金融と子育ての狭間で、元気に楽しくやってます。 [詳細]

管理人twitter

ブログ村



sponsored link