ストレージの割当てとデータの圧縮

この項の内容:

ストレージの割当て

データ圧縮

ストレージの割当て

Essbaseは、データ・ファイルを使用してデータ・ブロックを保管します。デフォルトでは、データ・ファイルは、関連付けられたデータベース・フォルダに配置されます。データ・ファイルは、essn.pagという命名規則に従います。ここで、nは1以上、65,535以下です。

Essbaseは、インデックス・ファイルを使用して、データベースのインデックスを保管します。デフォルトでは、インデックス・ファイルは、関連付けられたデータベース・フォルダに配置されます。インデックス・ファイルは、essn.indという命名規則に従います。ここで、nは1以上、65,535以下です。

Essbaseは、データおよびインデックス・ファイルのためのストレージを自動的に割り当てます。ディスク・ボリュームを使用して、これらのファイルへのストレージの割当て方法を制御できます。

  ストレージの割当て方法を制御するようにディスク・ボリュームを指定するには:

  1. Essbaseがインデックス・ファイルとデータ・ファイルを保管するために使用するスペースのサイズを確認します。サイズを確認する方法については、インデックス・ファイルとデータ・ファイルのサイズ確認を参照してください。

  2. ストレージを制御する方法を選択します:

    • Essbaseがこれらのファイルを保管するために使用するボリューム(ドライブ)を指定します。ディスク・ボリュームの指定を参照してください。

    • 1つのボリュームにEssbaseをインストールし、別のボリュームにファイルを保管します。

インデックス・ファイルとデータ・ファイルのサイズ確認

  インデックス・ファイル(.indファイル)やデータ・ファイル(.pagファイル)の名前、カウント、サイズおよび合計を表示したり、各ファイルがEssbaseで開いているかどうかを判断したりするには、次のツールを使用します:

ツール

トピック

場所

Administration Services

インデックス・ファイルとデータ・ファイルのサイズ確認

Oracle Essbase Administration Services Online Help

ESSCMD

LISTFILES

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

注:

NTFSボリューム上に存在するインデックス・ファイルやデータ・ファイル用にWindowsで提供されるファイル・サイズ情報は、正確でない場合があります。Administration ServicesおよびLISTFILESによって提供されるファイル・サイズ情報は正確です。

ディスク・ボリュームの指定

ディスク・ボリュームを使用して、Essbaseのインデックス・ファイル(essn.ind)およびデータ・ファイル(essn.pag)を保管する場所を指定します。

ファイルは、次のディレクトリ構造でディスク・ボリュームに書き込まれます:

      .../app/app_name/db_name
   

ディスク・ボリューム設定を使用しない場合は、Essbaseによって、ARBORPATHディレクトリが存在するボリューム上にデータのみが保管されます。ARBORPATH変数が設定されていない場合は、Essbaseでは、サーバーが起動されたボリューム上にデータのみが保管されます。

新しいファイルの場合、ディスク・ボリューム設定への変更は、そのデータベースの次回の起動時に有効になります。既存のファイルやボリュームには影響を与えません。

注:

インデックス・ファイルとデータ・ファイルのサイズを確認する方法については、インデックス・ファイルとデータ・ファイルのサイズ確認を参照してください。

ディスク・ボリュームは、Administration Services、MaxLまたはESSCMDを使用して指定できます。ディスク・ボリュームを使用する場合は、Essbaseによって、ディスク・ボリュームごとに次のオプションが提供されます:

  • ボリューム名

  • ボリューム上で使用する最大スペース(Administration Servicesでは「パーティション・サイズ」、ESSCMDでは「ボリューム・サイズ」と呼ばれます)

  • ファイル・タイプ

    インデックス・ファイル、データ・ファイルまたはその両方を指定できます。デフォルトは、同じボリューム上のインデックス・ファイルとデータ・ファイルです。

  • 最大ファイル・サイズ

    デフォルト値および推奨値は、2,097,152KB(2GB)です。最大ファイル・サイズに達すると、Essbaseによってファイルが作成され、そのファイルに漸増的に名前が付けられます。たとえば、ess00001.indが最大サイズに達すると、Essbaseによってess00002.indが作成されます。

    注意

    ボリューム名を指定して、ボリューム・サイズを指定しなかった場合は、Essbaseによってそのボリューム上の使用可能なすべてのスペースが使用されます。

