小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Oracleで指定したテーブルに貼られているインデックスを確認する方法

はじめに

Oracle DBにおいて、特定のテーブルに貼られているインデックスを確認するには、user_ind_columnsテーブルをテーブル名をキーに検索すると調べることができます。


【Oracle】インデックスの一覧を調べるときのSQL | もぐめぽろぐ
【Oracle】インデックスの一覧を調べるときのSQL | もぐめぽろぐ

Oracleの基本 ~データベース入門から設計/運用の初歩まで
渡部 亮太 相川 潔 日比野 峻佑 岡野 平八郎 宮川 大地
技術評論社
売り上げランキング: 65,273

指定したテーブルに貼られているインデックスを確認する
SELECT * FROM user_ind_columns where table_name = UPPER('&table_name') order by index_name, column_position ASC;
試してみる

1.テスト用のテーブルを作ってみます。

create table table01
(
  id number,
  name varchar(50),
  furigana varchar(50),
  primary key( id )
);

2.このテーブルに複合インデックスを貼ります。

CREATE INDEX INDEX_HOGE ON table01 (NAME, FURIGANA);

3.確認用クエリを実行し、さきほど作成したテーブル(table01)を指定します。

SELECT * FROM user_ind_columns where table_name = UPPER('&table_name') order by index_name, column_position ASC;


SYS_C007488はプライマリーキーを指定したことによって作成されたインデックスです。
INDEX_HOGEは複合インデックスのため、2行表示されています。column_positionを昇順にソートすることによって複合インデックスがどのカラムにどの順序で貼られているかを確認することができます。