データベースの再構築の最適化

この項の内容:

データベースの再構築

再構築操作の最適化

パフォーマンスを向上するためのアクション

アウトラインの変更のクイック・リファレンス

この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。

関連項目:

データベースの再構築

業務形態の変化にあわせて、Essbaseのデータベース・アウトラインを変更し、新しい製品ラインの導入、新しいシナリオの情報の追加、新しい期間の反映などを行う必要があります。データベース・アウトラインの変更によって、データ・ストレージの配置が影響を受け、Essbaseでのデータベースの再構築が必要になることもあります。

データベースの再構築を必要とする変更は非常に時間がかかるため(再構築の前にデータを破棄しないかぎり)、このような変更を決定するときは、それらがパフォーマンスにどのように影響するかに基づいて、十分に検討してください。この項では、再構築がパフォーマンスにどのような影響を与えるかを理解するために必要な情報を示し、データベースの再構築に関連して実行できるタスクについて説明します:

注:

データの消去およびそれに伴う一部の再構築を回避する方法については、『Oracle Essbaseテクニカル・リファレンス』の「CLEARDATA」および「CLEARBLOCK」、またはOracle Essbase Administration Services Online Helpの「データの消去」を参照してください。

データベースの再構築のタイプ

この項では、データベースの再構築を起動するための2つの方法について説明します。

暗黙的な再構築

アウトライン・エディタまたは次元構築を使用してアウトラインを変更した後、Essbaseでデータベース・ファイルの暗黙的な再構築が開始されます。実行される再構築のタイプは、アウトラインに加えた変更のタイプによって異なります:

  • 密な再構築: 密次元のメンバーが移動、削除または追加されると、Essbaseでデータ・ファイル内のブロックが再構築され、新しいデータ・ファイルが作成されます。Essbaseでデータ・ブロックが再構築されると、インデックス・エントリが新しいデータ・ブロックを指すように、自動的にインデックスが再生成されます。空のブロックは削除されません。再構築されたすべてのブロックは、Essbaseでダーティとしてマークされるため、密な再構築の後はデータベースを再計算する必要があります。密な再構築は最も時間のかかる再構築であり、大きなデータベースに対して実行すると時間がかかる可能性があります。

  • 疎な再構築: 疎次元のメンバーが移動、削除または追加されると、Essbaseでインデックスが再構築され、新しいインデックス・ファイルが作成されます。インデックスの再構築は比較的高速です。所要時間はインデックスのサイズによって変わります。

  • アウトラインのみの再構築: 変更がデータベース・アウトラインのみに影響する場合、Essbaseではインデックス・ファイルやデータ・ファイルの再構築は行われません。データベース・アウトラインのみに影響する変更の例として、メンバー名の変更、別名の作成および動的計算式の変更があります。

増分再構築を使用する場合、Essbaseでは密な再構築は延期されます。データベース・アウトラインを頻繁に変更する場合は、増分再構築の使用可能化を検討してください。増分再構築の詳細は、増分再構築とパフォーマンスを参照してください。

注:

データベース・アウトラインを変更する方法(アウトライン・エディタの使用または次元構築の使用)は、再構築には影響を与えません。再構築が行われる場合、どのタイプの再構築が行われるかに影響するのは、情報の変更のタイプのみです。アウトラインの変更と行われる再構築のタイプの詳細は、アウトラインの変更のクイック・リファレンスを参照してください。

明示的な再構築

データベースの再構築を手動で開始する場合は、明示的な再構築を実行します。明示的な再構築は、強制的にデータベースの完全な再構築を行います。完全な再構築は、密な再構築に加え、空のブロックの削除で構成されます。

  全体の再構築を開始するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

手動によるデータベースの再構築

Oracle Essbase Administration Services Online Help

MaxL

alter database

『Oracle Essbaseテクニカル・リファレンス』

データベースの再構築に影響する条件

高機能計算、名前変更および式の変更は、次のようにデータベースの再構築に影響を与えます:

  • データベースで高機能計算を使用している場合には、データ・ブロックが再構築されるたびに、再構築されたブロックはすべてダーティとしてマークされます。ブロックをダーティとしてマークすると、次のデフォルトの高機能計算は必然的にフル計算となります。

  • 名前または式を変更した場合、Essbaseでは影響を受けるブロックはダーティとしてマークされません。したがって、メンバーまたはデータベースを再計算するには、フル計算以外の方法を使用する必要があります。