Essbaseは、次の状況でデータ・ファイルとインデックス・ファイルを作成します:

  • すべてのファイルの合計サイズが、ディスク・ボリューム設定で指定されている最大サイズに達した場合

    デフォルトでは、この合計は、すべてのインデックス・ファイルおよびデータ・ファイルのサイズの合計です。ファイル・タイプとしてインデックスを指定した場合、この合計は、ボリューム上のすべてのインデックス・ファイルの合計を示します。ファイル・タイプとしてデータを指定した場合、この合計は、ボリューム上のすべてのデータ・ファイルの合計を示します。

    たとえば、EssbaseファイルのためにボリュームE上で最大12GB、ボリュームF上で最大16GB、ボリュームG上で最大16GBを使用するとします。インデックス・ファイルとデータ・ファイルのサイズがボリュームE上で12GBに達し、ディスクにさらにデータを書き込む必要がある場合は、EssbaseによってボリュームF上にファイルが作成されます。

  • 任意のボリューム上の個々のインデックス・ファイルまたはデータ・ファイルのサイズが2GBに達した場合

    前述した例(ボリュームEでは12GB、ボリュームFでは16GB、ボリュームGでは16GB)で、ボリュームEおよびFが最大容量に達し、EssbaseがボリュームGを使用しているとします。ボリュームG上で、Essbaseによってess00001.indが作成されてデフォルトの2GBの制限までデータが書き込まれ、ess00001.pagが作成されて1GBまでデータが書き込まれています。ボリュームGでは16GB内の3GBが使用されています。ess00001.indが2GBの最大ファイル・サイズに達しているため、次回、Essbaseがディスクにインデックス・ファイルを書き込むときにストレージ・スペースが必要になった場合は、ess00002.indが作成されます。ess00002.indが2GBの制限に達すると、Essbaseはess00003.indを作成します。Essbaseは、データ・ファイルについても同じ手順を実行します。

Essbaseはファイルに、ess00001.xxxから始まる連続的な名前を付けます。ここで、xxxはインデックス・ファイルの場合はind、データ・ファイルの場合pagであり、最大ess65535.xxxまで続きます。この命名規則はボリュームごとに適用されるため、上の例では、E、FおよびGの各ボリュームに、ess00001.pagおよびess00001.indという名前のファイルがあります。

ディスク・ボリュームを指定する際は、次のガイドラインに留意してください:

  • ディスク・ボリュームは、各ボリュームを使用する順序で指定してください。Essbaseがインストールされているボリュームをボリュームの1つとして指定する必要はありません。1つのボリュームにインストールし、他のボリュームにデータを保管できます。

  • あるボリュームがボリュームの容量に達すると、Essbaseは次のボリュームに移動します。

  • 指定されたすべてのボリュームが最大容量に達すると、Essbaseでは進行中のデータベース操作を停止し、エラー・メッセージを発行して、致命的なエラーの処理を実行します。致命的なエラーの処理の理解を参照してください。これらのイベントが発生した場合は、データベースをシャットダウンし、より多くのディスク・スペースを割り当ててから、データベースを再起動してください。

  • Essbaseに対しボリュームにファイルを保管するのを停止するよう指示できます。Essbaseは、必要に応じてそのボリュームに引き続きアクセスできますが、そのボリュームにこれ以上インデックスやデータの情報が保管されることはなくなります。ボリュームへの情報の保管を停止するには、削除するボリューム定義を選択し、「削除」をクリックします。

  • ディスク・ボリュームは、データベースごとに設定します。同じボリューム上のスペースを複数のデータベースで使用できるため、慎重にスペースを割り当ててください。たとえば、データベース1のためにボリュームA上の7GBを、データベース2のためにボリュームA上の7GBを指定した場合は、EssbaseファイルのためにボリュームA上の14GBを割り当てたことになります。

Windowsでは、Universal/Uniform Naming Convention (UNC)を使用して、ディスク・ボリュームをネットワーク・リソースの場所(共有ディレクトリなど)として指定できます。構文:

      \\ComputerName\SharedFolder\Resource
   

Administration Servicesを使用したディスク・ボリュームの指定

  Administration Servicesを使用してディスク・ボリュームを指定するには、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「ディスク・ボリュームの設定」を参照してください。

