Oracleのパーティションインデックスについて

◼︎ 目次

  1. 概要
  2. ローカル・グローバルインデックスについて
  3. 使い方

◼︎ 概要

Oracleのパーティションについてまとめてみた

以前パーティションについてまとめてみましたが
パーティション化されたテーブルでインデックスを作成する際にローカルインデックスとグローバルインデックスがあるのでその違いについて調べます

Oracle勉強シリーズ

◼︎ ローカル・グローバルインデックスについて

説明
ローカルインデックス パーティションに合わせてインデックスも分割される
グローバルインデックス パーティション全体で1つのインデックスを作成する

さらにローカルパーティションインデックスは2つに分類できます

説明
同一キー索引 パーティションキーと索引が同じ
非同一キー索引 パーティションキーと索引が異なる

ローカルインデックスのほうが1つ1つのパーティション・索引で
独立できるので管理がしやすく参照する時も早くなるらしい
索引の作りすぎは問題の元なので全部ローカルインデックスにすればいいというわけではない

◼︎ 使い方について

ローカルインデックスかグローバルインデックスかの確認方法

// テーブル名、インデックス目、表領域名、索引種別をカンマ区切りで出力
SQL> select table_name||','||index_name||','||tablespace_name||','||partitioned from user_indexes;

ローカル索引の場合にpartitionedがYESとなっている

ローカルorグローバルインデックスの作成方法

// LOCALインデックス作成
CREATE INDEX インデックス名 ON テーブル名(列名, ...) LOCAL;

// GLOBALインデックス作成
CREATE INDEX インデックス名 ON テーブル名(列名, ...) GLOBAL
PARTITION BY RANGE(列名)
(
  PARTITION idx_partition名1 VALUES LESS THAN(条件),
  PARTITION idx_partition名2 VALUES LESS THAN(MAXVALUE)
);

注意点としてインデックス作成時の列名にはパーティション化した列を全て含ませる必要がある


Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です