再構築に関する情報については、表178を使用してください:

表 178. データベースの再構築に関連する項目

トピック

関連情報

高機能計算

データベースの再構築

疎次元および密次元

属性次元

属性次元の設計

次元構築

データ・ロードおよび次元構築の理解

アウトライン・エディタ

データベース・アウトラインの作成および変更

再構築時に使用される一時ファイル

Essbaseでデータ・ブロックとインデックスの両方が再構築されるとき、表179に示すファイルが使用されます:

表 179. データベースの再構築時に使用されるファイル

ファイル

説明

ess xxxxx .pag

Essbaseデータ・ファイル

ess xxxxx .ind

Essbaseインデックス・ファイル

dbname .esm

Essbaseカーネル・ファイル(データベースのリカバリに使用される制御情報を含む)

dbname .tct

トランザクション制御表

dbname .ind

データおよびインデックスのフリー・フラグメント用のフリー・フラグメント・ファイル

dbname .otl

データベースのすべてのメタデータと、データの保管方法が定義されているアウトライン・ファイル

密な再構築

  密な再構築を実行するとき、次のことが行われます:

  1. 次のファイルのコピーである一時ファイルが作成されます:

                ess
                xxxxx
                .ind
    ess
                xxxxx
                .pag
    
                dbname
                .otl
    
                dbname
                .esm
    
                dbname
                .tct
             

    それぞれの一時ファイルは、ファイル拡張子の最後の文字がnまたはuに置き換えられます。一時ファイルの名前は次のとおりです:

                ess
                xxxxx
                .inn
    ess
                xxxxx
                .pan
    
                dbname
                .otn
    
                dbname
                .esn
    
                dbname
                .tcu
             
  2. 手順1でコピーされたデータベース・ファイルからブロックが読み取られ、メモリー内でブロックが再構築され、新しい一時ファイルにブロックが保管されます。この手順に最も時間がかかります。

  3. 手順1でコピーしたデータベース・ファイルが削除されます

  4. 手順1で作成した一時ファイルの名前が、正しいファイル名に変更されます。

疎な再構築

Essbaseで疎な再構築(インデックスのみの再構築)が行われるとき、次のファイルが使用されます:

  • ess xxxxx .ind

  • dbname .otl

  • dbname .esm

  疎な再構築を実行するとき、Essbaseでは次のことが行われます:

  1. dbname.esmファイル名がdbname.esrに変更されます。

  2. essxxxxx.indファイル名がessxxxxx.inmに変更されます。

  3. インデックス・ファイル(essxxxxx.ind)が作成されて、再構築操作によって変更されるインデックス情報が保管されます。

  4. 手順1で作成したdbname.esrおよびessxxxxx.inmが削除されます。

再構築操作の最適化

データベース・アウトラインを頻繁に変更する場合は、アウトラインとそれに加える変更のタイプを分析します。疎次元または属性次元に対する変更は、インデックスのみが変更されるため、比較的速く行われます。密次元に対する変更は、データ・ブロックが再構築されるため、比較的時間がかかります。

再構築操作のタイプを、速度の速い順に示します:

  • アウトラインのみ(インデックス・ファイルまたはデータ・ファイルは含まれない)

  • 疎(インデックス・ファイルのみ)

  • 密(インデックス・ファイルおよびデータ・ファイル)。メンバーとその他の操作の追加、削除または移動によって発生するもの(アウトラインの変更のクイック・リファレンスを参照)

  • 密(インデックス・ファイルおよびデータ・ファイル)。密次元を疎次元に、または疎次元を密次元に変更することで発生するもの

いくつかのアクションで、データベースの再構築に関連するパフォーマンスが改善されます:

  • 頻繁に変更する次元がある場合は、その次元を疎にします。

  • 必要なデータベースの再構築をEssbaseでいつ実行するかを制御するには、増分再構築を使用します。

  • マルチプロセッサ・システムでは並列再構築を検討します。

  • 変更したアウトラインを保存するときには、必要な再構築の量を削減するオプションを選択します。

注:

分離レベルをコミット・アクセスに設定すると、データベースの再構築に必要なメモリーおよび時間が増加する可能性があります。データベースの再構築の前に、分離レベルをアンコミット・アクセスに設定することを検討してください。分離レベル設定の詳細は、データの整合性の確保。を参照してください。