MaxLを使用したディスク・ボリュームの指定

  新しいボリュームの割当て、ボリュームの削除、またはボリューム設定の変更を行うには、『Oracle Essbaseテクニカル・リファレンス』alter database (ディスク・ボリューム)に関する項を参照してください。

ESSCMDを使用したディスク・ボリュームの指定

  新しいボリュームを割り当てるには、『Oracle Essbaseテクニカル・リファレンス』の「ESSCMD SETDBSTATEITEM 23」を参照してください。

追加する新しいディスク・ボリュームの番号を、コマンドラインで入力しなかった場合には、入力を求めるプロンプトが表示されます。

さらに、コマンドラインで次の値を入力しなかった場合、新しいボリュームごとに、それらの入力を求めるプロンプトが表示されます。

  • ボリューム名(各ボリューム)

  • ボリューム・サイズ(ボリューム上で使用する最大スペース)

    デフォルト値は無制限であり、最小設定は8MBです。

ESSCMDを使用する場合は、ボリューム・サイズをバイト(B)、キロバイト(K)、メガバイト(M)、ギガバイト(G)またはテラバイト(T)単位で指定できます。ESSCMDには、最小値、最大値、現在の値、無制限を示す0が表示されます。

  • ファイル・タイプ

    インデックス・ファイル、データ・ファイルまたはその両方を指定できます。デフォルトは、インデックス+データ(同じボリューム上のインデックス・ファイルとデータ・ファイル)を示す3です。

  • ファイル・サイズ(Essbaseによって新規ファイルが作成される前に、ファイル・タイプで指定された各ファイルの最大サイズ)

    デフォルト値は2GBであり、最小設定は8MBです。

次の例では、ボリュームE上で最大10GBを割り当て、2GBの最大ファイル・サイズを設定し、さらにデータ・ファイルをEにのみ保管するように指定しています:

      SETDBSTATEITEM 23 "SAMPLE" "BASIC" "1" "E" "10G" "2" "2G"
   

  割当てボリュームの設定を変更するには、ESSCMDでSETDBSTATEITEM 24と入力し、プロンプトに従うか、コマンドラインで必要な値を入力します。

コマンドラインで指定しない場合、ESSCMDから次の値を求めるプロンプトが表示されます:

  • ボリューム番号

    現在定義されているディスク・ボリュームのリストや、各ボリュームに割り当てられている番号を表示するには、ESSCMDのGETDBSTATEコマンドを使用します。

  • ボリューム名

  • ボリューム・サイズ

  • ファイル・タイプ

  • ファイル・サイズ

次の例では、ボリュームC上で最大20GBを割り当て、2GBの最大ファイル・サイズを設定しています:

      SETDBSTATEITEM 24 "SAMPLE" "BASIC" "1" "C" "20G" "3" "2G"
   

  Essbaseによってボリュームにこれ以上ファイルが保管されないようにするには、ESSCMDでSETDBSTATEITEM 25と入力してプロンプトに従うか、またはコマンドラインで必要な値を入力します。Essbaseは、割当て解除されたボリューム上のファイルに引き続きアクセスしますが、そのボリュームに新しいファイルを書き込むことはなくなります。

削除するボリューム定義の値をコマンドラインで指定しなかった場合は、ESSCMDにより値の入力を求めるプロンプトが表示されます。現在定義されているディスク・ボリュームのリストや、各ボリュームに割り当てられている番号を表示するには、ESSCMDのGETDBSTATEコマンドを使用します。

次の例では、4番目として指定されているボリュームの割当てを解除します:

      SETDBSTATEITEM 25 "SAMPLE" "BASIC" "4"
   

注:

アプリケーションまたはデータベースを削除した場合、Essbaseでは、アプリケーションやデータベースを含む、ディスク・ボリューム上にあるディレクトリは削除されません。コンピュータのオペレーティング・システムでは、ディスク上にフォルダおよびファイル・ラベルが表示されたままになります。ただし、ディスク・ボリューム上で削除したアプリケーションまたはデータベースと同じ名前を再使用することはできます。

この構文の詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。

