自動セグメント領域管理によるシステム管理の効率化
データベース領域管理は、ほとんどのデータベース管理者にとって長らく重要な業務の一部でした。 管理者は、不断のデータベース処理を保証するために、領域の使用計画と監視に多くの時間を費やしてきました。 Oracle9i で導入された新機能は、領域管理タスクを簡略化し、ベスト・プラクティス(最適な設定方法)を容易に実行し、 パフォーマンス・チューニングに関連する多くの領域管理タスクを大幅に削減します。
自動セグメント領域管理は、表や索引などのオブジェクト内にある空き領域の管理を簡略化し、領域使用率を改善し、 標準の設定でただちに優れたパフォーマンスとスケーラビリティを提供します。 Oracle9i以前のデータベース・バージョンでは、 FREELISTSと呼ばれるデータ構造によって、新規行の挿入が可能な十分な空き領域のあるオブジェクト内のブロックが追跡されていました。 管理者は、オブジェクトの作成時にFREELISTSおよびFREELIST GROUPSの数を定義することができました。 パラメータPCTUSEDの値によって、ブロックをFREELIST内に含めたり排除したりしました。
新しいメカニズムでは、 ビットマップを使用してオブジェクトに割り当てられた各データ・ブロックの領域使用率が追跡されるため、オブジェクト内の 領域管理が完全に透過的になります。 ビットマップの状態は、そのデータ・ブロック内の空き領域の比率(75%以上、50~75%の間、 25~50%の間、または25%以下)と、その領域がフォーマット済かどうかを示します。
この新たな実装により、領域管理関連の コントロール(FREELISTS、FREELIST GROUPS、PCTUSEDなど)を調整する必要がなくなるため、データベース管理者は データベース・オブジェクト内の領域を手動で管理する作業から解放されます。 それと同時に、データベースはデータ・ブロックの 空き状況に関してより正確に把握できるため、領域使用率が向上します。
これにより、特に行のサイズが大幅に異なる行を 持つオブジェクトに対して、使用可能な空き領域をより効率的に再使用することができます。 さらに、自動セグメント領域管理機能では、ビットマップの異なる部分を同時に使用することによって空き領域ルックアップの シリアル化をなくせるため、同時DML操作のパフォーマンスが改善されます。
自動セグメント領域管理機能によって得られるパフォーマンスと管理性の向上は、Real Application Cluster環境で特に 顕著に現れます。 この機能により、新規インスタンスのオンライン時にFREELISTSとFREELIST GROUPSの数を変更する必要が なくなるため、このような表の再編成に関連する停止時間を短縮することができます。 下のチャートは、自動セグメント 領域管理と手動セグメント領域管理のパフォーマンスを比較した、Oracle内部のベンチマークの結果を示しています。
このベンチマークでは、2ノード(各ノードに対して6 x 336 MHzのCPUと4 GBのRAM)のReal Application Clusterデータ ベースで1つの表に約300万行を挿入しました。 自動セグメント領域管理は、手動モードによる最適に調整されたセグメント (8 FREELIST GROUPS、20 FREELISTS)よりも35%優れたパフォーマンスを発揮しました。
|
自動セグメント領域管理は、インストール後ただちに優れたパフォーマンスとスケーラビリティを提供
|
自動セグメント領域管理機能は、ローカル管理表領域でのみ使用することができます。 CREATE TABLESPACEコマンドの新しいSEGMENT SPACE MANAGEMENT句により、管理者は自動モードと手動モードを 選択することができます。 MANUALセグメント領域管理で作成された表領域では、引き続きFREELISTSを使用してその表領域の オブジェクト内の空き領域を管理します。 次の例は、自動セグメント領域管理を使用した表領域の作成方法を示しています。 |
CREATE TABLESPACE data DATAFILE '/u02/oracle/data/data01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
|
|
上記の表領域で作成されたオブジェクトはすべて、自動セグメント領域管理機能を使用してその空き領域を管理します。 この表領域で作成されたオブジェクトに対するPCTUSED、FREELISTSおよびFREELIST GROUPSパラメータの指定はすべて無視されます。 表領域で使用されるセグメント領域管理モードを示すために、SEGMENT_SPACE_MANAGEMENTと呼ばれる新しい列が DBA_TABLESPACESビューに追加されています。
この機能を使用するには、互換パラメータを9.0.0またはそれ以上に設定する必要があります。
|
追加情報
|
|
Oracle9i Database マニュアル(ドキュメント) -
Oracle9i Database - Oracle9iデータベース管理者ガイド - 第11章 ローカル管理表領域のセグメント領域管理の指定
|
|
Oracle9i Database マニュアル(ドキュメント) -
PL/SQLおよびパッケージプロシージャー - Oracle9i PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス 第47章: DBMS_REPAIR
|
|
Oracle9i Database マニュアル(ドキュメント) -
PL/SQLおよびパッケージプロシージャー - Oracle9i PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス 第60章: DBMS_SPACE
|
Oracle9i Database Daily Feature
|
|
アーカイブ
|
|