DBMS_AUTO_PARTITIONパッケージ

DBMS_AUTO_PARTITIONパッケージは、スキーマおよび表の自動パーティション化を管理するための管理ルーチンを提供します。

CONFIGUREプロシージャ

この手順では、Autonomous Databaseでの自動パーティション化の設定を構成します。

構文

DBMS_AUTO_PARTITION.CONFIGURE (
     PARAMETER_NAME     IN VARCHAR2,
     PARAMETER_VALUE    IN VARCHAR2,
     ALLOW              IN BOOLEAN    DEFAULT TRUE);

パラメータ

パラメータ 摘要

PARAMETER_NAME

更新する自動パーティション化構成パラメータの名前。次のいずれかの値を指定できます。

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODEは、自動パーティション化操作のモードを設定し、次のいずれかの値を持ちます。
  • IMPLEMENT: このモードでは、自動パーティション化によってレポートが生成され、推奨されるパーティション・メソッドを使用して既存の表が変更されます。
  • REPORT ONLY: このモードでは、自動パーティション化によってレポートが生成されますが、既存の表は変更されません。これはデフォルト値です。
  • OFF: このモードでは、自動パーティション化による推奨事項の生成、検討または適用は行われません。既存の自動パーティション表は無効化されません。
AUTO_PARTITION_SCHEMAは、自動パーティション化の使用を含めるか除外するようにスキーマを設定します。動作の制御には、allowパラメータを使用します。自動パーティション化プロセスでは、2つのスキーマ・リストが管理されます。
  1. 包含リストは、自動パーティション化を使用できるスキーマのリストで、大/小文字が区別されます。
  2. 除外リストは、自動パーティション化を使用できないスキーマのリストで、大/小文字が区別されます。

最初は両方のリストが空で、データベース内のすべてのスキーマで自動パーティション化を使用できます。包含リストに1つ以上のスキーマが含まれている場合は、包含リストにリストされたスキーマのみが自動パーティション化を使用できます。包含リストが空で、除外リストに1つ以上のスキーマが含まれている場合、すべてのスキーマでは、除外リストにリストされているスキーマを除き、自動パーティション化が使用されます。両方のリストに1つ以上のスキーマが含まれている場合、除外リストにリストされているスキーマを除き、すべてのスキーマで自動パーティション化が使用されます。AUTO_PARTITION_TABLEは、自動パーティション化の使用を含めたり除外する表を設定します。パラメータ値は<schema_name>.<table_name>です。自動パーティション化プロセスでは、2つの表リストが管理されます。

  1. 包含リストは、自動パーティション化を使用できる、大/小文字が区別される表のリストです。
  2. 除外リストは、自動パーティション化を使用できない、大/小文字が区別される表のリストです。

最初は、両方のリストが空であり、データベース内のすべての表で自動パーティション化を使用できます。包含リストに1つ以上の表が含まれている場合、自動パーティション化を使用できるのは、包含リストにリストされている表のみです。包含リストが空で、除外リストに1つ以上の表が含まれている場合、すべての表では、除外リストにリストされている表を除き、自動パーティション化が使用されます。両方のリストに1つ以上の表が含まれている場合、除外リストにリストされている表を除き、すべての表で自動パーティション化が使用されます。表がどちらのリストにもない場合、スキーマの包含リストおよび除外リストによって、表が自動パーティション化の候補表かどうかが決定されます。スキーマ・レベル・リストと表レベル・リストの間に競合がある場合は、表レベル・リストが優先されます。

包含リストおよび除外リストからすべての表を削除するには、次を実行します。
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTIONは、自動パーティション化のログが削除される前にデータベースで保持する日数を設定します。この値に指定された値を超える期間については、自動パーティション化レポートを生成できません。デフォルト値は90日です。

PARAMETER_VALUE

parameter_nameで指定した構成設定の値。NULLに設定すると、構成設定にデフォルト値が割り当てられます。

ALLOW

次のいずれかの値を持つAUTO_PARTITION_SCHEMAまたはAUTO_PARTITION_TABLE構成設定にのみ適用できます。
  • TRUEは、指定したスキーマまたは表を包含リストに追加します。
  • FALSEは、指定されたスキーマまたは表を除外リストから削除します。
  • NULLは、現在割り当てられているリストから、指定されたスキーマまたは表を削除します。
包含リストおよび除外リストの詳細は、AUTO_PARTITION_SCHEMAおよびAUTO_PARTITION_TABLE構成設定の説明を参照してください。

使用上のノート

  • 次のSQLを使用して、自動パーティション化構成の現在の設定を確認できます。

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • 自動索引付けとは異なり、自動パーティション化がバックグラウンド・タスクとして定期的に実行されることはありません。自動パーティション化が実行されるのは、DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHODファンクションを使用して起動した場合のみです。

VALIDATE_CANDIDATE_TABLEファンクション

このファンクションは、指定された表がAutonomous Databaseでの自動パーティション化の有効な候補かどうかをチェックします。

有効な候補者