UNIXでは、volume_nameはマウントされるUNIXファイル・システムです。Essbaseのインストール・ディレクトリ(ESSBASEPATH)への完全修飾パス名を入力する必要があります。Essbaseによって、そのパスにappディレクトリが自動的に追加されるので、appディレクトリを指定する必要はありません。

次に例を示します:

      /vol2/EssbaseServer 10M
   

ボリューム・サイズは、そのボリュームに割り当てられた最大スペース(KB)です。デフォルト値は無制限であり、Essbaseによってそのボリューム上の使用可能なすべてのスペースが使用されます。

ストレージを制御するためのボリュームの指定例の確認

Essbaseファイルのために、ボリュームE上で最大20GB、ボリュームF上で最大25GB、ボリュームG上で最大25GBを使用するとします。2GBのデフォルトのファイル・サイズ制限を使用しています。データをロードすると、EssbaseによってボリュームE上に最大20GBが保管されます。データベースのサイズが20GBを超えると、EssbaseによってボリュームF上に次の25GBが保管され、以降も同様に処理されます。

表154は各ディスク・ボリュームに関する情報の例を示しています。

表 154. ディスク・ボリューム情報

ディスク・ボリューム

パーティション・サイズ

ファイル・タイプ

ファイル・サイズ

E

20971520K

インデックス+データ

20971520K

F

26214400K

インデックス+データ

20971520K

G

26214400K

インデックス+データ

20971520K

データ圧縮

Essbaseでは、ディスク上に保管されているデータ・ブロックを圧縮するかどうか、さらにはどの圧縮方式を使用するかを選択できます。Essbaseでは、データ圧縮が使用可能になっていると、データ・ブロックがディスクに書き込まれるときにそれらのデータ・ブロックが圧縮されます。圧縮データ・ブロックがデータ・キャッシュにスワップインされるときに、Essbaseによって、そのブロック(空のセルを含む)が完全に展開されます。

一般には、データ圧縮によってストレージの使用が最適化されます。圧縮率の統計を確認することによって、圧縮効率をチェックできます。圧縮率の確認を参照してください。

Essbaseには、データ圧縮のためのいくつかのオプションが用意されています:

  • ビットマップ圧縮(デフォルト)

    Essbaseにより、非欠落値のみが保管され、ビットマップ方式が使用されます。

  • ランレングス符号化(RLE)

    Essbaseによって、ゼロおよび#MISSING値を含む、反復的な、連続する値が圧縮されます。

  • ZLIB圧縮

    Essbaseにより、圧縮されている実際のデータに基づいてデータ辞書が構築されます。

  • インデックス値ペア圧縮

    Essbaseでは、ブロックの密度が3%未満の場合にこの圧縮が適用されます。

  • 圧縮しない

    Essbaseで、データ・ブロックがディスクに書き込まれるときにそれらのデータ・ブロックが圧縮されません。

Essbaseでは、データ・ブロックがディスクに書き込まれるときに圧縮されるため、同じデータ・ファイル内にビットマップ、RLEおよび非圧縮データ・ブロックが共存できます。次のルールに注意してください:

  • どの圧縮方式を使用した場合でも、Essbaseでは圧縮したデータ・ブロックは、データ・キャッシュに取り込まれるときにフル・サイズに展開されます。

  • Essbaseによりディスク上にブロックが保管されるとき、Essbaseでは、データ・キャッシュに取り込まれたときに圧縮されていたかどうかにかかわらず各ブロックが同様に処理されます。いずれの場合も、Essbaseでは、指定された圧縮タイプ(「圧縮しない」が指定されている場合の圧縮なしを含む)に従ってブロックを圧縮します。

  • 圧縮が使用不可になっている場合は、Essbaseによって、完全に展開されたブロックがディスクに書き込まれます。

ブロックの密度が非常に高く(90%以上)、連続した繰返しデータ値がほとんどない場合は、データ圧縮を使用不可にした方がよいこともあります。このような状況では、圧縮を使用可能にするとリソースが不必要に消費されます。

ビットマップ・データ圧縮

データ・ブロックが圧縮されていない場合、Essbaseでは、どの非欠落セル(データ値が存在するセル)の保管にも8バイトが使用されます。また、ブロックが圧縮されているかどうかにかかわらず、Essbaseはブロックごとに72バイトのブロック・ヘッダーを使用します。

