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

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

Share

最近の投稿

NetlifyのSplit TestingとFunctionsについて使い方をまとめる Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

NetlifyとはHTMLなどの静的コンテンツのみで構成されたWebサイトを閲覧できる形で配信するWebサービス GitHubやBitbucket、GitLabなどと連携して使うことができて、リポジトリにプッシュすることで自動でCI/CDを行うことができる、無料枠が豊富で独自ドメインを設定可能

WordPressからJekyll(GitHub Pages)に移行した手順をまとめる。 お金的な事情や使いやすさなどの理由で無料のJekyll+GitHub Pagesに移行した。JekyllとはMarkdown等から静的ページを生成する静的サイトジェネレータ

Scala開発のためにScalaらしさをまとめる 言語設計者の設計思想を元にScalaらしさについてまとめる オブジェクト指向と関数型の融合について

StorybookとはUI開発環境を提供するツール React、React Native、Angular、Vueなどをサポートしている ユーザーは独立した開発環境でコンポーネントを個別に作成して挙動の確認をテストできたり、コンポーネントを一覧にしてカタログ化できるので他の人に紹介する時に使えたりする

カテゴリ一覧

タグ一覧