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

Published: 2016年2月24日 by tomsato

◼︎ 概要

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)
);

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

コメントを書く

※ Emailは公開されません

※ コメントは承認されると下記に表示されます

コメント一覧

最近の投稿

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

Netlify Formsを使ってブログサイトにコメント機能を追加する方法を調べたので紹介 Netlify FormsはNetlifyに標準機能として用意されているフォーム機能 サーバレスなので別途コメント用にサーバを用意する必要がなくHTMLを埋め込むだけで準備できる

TypeScriptの入門の入門チートシート 型の種類や使い方についてまとめていくだけでなく、 TypeScriptについてや必要性などについてもまとめることでこのページでTypeScriptをざっくり理解できる程度の内容を目指す

NetlifyのFormsやSplit Testing、Functionsについて使い方をまとめる FormsはNetlifyに標準機能として用意されているフォーム機能でコメント保存用にサーバを用意する必要がない Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

カテゴリ一覧

タグ一覧