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

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

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

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

  • データベース文字セットはUnicode AL32UTF8です。詳細については、Choose a Character Set for 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プロシージャを使用できます。ローカル・ファイル・システムには直接アクセスできません。

データ・ウェアハウス・ワークロードでのパラレル実行:

  • 並列処理は、データベース・サービスによって決定されます。詳細は、「Autonomous Databaseのデータベース・サービス名」を参照してください。各データベース・サービスでのパラレル化サポートの詳細。

  • セッションでパラレルDML操作を無効にする場合は、次のコマンドを使用します:

    ALTER SESSION DISABLE PARALLEL DML;

    パラレルDML操作の詳細は、『VLDB and Partitioning Guide』を参照してください。

データ・ウェアハウス・ワークロードの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で圧縮を使用するように表のデフォルト属性を変更することはできません。

  • データを移動してデータを圧縮するパーティション・メンテナンス操作は実行できません。たとえば、圧縮を適用しようとする場合、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. USER_TABLESALL_TABLESまたはDBA_TABLESのいずれかのビューを使用して、表のSTAGINGプロパティを確認できます。

    これらのビューでは、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を使用して表を変更した後、その表を削除すると、その表はリサイクル・ビンに配置されます。