ビットマップ圧縮では、Essbaseはビットマップを使用してデータ・セルを表し、ビットマップ、ブロック・ヘッダーおよびその他の制御情報のみを保管します。ビットマップでは、セル値が欠落しているか("0")、欠落していないか("1")にかかわらず、データ・ブロック内のセルごとに1ビット("1"または"0"と表記)を使用します。したがって、ビットマップ方式ではデータ圧縮のために固定のオーバーヘッドが発生します。

ビットマップ圧縮を使用している場合は、Essbaseによって非欠落値のみが保管され、繰返し値や0は圧縮されません(RLEデータ圧縮で説明されているRLE圧縮と対照的)。Essbaseでは、データ・キャッシュにデータ・ブロックが配置されるとき、欠落している値がビットマップを使用して再作成され、データ・ブロックが完全に展開されます。

次に示す例は圧縮されていないデータ・ブロックの一部で、8つのセル(1番目の行がセル1から4、2番目の行がセル5から8)があります。1番目の行のデータ値は25、#MISSING、#MISSINGおよび#MISSINGです。2番目の行のデータ値は#MISSING、16、7および#MISSINGです。

      Uncompressed data block

25         #MISSING   #MISSING   #MISSING
#MISSING   16         7          #MISSING
   

データ・ブロックがメモリー内で完全に展開される場合、Essbaseは64バイト(8バイト* 8セル)を使用します。データが圧縮されずにディスク上に保管される場合、Essbaseは24バイト(8バイト*データのある3セル - つまりセル1、6および7)を使用します。

データが圧縮されてディスク上に保管される場合、Essbaseは1バイト(1ビット* 8セル、8ビット= 1バイト)を使用してビットマップを保管します。次に示すのは、前述した圧縮されていないデータ・ブロックのビットマップの例です:

      Bitmap of compressed data block

1          0          0          0
0          1          1          0
   

ほとんどの場合、ビットマップ圧縮ではディスク・スペースをより効率的に節約できます。ただし、これはデータの構成に大きく依存しています。

RLEデータ圧縮

ランレングス符号化(RLE)圧縮方式を使用している場合は、Essbaseによって、連続した繰返し値、つまり、連続して3回以上繰り返される任意の値(0を含む)が圧縮されます。Essbaseによって、各繰返し値と、連続して繰り返される回数が追跡されます。

RLE圧縮では、Essbaseは3つ以上の連続した繰返しセルのセットに対する合計24バイトについて、8バイト、プラス16バイトの繰返し係数を使用します。繰り返されていない、または2回だけ繰り返されている値の場合、Essbaseは各値に対して8バイトを使用します。

次に示すデータ・ブロックの例では、Essbaseは、1番目の行の3つの連続した#MISSING値(セル2、3および4)と、2番目の行の一番左側の#MISSING値(セル5)を繰返し値として想定します。2番目の行の一番右側の#MISSING値(セル8)は繰返し値ではありません。この値は、(それぞれ16および7の)データ値を持つセル6および7によって、セル5の#MISSING値から離されているためです。

      Data values in data block

25         #MISSING   #MISSING   #MISSING
#MISSING   16         7          #MISSING
   

データ・ブロックがメモリー内で完全に展開される場合、Essbaseは64バイト(8バイト* 8セル)を使用します。データが圧縮されずにディスク上に保管される場合、Essbaseは24バイト(8バイト*データのある3セル - つまりセル1、6および7)を使用します。

データが圧縮されてディスク上に保管される場合、Essbaseは56バイトを使用します:

  • セル1 - 8バイト

  • セル2から5 - 24バイト(8バイト+ 16バイト)

  • セル6 - 8バイト

  • セル7 - 8バイト

  • セル8 - 8バイト

また、ブロックが圧縮されているかどうかにかかわらず、Essbaseはブロックごとに72バイトのブロック・ヘッダーを使用します。

ZLIB圧縮

この方法は、PNG、Zip、gzipなどのパッケージで使用されます。計算およびデータ・ロードは、バッファI/OとZLIB圧縮を使用するより、直接I/OとZLIB圧縮を使用した方が高速です。データ・ストレージが最大の制約要因である場合はZLIBを使用しますが、状況によっては、データ・ロードがビットマップ圧縮より最大10%低速になる可能性があることに注意してください。ただし、ZLIB圧縮を使用すると、データベースのサイズは一般に大幅に小さくなります。

