Autonomous Databaseでのデータ・ウェアハウス・ワークロード

Autonomous Databaseは、ワークロードに基づいてデータベースを構成および最適化します。

データ・ウェアハウス・ワークロードがあるデータベースの特性:

  • データベースのデフォルトのデータおよび一時表領域が自動的に構成されます。表領域の追加、削除、または変更は許可されません。Autonomous Databaseは、ストレージ・サイズに応じて、1つの表領域または複数の表領域を自動的に作成します。

  • データベース・キャラクタ・セットはUnicode AL32UTF8です。詳細は、Autonomous Databaseの文字セットの選択を参照してください。

  • 圧縮はデフォルトで有効になっています。Autonomous Databaseでは、デフォルトですべての表に対してハイブリッド列圧縮を使用します。CREATE TABLEまたはALTER TABLEコマンドで圧縮句を使用して、表に様々な圧縮方式を指定できます。

  • Oracle Database結果キャッシュは、すべてのSQL文に対してデフォルトで有効です。

データベースへのアクセス方法:

  • データベース・ノードには直接アクセスできません。「Autonomous Databaseでのディレクトリの作成および管理」で説明されているように、CREATE DIRECTORYおよびDROP DIRECTORYを使用してディレクトリを作成および削除できます。

    ファイルやオブジェクトには、DBMS_CLOUD.DELETE_FILEDBMS_CLOUD.GET_OBJECTDBMS_CLOUD.PUT_OBJECTなどのDBMS_CLOUDプロシージャを使用できます。ローカル・ファイル・システムには直接アクセスできません。

データ・ウェアハウスのワークロードを使用したパラレル実行:

データ・ウェアハウス・ワークロードでのDMLのパフォーマンスと圧縮を管理

データ・ウェアハウス・ワークロードでのAutonomous Databaseでは、デフォルトですべての表に対してハイブリッド列圧縮を使用します。これにより、DBMS_CLOUDパッケージを使用して実行されるロードなどのダイレクト・パス・ロード操作で、最高の圧縮率と最適なパフォーマンスを得ることができます。表に対してUPDATEMERGEなどのDML操作を実行する場合、これらの操作によって、影響を受ける行の圧縮率が低下し、結果として表のサイズが大きくなる可能性があります。これらの操作では、未圧縮の表に対する同じ操作と比較してパフォーマンスが低下する可能性もあります。

最適な圧縮率および最適なパフォーマンスのために、Oracleではダイレクト・パス・ロード文やCREATE TABLE AS SELECT文などのバルク操作を使用することをお薦めします。ただし、ワークロードで表の大部分に対してUPDATEMERGEなどのDML操作が頻繁に必要とされる場合、未圧縮の表としてこれらの表を作成すると、DMLパフォーマンスが向上します。たとえば、次の文では、未圧縮の表としてSALES表を作成しています。

CREATE TABLE sales (
    prod_id             NUMBER          NOT NULL,
    cust_id             NUMBER          NOT NULL,
    time_id             DATE            NOT NULL,
    channel_id          NUMBER          NOT NULL,
    promo_id            NUMBER          NOT NULL,
    quantity_sold       NUMBER(10,2)    NOT NULL,
    amount_sold         NUMBER(10,2)    NOT NULL)
NOCOMPRESS;

どの時点でも、ALTER TABLE MOVE文を使用して、表にアクセスする問合せに影響を与えることなく、これらの表を圧縮できます。たとえば、次の文で、ハイブリッド列圧縮を使用してSALES表を圧縮しています。

ALTER TABLE sales MOVE COLUMN STORE COMPRESS FOR QUERY HIGH;

データ・ウェアハウス・ワークロードのステージング表の作成

Autonomous Databaseでは、データ・ウェアハウスへのデータのロード用に最適化されたステージング表がサポートされています。

ステージング表は、STAGINGプロパティが設定された表です。これは、次の特性に適用されます。

  • データ・ロードのステージング表では、圧縮の形式は明示的にオフになり、禁止されます。コマンドALTER TABLE COMPRESSは使用できません。

  • 既存の表にSTAGINGプロパティを設定しても、既存のデータの格納には影響しませんが、将来のデータ・ロードには影響しません。

  • Autonomous Databaseでは、ステージング・プロパティが設定された表の統計に動的サンプリングが使用され、ステージング表の統計は収集されません。

  • ステージング表を削除すると、ごみ箱をバイパスして、すぐに表が削除されます。recyclebin初期化パラメータを値ONに設定すると、ごみ箱は有効になりません。

Autonomous Databaseパーティション・ステージング表の特性には、前述のものに加えて次のものが含まれます。

  • 表のすべてのパーティションおよびサブパーティションで、圧縮の形式は明示的にオフになり、許可されません。

  • ALTER TABLE MODIFY DEFAULT ATTRIBUTESでcompressを使用するように表のデフォルト属性を変更することはできません。

  • データの移動と圧縮を伴うパーティション・メンテナンス操作を実行することはできません。たとえば、圧縮を適用しようとすると、MOVE PARTITIONMERGE PARTITIONSSPLIT PARTITIONまたはSPLIT SUBPARTITIONを含むALTER TABLEは許可されません。

  • ALTER TABLE MODIFY PARTITIONを使用して表を再パーティション化して、圧縮する結果パーティションを指定することはできません。

表の作成時または既存の表の変更時に、次のようにステージング表を定義します。

  1. STAGINGプロパティを使用して表を作成します。

    たとえば:

    CREATE TABLE staging_table (col1 number, col2 varchar2(100)) FOR STAGING;
    
    CREATE TABLE part_staging_table (col1 number, col2 varchar2(100))
        PARTITION BYRANGE (col1)
              (PARTITION p1 VALUESLESS THAN (100), 
               PARTITION pmax VALUESLESS THAN (MAXVALUE)) FOR STAGING;
  2. 既存の表を変更して、STAGINGプロパティを設定します。

    たとえば:

    ALTER TABLE staging_table FOR STAGING;
  3. 表のSTAGINGプロパティは、USER_TABLESALL_TABLESまたはDBA_TABLESのいずれかのビューを使用して検証できます。

    これらのビューでは、STAGING列はステージング表のプロパティを示し、値YESSTAGING表を示し、値NOは他のすべての表に表示されます。

表を変更して、STAGINGプロパティを削除できます。たとえば:

ALTER TABLE staging_table NOT FOR STAGING;

NOT FOR STAGINGを使用して表を変更する場合は、次の点に注意してください。

  • NOT FOR STAGINGを使用して表を変更すると、圧縮属性および既存のデータは影響を受けず、明示的に表を変更して圧縮を指定するまで非圧縮のままになります。表の圧縮を変更でき、ALTER TABLE COMPRESSを使用できます。

  • NOT FOR STAGINGを使用して表を変更しても、統計収集はトリガーされません。NOT FOR STAGINGを使用して表プロパティを変更した後、統計を手動または自動で収集できます。

  • NOT FOR STAGINGを使用して表を変更した後、ごみ箱の削除を有効にすると、その表がごみ箱に置かれます。