増分再構築とパフォーマンス

データベース・アウトラインを頻繁に変更する場合は、増分再構築を使用可能にすることを検討してください。増分再構築を使用可能にすると、データベース・アウトラインまたは次元への変更によって構造的な変化が発生しないように、Essbaseで再構築が延期されます。インデックスと、必要に応じて、次にブロックがアクセスされるときに影響を受けるブロックがEssbaseで再構築されます。

増分再構築の理解

増分再構築が有効な場合は、特定のアウトライン操作のために後続のアクセスが必要になるまで、インデックス・ファイル(essxxxxx.ind)およびデータ・ファイル(essxxxxx.pag)への変更が延期されます。データ量の多いデータベースでは、この延期によってかなりの時間を節約できます。Essbaseが増分再構築を適用できるアウトライン操作のリストは、アウトラインの変更のクイック・リファレンスを参照してください。

次の変更は、増分再構築の設定に優先します。つまり、増分再構築が使用可能であっても、これらの変更では再構築が即時に行われます:

  • 属性以外の次元の追加または削除。

  • 疎次元での保管されているメンバーの削除。

  • 疎から密、あるいは密から疎への次元定義の変更。

  • データベース内でLROを使用している場合、そのデータベースでは増分再構築が自動的に使用不可になります。増分再構築の使用不可は、サーバー上の他のデータベースには影響を与えません。

  • また、疎次元へのメンバーの追加および疎次元の変更でも、場合によっては即時の再構築が発生することがあります。アウトラインの変更のクイック・リファレンスを参照してください。

増分再構築が使用可能かどうかにかかわらず、アウトラインがすでに再構築されている(密な再構築が保留中である)場合は、共有メンバーを追加するとEssbaseで密な再構築が実行されます。

注:

再構築操作を行った後は、必ずデータベースの再計算を実行してください。

増分再構築の使用

次のデータベースに対して、増分再構築を使用可能にできます:

  • アプリケーション内の1つのデータベース

  • アプリケーション内のすべてのデータベース

  • すべてのアプリケーション内のすべてのデータベース

増分再構築を使用可能にするには、essbase.cfgファイル内のINCRESTRUC構成設定を使用します。『Oracle Essbaseテクニカル・リファレンス』を参照してください。

Essbaseでは、アウトラインの変更は、内部ファイル、dbname.oclに記録されます。Essbaseによってこのファイルに対し、密な再構築が行われたとき、またはデータベースが消去またはリセットされたときに、消去されます。ファイルdbname.oclはきわめて大きくなる可能性があります。このファイルを消去するには、ESSCMDでVALIDATEを発行します。これにより、再構築が延期されたブロックがEssbaseで再構築されます。VALIDATEを発行するときは、データベースが読取り専用モード(データベースのバックアップに使用される)ではないことを確認します。VALIDATEを使用した整合性の検査を参照してください。

並列再構築

デフォルトでは、ブロック・ストレージの再構築は連続して実行されます。ブロックが最初から最後まで再度番号付けされ、再形成されるため、処理に時間がかかります。並列再構築では、使用可能なプロセッサ・コアを使用するために、ブロックの再構築作業を複数の同時スレッド全体に分割することで、再構築の時間が短縮されます。計算は再構築とは別に実行されるため、各ブロックは他のブロックから独立して再構築されます。

ブロックはnのグループに分割されます。nは、再構築スレッドの数です。この分割は、レベルのキーの数がn以上になるまで、インデックスBTreeの大きさを走査することにより実行されます。キーの数がnを超えるレベルがない場合には、再構築スレッドの数もそれに応じて減少します。

使用する再構築スレッドの数は、RESTRUCTURETHREADS構成設定を使用してessbase.cfgに定義されます。RESTRUCTURETHREADSが定義されていない場合、デフォルトは1スレッドです。詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。

変更したアウトラインを保存する場合のオプション

データベースの再構築をトリガーする(アウトライン・エディタを使用して)アウトラインの変更を保管するとき、Essbaseでダイアログ・ボックスが表示されます。「データベースの再構築」ダイアログ・ボックスでは、再構築中にデータ値がどのように処理されるかを定義します。たとえば、再構築中にすべてのデータを保持、レベル0または入力データのみを保持、またはすべてのデータを破棄できます。Oracle Essbase Administration Services Online Helpの「アウトラインの保管」を参照してください。