ビットマップ圧縮では、欠けている値を追跡するためにアルゴリズムが使用され、他のタイプのデータとのやり取りがありませんが、ZLIB圧縮では、圧縮されている実際のデータ(欠落しているすべての値を含む)に基づいてデータ辞書が構築されます。そのため、極端に高密度のデータの場合は、ZLIB圧縮によってビットマップ圧縮より高い圧縮率が得られます。ただし、ZLIBアルゴリズムの効果は圧縮されている実際のデータに(ビットのレベルで)依存するため、どのような場合にZLIB圧縮によってビットマップ圧縮より高い圧縮率が得られるかに関する一般的なガイドラインを密度のみに基づいて示すことはできません。他の圧縮方式とは異なり、節約できるストレージ・スペースは、欠けているセルの数や、等しい値を持つ連続したセルの数にはほとんど、またはまったく関係しません。一般に、ビットマップ圧縮またはRLE圧縮と比較して、ZLIBの圧縮率はデータの密度または異種性が高ければ高いほど向上します。ただし、状況によっては、ZLIBによってビットマップ圧縮またはRLE圧縮を使用した場合より優れた結果が得られない可能性があります。代表的なデータ・サンプルを使用してテストすることをお薦めします。

ZLIBで得られる可能性のあるストレージ削減を見積るには、通常の圧縮手法(ビットマップまたはRLE)を使用して実際のデータの少量のサンプリングを含む小さなデータベースを作成し、Essbaseサーバーをシャット・ダウンします。作成されたデータ・ファイルのサイズに注目してください。次に、サンプル・データベース内のデータを消去し、圧縮設定をZLIBに変更して、同じサンプル・データを再ロードしてから、Essbaseサーバーを再度シャット・ダウンします。ここでは、使用されているストレージの違いに注目します。また、小さなサンプル・データベースを使用して、計算またはデータ・ロード速度の変化を見積ることもできます。

インデックス値ペア圧縮

インデックス値ペアは、ブロックがきわめて疎の状態にある、ブロック・サイズの大きいデータベースの圧縮に対応しています。この圧縮アルゴリズムをユーザーが選択することはできませんが、該当する場合は常に、データベースによって自動的に使用されます。ただし、ユーザーは、Administration Servicesを使用して、圧縮タイプ(なし、ビットマップ、RLE、ZLIB)を選択する必要があります。

表155は、ユーザーが選択できる使用可能な圧縮タイプと、Essbaseによって評価および適用される圧縮タイプを示しています。

表 155. インデックス値ペア圧縮

選択された圧縮タイプ

評価された圧縮タイプ

なし

なし

ビットマップ

ビットマップ、インデックス値ペア

RLE

RLE、ビットマップ、インデックス値ペア

ZLIB

ZLIB

たとえば、ユーザーがRLEを選択すると、Essbaseで各ブロックを確認して、RLE、ビットマップまたはインデックス値ペアのどの圧縮タイプで最も高い圧縮率が得られるかが評価されます。ユーザーがZLIBを選択した場合、適用される圧縮タイプはZLIBのみになります。

使用する圧縮タイプの決定

圧縮の設定は、ビットマップ(デフォルト)、RLE、ZLIBおよび圧縮なしの4つから選択できます。

ほとんどの場合、設定の選択について心配する必要はありません。通常は、ビットマップ圧縮により、高速なパフォーマンスと小さいデータ・ファイルという最適な組合せが得られます。ただし、これはデータの構成に大きく依存しています。

データ圧縮は、CPUを集中的に使用します。圧縮設定を選択する場合は、計算のコストと、I/Oのコストおよびディスク・スペースのコストの間のトレードオフを考慮してください。

一般に、特定のブロックに関して繰返しの非欠落データ・セルが多数あり、その値が同じである場合は、ビットマップの設定よりRLEの設定を使用した方がデータベースの圧縮率は高くなります。RLE圧縮を使用すると、ビットマップ圧縮を使用した場合より計算のコストは高くなります。ただし、RLE圧縮を使用してデータベースが大幅に圧縮される場合は、I/Oコストの低下によってパフォーマンスが向上する可能性があります。

