ORACLE/INDEX編

オラクルちょこっとリファレンス

HOME > INDEX編

INDEX(インデックス/索引)

インデックスとは、表につける索引のことで、本に例えると目次にあたります。

もし、本で調べ物をするときに目次がなかったら、目的の情報に辿り着くまで1ページずつ見ていかなければなりませんが、目次があれば一発で目的のページに辿り着くことができます。

INDEXはまさしくこれと同じ役目をし、検索のパフォーマンスを上げる目的で使用されます。

インデックスの作成

インデックスの作成には、CREATE INDEX句を使用します。

CREATE INDEX構文
CREATE [UNIQUE | BITMAP] INDEX <インデックス名>
  ON <テーブル名>(列名 [ASC|DESC],...)
  [TABLESPACE 表領域名];

パラメータ 説明
UNIQUE 通常のINDEXを作成する
BITMAP BITMAP INDEXを作成する
TABLESPACE INDEXを作成する表領域を指定する
INDEXの作成例文
--インデックス(インデックス名:test_idx)を作成する CREATE INDEX test_idx ON user01.TEST_TABLE(CODE1, CODE2) TABLESPACE index_tbs;

CREATE INDEXの実行には以下の権限が必要です。

  • 自スキーマに作成する場合: 「CREATE INDEX」システム権限
  • 他スキーマに作成する場合: 「CREATE ANY INDEX」システム権限

インデックスの再作成

インデックスの再作成には、ALTER INDEX句を使用します。

ALTER INDEX構文 (インデックスの再作成)
ALTER INDEX <インデックス名> REBUILD ONLINE;

INDEXの再作成例文
--インデックス(インデックス名:test_idx)を再作成する。 ALTER INDEX test_idx REBUILD ONLINE;

インデックスの削除

インデックスの削除には、DROP INDEX句を使用します。

DROP INDEX構文
DROP INDEX <インデックス名>;

INDEXの削除例文
--インデックス(インデックス名:test_idx)を削除する。 DROP INDEX test_idx;

ToTop