データベースにデータが含まれている場合は、サーバー上にデータベースのバックアップ・コピーを作成するために十分な空きディスク・スペースが必要です。バックアップにより、再構築プロセス中の異常終了によってデータベースが破壊されることがないようにします。

Essbaseで再構築不要のメッセージが表示されることがありますが、その場合でもインデックスのみの再構築は実行されます。これは、疎次元に変更を加えた場合に発生する可能性が高くなります。再構築操作の取消しを試みた場合、Essbaseで取消し不可のメッセージが表示されることがあります。このようなメッセージが表示された場合は、Essbaseですでに最終的なクリーンアップが実行中のため取り消せません。

アウトライン変更ログ

アウトライン変更ログをアクティブにすると、アウトラインに影響するすべてのアクティビティ(メンバー名の変更やメンバーの移動など)がEssbaseに記録されます。アウトラインに加える変更が多くなるほど、Essbaseでログに加える必要がある更新が多くなるため、パフォーマンスは低下します。

デフォルトでは、アウトライン変更はEssbaseのログに記録されません。アウトラインのロギングによりパフォーマンスが低下しているかどうかを確認するには、essbase.cfgファイルのOUTLINECHANGELOGがTRUEになっているかどうかを調べてください。アウトライン変更ログとその使用を参照してください。

Essbaseパーティショニング・オプション

パーティショニングを使用すると、Essbaseでアウトラインの変更が追跡されて、パーティション間でデータベース・アウトラインを同期できるようになります。アウトラインの変更を追跡すると、構造的な変更が多い場合は特に、再構築の速度が低下します。

パーティショニングを使用しているときにEssbaseでデータの再構築を行う場合、次の手順を実行して、パーティション間でデータを確実に同期化させます:

  1. パーティションを検証します。

    パーティションの検証を参照してください。

    注:

    パーティションを検証するには、データベース・マネージャ以上の権限が必要です。

  2. パーティションのアウトラインを同期化します。

    アウトラインの同期化を参照してください。

アウトラインの変更のクイック・リファレンス

この項の表に、計算および再構築(増分再構築を含む)に影響を与えるアウトラインの変更をすべて示します。

注:

パーティショニングを使用している場合、再構築は接続先のデータベースにのみ影響を与えます。

表 180. アクション: メンバーの削除、追加または移動

アクション

計算および標準的な再構築への影響

増分再構築が適用されるか?(使用可能な場合)

疎次元のメンバーの削除

関係の変更を反映するために、データを再計算する必要があります。

Essbaseでは、削除したメンバーによって表されるブロックに対するすべてのポインタは、インデックス・ファイルから削除されます。ブロックはこれ以上参照されなくなるため、空きスペースになります。再構築は行われません。

通常のメンバーには適用されません。増分再構築を優先して、Essbaseでインデックスが再構築されます。

ラベルのみメンバーの場合、増分再構築が適用され、再構築は延期されます。

属性次元のメンバーの削除

なし

いいえ

密次元のメンバーの削除

関係の変更を反映するために、データを再計算する必要があります。

データ・ファイルは、変更されたブロック・サイズを反映するようEssbaseで再構築されます。Essbaseでインデックスが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

疎次元または密次元における共有メンバーの削除

データを再計算する必要があります。データは、依然として元のメンバー名に関連付けられています。しかし、共有メンバーの親が子のデータに依存する場合があるので、再計算が必要です。

再構築は行われません。

いいえ

疎次元へのメンバーの追加

新しいメンバーのデータをロードまたは計算し、新しい値を取得する必要があります。

Essbaseでインデックスが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

密次元へのメンバーの追加

新しいメンバーのデータをロードまたは計算し、新しい値を取得する必要があります。データを再計算する必要があります。

データ・ファイルは、変更されたブロック・サイズを反映するようEssbaseで再構築されます。Essbaseでインデックスが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

属性次元へのメンバーの追加

なし

いいえ

疎次元または密次元に対する共有メンバーの追加

データを再計算する必要があります。新しい共有メンバーは、その親への集計に影響を及ぼします。

再構築は行われません。

いいえ

疎次元内の通常のメンバーの移動

集計の変更を反映するために、データを再計算する必要があります。

Essbaseでインデックス・ファイルが再構築されます。

いいえ。インデックス・ファイルは、増分再構築を優先してEssbaseで再構築されます。

