表領域のローカル管理方式を解説!

Oracle Master Silver

Oracleデータベースにおける表領域の管理は、データベースのパフォーマンスと効率性を左右する重要な要素です。その中でも ローカル管理方式 は、現代のデータベース運用で標準となっています。

この記事では、ローカル管理方式の基本的な仕組みから具体的な設定方法、さらに運用でのポイントまでを詳しく解説します。


1. ローカル管理方式とは?

ローカル管理方式は、表領域内でエクステント(データの格納単位)の管理を行う仕組みです。従来の「ディクショナリ管理方式」と異なり、エクステント管理情報を 表領域内のビットマップ形式 で保存するため、以下のような利点があります。

  • エクステント割り当ての効率化
  • データディクショナリへの依存の軽減
  • フラグメンテーションの抑制

データ構造の違い

管理方式管理情報の保存場所使用技術
ディクショナリ管理方式データディクショナリ表や索引を使用
ローカル管理方式表領域内のビットマップビットマップ構造を利用

2. ローカル管理方式の利点

ローカル管理方式には、次のような明確な利点があります。

(1) 高速なエクステント操作

ビットマップを使用することで、エクステントの割り当てや解放が効率化されます。

(2) データベースのパフォーマンス向上

データディクショナリを参照する必要がなく、システムリソースの消費が軽減されます。

(3) フラグメンテーションの軽減

エクステントの自動管理により、データファイルの断片化を抑えることができます。


3. ローカル管理方式の種類

ローカル管理方式には以下の2つの割り当て方式があります。

UNIFORM方式

  • 特徴:すべてのエクステントが固定サイズ。
  • 適用例:均一なデータ量を扱う表領域(ログ保存用など)。
  • メリット:管理が簡単で、パフォーマンスが予測しやすい。

AUTOALLOCATE方式

  • 特徴:データ量に応じてエクステントサイズを自動調整。
  • 適用例:データ量が不均一なアプリケーションデータ。
  • メリット:無駄なディスクスペースを最小限に抑える。

4. 実践!ローカル管理方式の設定

ローカル管理方式を使用した表領域の作成例を以下に示します。

UNIFORM方式の表領域を作成

CREATE TABLESPACE uniform_tbs
DATAFILE '/u01/app/oracle/oradata/uniform_tbs.dbf' SIZE 100M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

AUTOALLOCATE方式の表領域を作成

CREATE TABLESPACE auto_tbs
DATAFILE '/u01/app/oracle/oradata/auto_tbs.dbf' SIZE 100M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

作成済み表領域の管理方式を確認

以下のSQLを実行すると、現在の管理方式を確認できます。

SELECT tablespace_name, extent_management, allocation_type
FROM dba_tablespaces;

出力例

TABLESPACE_NAMEEXTENT_MANAGEMENTALLOCATION_TYPE
USERSLOCALAUTOALLOCATE
UNIFORM_TBSLOCALUNIFORM

5. ディクショナリ管理方式との比較

項目ローカル管理方式ディクショナリ管理方式
管理情報の保存場所表領域内(ビットマップ)データディクショナリ
エクステント割り当て速度高速低速
フラグメンテーションの影響少ない発生しやすい
現在の推奨度非常に高い(デフォルト)低い(互換性維持のためサポート)

6. 運用でのベストプラクティス

(1) 適切な方式を選択する

  • UNIFORM方式:均一なデータ量が予測される場合(例:ログ保存用)。
  • AUTOALLOCATE方式:データ量が変動する場合や詳細な管理が不要な場合。

(2) ディスク容量を常に監視する

AUTOALLOCATE方式ではエクステントサイズが自動で拡張されるため、ディスク容量が不足しないように注意が必要です。

(3) 古いディクショナリ管理方式の表領域を移行する

ディクショナリ管理方式の表領域をローカル管理方式に移行する際には、データを新しい表領域に再配置する手順を計画的に行いましょう。


7. まとめ

ローカル管理方式は、Oracleデータベースのパフォーマンスを最適化するために欠かせない表領域管理の仕組みです。その利点は、効率的なエクステント操作、高速なパフォーマンス、管理の簡素化にあります。

データベースを新たに構築する際には、ローカル管理方式をデフォルトで活用しつつ、要件に応じて UNIFORM方式AUTOALLOCATE方式 を選択することで、効率的で信頼性の高い運用が可能になります。

[参考]
Oracle Databaseデータベース管理者ガイド 19c

コメント

タイトルとURLをコピーしました