有効な候補になるには、次のテストに合格する必要があります。
  • 表は、AUTO_PARTITION_SCHEMAおよびAUTO_PARTITION_TABLE構成パラメータで指定された包含テストおよび除外テストに合格します。
  • 表が存在し、最新の統計があります。
  • 表は64 GB以上です。
  • 表には、表をスキャンしたSQLチューニング・セットに5つ以上の問合せがあります。
  • 表にLONGデータ型の列が含まれていません。
  • 表は手動でパーティション化されていません。
  • 表は、外部表、内部/外部ハイブリッド表、一時表、索引編成表またはクラスタ表ではありません。
  • 表にドメイン索引またはビットマップ結合索引がありません。
  • 表は、事前キューイング、マテリアライズド・ビューまたはフラッシュバック・アーカイブ・ストレージ表ではありません。
  • 表にはネストした表や、その他の特定のオブジェクト機能はありません。
戻り値:
  • 表が自律型パーティション化の有効な候補である場合はVALID
  • 表が自律型パーティション化の有効な候補ではなく、<reason>が表が有効な候補でない理由を説明する文字列である場合、INVALID: <reason>

構文

DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
    ( SQLSET_OWNER  IN VARCHAR2   DEFAULT 'SYS',
      SQLSET_NAME   IN VARCHAR2   DEFAULT 'SYS_AUTO_STS',
      TABLE_OWNER   IN VARCHAR2,
      TABLE_NAME    IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

パラメータ 摘要

SQLSET_OWNER, SQLSET_NAME

評価するワークロードを表すSQLチューン・セットの名前。

TABLE_OWNER, TABLE_NAME

自動パーティション化の候補として検証する表の名前。

使用上のノート

  • たとえば、次のSQLを使用して、スキーマTESTのサンプル表LINEORDERの有効性をチェックできます。
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
        ( TABLE_OWNER => 'TEST',
          TABLE_NAME  => 'LINEORDER')
    FROM DUAL;
    

RECOMMEND_PARTITION_METHODファンクション

このファンクションは、推奨を適用するためにAPPLY_RECOMMENDATIONプロシージャで使用できる推奨IDを返します。または、DBA_AUTO_PARTITION_RECOMMENDATIONSビューとともに使用して、Autonomous Databaseでの自動パーティション化の推奨の詳細を取得できます。

構文

DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD
    ( SQLSET_OWNER     IN VARCHAR2   DEFAULT 'SYS',
      SQLSET_NAME      IN VARCHAR2   DEFAULT 'SYS_AUTO_STS',
      TABLE_OWNER      IN VARCHAR2   DEFAULT NULL,
      TABLE_NAME       IN VARCHAR2   DEFAULT NULL,
      TIME_LIMIT       IN INTERVAL DAY TO SECOND DEFAULT INTERVAL '1' DAY,
      REPORT_TYPE      IN VARCHAR2   DEFAULT 'TEXT',   
      REPORT_SECTION   IN VARCHAR2   DEFAULT 'SUMMARY',
      REPORT_LEVEL     IN VARCHAR2   DEFAULT 'TYPICAL')
  RETURN RAW;

パラメータ

パラメータ 摘要

SQLSET_OWNER, SQLSET_NAME

評価するワークロードを表すSQLチューン・セットの名前。

TABLE_OWNER, TABLE_NAME

自動パーティション化の候補として検証する表の名前。

TIME_LIMIT

ファンクションが推奨を生成する表(TABLE_OWNERおよびTABLE_NAMENULL)を選択すると、パーティション化する新しい候補表の検索を停止するまでにファンクションが実行される期間が制限されます。表の処理が開始されると、プロセスは終了しません。この関数がこのパラメータより長く実行されることが予想されます。このパラメータがNULLの場合、時間制限はありません。デフォルトは1日です。

REPORT_TYPE

推奨されるパーティション方法のレポートを生成するために使用されます。詳細は、REPORT_ACTIVITYファンクションを参照してください。

REPORT_SECTION

推奨されるパーティション方法の永続レポートを生成するために使用されます。詳細は、REPORT_ACTIVITYファンクションを参照してください。

REPORT_LEVEL

推奨されるパーティション方法のレポートを生成するために使用されます。詳細は、REPORT_ACTIVITYファンクションを参照してください。

使用上のノート

  • AUTO_PARTITION_MODEは、この関数によって実行されるアクションを制御します。
    • IMPLEMENT: このモードでは、自動パーティション化によってレポートが生成され、推奨されるパーティション・メソッドを使用して既存の表が変更されます。
    • REPORT ONLY: このモードでは、自動パーティション化によって生成されたレポートが生成されますが、既存の表は変更されません。これはデフォルト値です。
    • OFF: このモードでは、自動パーティション化によって、新しい推奨事項の生成、検討または適用が妨げられました。既存の自動パーティション表は無効化されません。
  • 自動索引付けとは異なり、自動パーティション化がバックグラウンド・タスクとして定期的に実行されることはありません。自動パーティション化が実行されるのは、DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHODファンクションを使用して起動した場合のみです。

戻り値

このファンクションは、推奨を適用するDBMS_AUTO_PARTITION.APPLY_RECOMMENDATIONという推奨事項IDを戻します。

  • DBMS_AUTO_PARTITION.APPLY_RECOMMENDATIONとともに使用して、推奨事項を適用します。
  • DBA_AUTO_PARTITION_RECOMMENDATIONSビューとともに使用して、推奨事項の詳細を取得します。たとえば:
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

APPLY_RECOMMENDATIONプロシージャ

このプロシージャは、Autonomous Databaseで指定された推奨事項を適用します。

構文

DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION
    ( RECOMMENDATION_ID  IN RAW,
      TABLE_OWNER        IN VARCHAR2   DEFAULT NULL,
      TABLE_NAME         IN VARCHAR2   DEFAULT NULL);

パラメータ

パラメータ 摘要

RECOMMENDATION_ID

RECOMMEND_PARTITION_METHODファンクションから返される推奨ID、またはDBA_AUTO_PARTITION_RECOMMENDATIONSビューから問い合せられた推奨ID。

TABLE_OWNER, TABLE_NAME

1つの推奨IDに複数の表に対する推奨事項がある場合、このオプション・パラメータを使用すると、パーティション化する表を制御できます。
  • パラメータがNULLの場合、指定された推奨IDで推奨されるすべての表をパーティション化します。
  • 表名が指定されている場合は、指定された表のみをパーティション化します。
  • TABLE_OWNERまたはTABLE_NAMEのいずれかがNOT NULLの場合、両方ともNOT NULLである必要があります。

使用上のノート:

AUTO_PARTITION_MODEに関係なく、RECOMMENDATION_IDに関連付けられた受け入れられる推奨事項がないか、RECOMMENDATION_IDに関連付けられたすべての受け入れられる推奨事項がすでに適用されている場合、このプロシージャはORA-20000: recommendation_id was not foundを呼び出します。最初のケースは、RECOMMENDATION_IDAUTO_PARTITION_MODE = OFFで生成された場合に適用されます。2番目のケースは、RECOMMENDATION_IDAUTO_PARTITION_MODE = IMPLEMENTで生成された場合に適用されます。

REPORT_ACTIVITYファンクション

このファンクションは、Autonomous Databaseの特定の期間中に実行された自動パーティション化操作のレポートを返します。

構文

DBMS_AUTO_PARTITION.REPORT_ACTIVITY
    ( ACTIVITY_START     IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
      ACTIVITY_END       IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
      TYPE               IN VARCHAR2                 DEFAULT 'TEXT',
      SECTION            IN VARCHAR2                 DEFAULT 'ALL',
      LEVEL              IN VARCHAR2                 DEFAULT 'TYPICAL')
RETURN CLOB;

パラメータ

パラメータ 摘要

ACTIVITY_START

開始時間の自動パーティション化操作では、レポートが使用されます。値を指定しない場合、またはNULLを指定した場合、実行された最後の自動パーティション化操作についてレポートが生成されます。

ACTIVITY_END

終了時間の自動パーティション化操作では、レポートが使用されます。値を指定しない場合、またはNULLを指定すると、実行された最後の自動パーティション化操作についてレポートが生成されます。

TYPE

次のいずれかの値を含むレポートの書式:
  • TEXT (デフォルト)
  • HTML
  • XML

SECTION

次のいずれかの値を持つ、レポートに含めるセクション:
  • SUMMARY - ワークロード・サマリーのみをレポートに含めます
  • ALL = レポートにすべてのセクションを含めます。(デフォルト)

level

次のいずれかの値を持つレポートに含める情報のレベル:
  • TYPICAL - 一般的な自動パーティション化情報をレポートに含めます(デフォルト)。
  • CHANGED - パフォーマンスが変更されたSQLのみをレポートに含めます。
  • IMPROVED - パフォーマンスが向上したSQLのみをレポートに含めます。
  • REGRESSED - パフォーマンスが低下したSQLのみをレポートに含めます。
  • UNCHANGED - パフォーマンスが変更されていないSQLのみをレポートに含めます。
  • ALL - すべての自動パーティション化情報をレポートに含めます。

使用上のノート

戻り値: 推奨事項の適用後にデータベースで実行されるワークロードのパフォーマンス分析レポート。このレポートは、推奨事項とともに永続的に保存されません。

REPORT_LAST_ACTIVITYファンクション

このファンクションは、Autonomous Databaseで実行された最新の自動パーティション化操作のレポートを返します。

構文

DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY
    ( TYPE    IN VARCHAR2 DEFAULT 'TEXT',
      SECTION IN VARCHAR2 DEFAULT 'ALL',
      LEVEL   IN VARCHAR2 DEFAULT 'TYPICAL')
RETURN CLOB;

パラメータ

パラメータ 摘要

TYPE

レポートの出力形式。詳細は、REPORT_ACTIVITYファンクションを参照してください。

SECTION

レポートに含まれるセクションは、REPORT_ACTIVITYファンクションを参照してください。

LEVEL

レポートに含まれる情報のレベルは、REPORT_ACTIVITYファンクションを参照してください。

使用上のノート

戻り値: 最新の推奨の適用後にデータベースで実行されたワークロードのパフォーマンス分析レポート。このレポートは、推奨事項とともに永続的に保存されません。