ZLIB圧縮を使用した場合、通常はデータベースが圧縮されますが、常にそうなるとは限りません。ZLIB圧縮を使用すると、CPU処理が大幅に増加します。ほとんどのデータベースでは、この追加の処理によって、ブロック・サイズ削減の利点が打ち消されます。ただし、ZLIB圧縮を使用してデータベースが大幅に圧縮される場合は、I/Oコストの低下によってパフォーマンスが向上する可能性があります。

「なし」の圧縮設定では、ビットマップ圧縮と比較して、データベースのディスク使用量は削減されません。実際、ビットマップ圧縮はきわめて高速であるため、圧縮なしではデータベースのパフォーマンス向上に関して違いが出ない場合があります。

データベースはそれぞれ固有であり、ここで説明した内容は圧縮タイプの一般的な特性であることに注意してください。デフォルトのビットマップ圧縮はほとんどのデータベースに適していますが、個々のデータベースにとっての最適な圧縮設定を決定するための最善の方法は、各設定を試してみることです。

データ圧縮の設定の変更

データ圧縮設定への変更は、Essbaseによりデータ・ブロックがディスクに書き込まれるときにただちに有効になります。すでにディスク上にあるブロックに対して、Essbaseにより圧縮方式が変更されたり、圧縮が使用可能または使用不可になったりすることはありません。すでにディスク上にあるブロックのデータ圧縮設定を変更した場合、Essbaseでは、Essbaseの次回のブロックへのアクセス、更新および保管時に新しい圧縮方式が使用されます。

  現在の設定を表示または変更するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

データ圧縮方式の選択

Oracle Essbase Administration Services Online Help

MaxL

alter database

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

ESSCMD

データ圧縮を使用可能または使用不可にする場合: SETDBSTATE

または:

SETDBSTATEITEM 14

データ圧縮のタイプを設定する場合: SETDBSTATEITEM 15

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

SETDBSTATEITEMの使用例

  データ圧縮を使用可能または使用不可にするには、ESSCMDでSETDBSTATEITEM 14と入力し、プロンプトに従うか、またはコマンド・ラインで必要な値を入力します。

コマンドラインで指定しない場合、ESSCMDから次の値を求めるプロンプトが表示されます:

  • ディスク上のデータ圧縮-Y (はい、デフォルト)またはN (いいえ)を入力します。

  • データ圧縮のタイプ。1 (ランレングス符号化)または2 (ビットマップ、デフォルト)を入力します。

  データ圧縮のタイプを指定するには、ESSCMDでSETDBSTATEITEM 15と入力してプロンプトに従うか、またはコマンド・ラインで必要な値を指定します。ESSCMDにより、「1」(ランレングス符号化)または「2」(ビットマップ、デフォルト)の値を入力するよう求められます。

次の例では、ビットマップ圧縮が使用可能になります:

      SETDBSTATEITEM 14 "SAMPLE" "BASIC" "Y" "2"
   

この構文の詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。

圧縮率の確認

圧縮率は、有効になっている圧縮タイプには関係なく、圧縮されたブロック・サイズ(オーバーヘッドを含む)と圧縮されていないブロック・サイズの比率を表します。オーバーヘッドとは、圧縮/展開を管理するメカニズムに必要な領域のことです。

  圧縮率を確認するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

圧縮率の確認

Oracle Essbase Administration Services Online Help

ESSCMD

GETDBSTATS

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

注:

この数値が大きいほど、圧縮率は高くなります。圧縮率は、ブロックによって大きく変動することがあります。

データ・ブロック・サイズ

データ・ブロック・サイズは、密次元の特定の組合せにおけるデータ量によって決まります。たとえば、データベース内の1つ以上の次元の密または疎構成を変更すると、データ・ブロック・サイズが変わります。データ・ブロック・サイズは、8nバイトです。ここで、nは、密次元のその組合せに対して存在するセルの数です。

注:

最適なサイズの範囲は、8KBから100KBまでです。

データ・ブロックのサイズの判定については、展開済データ・ブロックのサイズを参照してください。

  データベースのブロック・サイズを表示するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

データ・ブロック統計の確認

Oracle Essbase Administration Services Online Help

ESSCMD

GETDBSTATS

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