密次元内の通常のメンバーの移動

集計の変更を反映するために、データを再計算する必要があります。

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

属性次元メンバーの移動

なし

いいえ

表 181. アクション: その他のメンバー関連の変更

アクション

計算および標準的な再構築への影響

増分再構築が適用されるか?(使用可能な場合)

メンバーの別名の変更またはメンバーへの別名の追加

なし

いいえ

メンバー名の変更

なし

いいえ

メンバー式の変更

式の変更を反映するために、データを再計算する必要があります。

再構築は行われません。

いいえ

表 182. アクション: 動的計算関連の変更

アクション

計算および標準的な再構築への影響

増分再構築が適用されるか?(使用可能な場合)

動的計算および保管としての動的計算メンバーの定義

密次元メンバーの場合: Essbaseで、インデックス・ファイルとデータ・ファイルが両方とも再構築されます。

疎次元メンバーの場合: 再構築は行われません。

はい。データおよびインデックス・ファイルへの変更は延期されます。

動的計算としての動的計算および保管メンバーの定義

なし

いいえ

動的計算および保管としての通常の密次元メンバーの定義

なし

いいえ

動的計算としての通常の密次元メンバーの定義

Essbaseで、インデックス・ファイルとデータ・ファイルが両方とも再構築されます。

再構築は延期されます。

通常のメンバーとしての疎次元の動的計算および保管メンバーまたは動的計算メンバーの定義

再構築は行われません

いいえ

動的計算または動的計算および保管としての疎次元の通常メンバーの定義

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

通常のメンバーとしての密次元の動的計算および保管メンバーの定義

再構築は行われません

いいえ

通常のメンバーとしての密次元の動的再計算メンバーの定義

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

動的計算メンバーとしての密次元の通常メンバーの定義

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

疎次元の動的計算メンバーの追加、削除、または移動

Essbaseでインデックス・ファイルが再構築されます。

メンバーの追加または削除の場合、データおよびインデックス・ファイルへの変更は延期されます。

メンバーの移動の場合、増分再構築を優先して、Essbaseでインデックス・ファイルが再構築されます。

疎次元の動的計算および保管メンバーの追加、削除、または移動

Essbaseでインデックス・ファイルが再構築されます。

メンバーの追加の場合、データおよびインデックス・ファイルへの変更は延期されます。

メンバーの移動または削除の場合、Essbaseでインデックス・ファイルが再構築されます(増分再構築が優先されます)。

密次元の動的計算および保管メンバーの追加、削除、または移動

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

いいえ

密次元の動的計算メンバーの追加、削除、または移動

再構築は行われません。

いいえ

表 183. アクション: プロパティとその他の変更

アクション

計算および標準的な再構築への影響

増分再構築が適用されるか?(使用可能な場合)

密-疎のプロパティの変更

データを再計算する必要があります。

Essbaseで、インデックス・ファイルとデータ・ファイルが両方とも再構築されます。

増分再構築を優先して、Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

ラベルのみプロパティの変更

データを再計算する必要があります。

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

共有メンバーのプロパティの変更

データを再計算して、変更した子のデータ値を反映させる必要があります。

Essbaseで、インデックス・ファイルとデータ・ファイルが両方とも再構築されます。

はい。データおよびインデックス・ファイルへの変更は延期されます。

プロパティ(密-疎、ラベルまたは共有を除いた他のプロパティ)の変更

タイム・バランスの期首から期末への変更などの集計プロパティの変更を反映するため、データを再計算することが必要な場合があります。

いいえ

2つの疎次元の順序の変更

計算またはデータ・ロードには影響がありません。

Essbaseでインデックスが再構築されます。

インデックスは、増分再構築を優先してEssbaseで再構築されます。

次元の順序の変更

データを再計算する必要があります。

Essbaseで、インデックス・ファイルとデータ・ファイルが両方とも再構築されます。

Essbaseでインデックス・ファイルとデータ・ファイルが再構築されます(増分再構築が優先されます)。

属性次元の順序の変更

なし

いいえ

別名テーブルの作成、削除、消去、名前変更、またはコピー

なし

いいえ

別名テーブルのインポートまたはメンバーの別名の設定

なし

いいえ

大文字と小文字の区別の設定の変更

なし

いいえ

レベルおよび世代の名前付け

なし

いいえ

UDAの作成、変更、または削除

なし

いいえ