はじめに
Oracle DBにおいて、特定のテーブルに貼られているインデックスを確認するには、user_ind_columnsテーブルをテーブル名をキーに検索すると調べることができます。
Oracleの基本 ~データベース入門から設計/運用の初歩まで
posted with amazlet at 19.09.29
渡部 亮太 相川 潔 日比野 峻佑 岡野 平八郎 宮川 大地
技術評論社
売り上げランキング: 65,273
技術評論社
売り上げランキング: 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を昇順にソートすることによって複合インデックスがどのカラムにどの順序で貼られているかを確認することができます。