33 DBMS_AUTO_CLUSTERING

DBMS_AUTO_CLUSTERINGパッケージには、問合せパフォーマンスを高めるためにクラスタ化スキームおよびゾーン・マップ・スキームを推奨するサブプログラムのコレクションが含まれています。

この章のトピックは、次のとおりです:

33.1 DBMS_AUTO_CLUSTERINGの概要

DBMS_AUTO_CLUSTERINGパッケージは、クラスタ化する表やクラスタ化スキームなどのクラスタ化の推奨事項を生成します。さらに、クラスタ化の推奨事項の影響を検証し、クラスタ化の推奨事項を実装します。

33.2 DBMS_AUTO_CLUSTERINGサブプログラムの要約

この表は、DBMS_AUTO_CLUSTERINGのサブプログラムと説明を示しています。

表33-1 DBMS_AUTO_CLUSTERINGパッケージのサブプログラム

サブプログラム 説明
CONFIGUREプロシージャ

自動クラスタ化に関連する設定を構成します。

RECOMMEND_CLUSTERING_METHODファンクション

推奨を生成します。推奨基準が満たされていない場合、推奨は返されません。生成された推奨は、DBA_AUTO_CLUSTERING_RECOMMENDATIONビューに格納されます。このファンクションは、推奨が生成された場合は推奨IDを返し、推奨が生成されていない場合はNULLを返します。

VERIFY_RECOMMENDATIONプロシージャ

クラスタ化の推奨事項のパフォーマンスを検証します。入力引数に基づいて、推奨事項の生成に使用された情報を取得します。このプロシージャでは、推奨タスクに使用された元の表とSQLチューニング・セットを見つけます。表を作成して、その表にクラスタ化の推奨事項を適用します。クラスタ表と元の表に対してワークロードを実行し、パフォーマンス上の利点に関する詳細なレポートを返します。検証結果は、ACCEPTEDまたはREJECTEDになります。

APPLY_RECOMMENDATIONプロシージャ 推奨(recommendation_idで識別)を使用して入力表をクラスタ化します。増分列の値は、完全クラスタ化を使用するか、増分クラスタ化を使用するかを指定します。
GET_RECOMMENDATIONファンクション

指定の入力に対応する最新の推奨IDを返します。

REPORT_ACTIVITYファンクション

特定の期間中にデータベースで実行された自動クラスタ化操作のレポートを返します。

REPORT_LAST_ACTIVITYファンクション データベースで最後に実行された自動索引付け操作のレポートを返します。

33.2.1 CONFIGUREプロシージャ

このプロシージャは、自動クラスタ化およびゾーン・マップに関連する設定を構成します。

構文

DBMS_AUTO_CLUSTERING.CONFIGURE (
     parameter_name      IN VARCHAR2, 
     parameter_value     IN VARCHAR2,
     allow               IN BOOLEAN DEFAULT TRUE);

パラメータ

表33-2 CONFIGUREプロシージャのパラメータ

パラメータ 説明

parameter_name

自動クラスタ化の構成設定。次の値のうち1つを取ることができます。

  • AUTO_CLUSTERING_SCHEMA: 自動クラスタ化の推奨を含めるか除外するスキーマ。その動作の制御には、allowパラメータを使用します。

    自動クラスタ化プロセスでは、2つのスキーマ・リスト(包含リスト除外リスト)を管理します。包含リストには、クラスタ表を使用できるスキーマが含まれています。除外リストには、クラスタ表を使用できないスキーマが含まれています。データベースで自動クラスタ化が有効になっている場合、両方のリストは最初は空で、データベース内のすべてのスキーマは、データベース内のすべてのモジュールで自動クラスタ化を使用できます。

    包含リストに1つ以上のモジュールが含まれている場合は、包含リストに登録されているモジュールのみが自動クラスタ化を使用できます。

    包含リストが空で、除外リストに1つ以上のモジュールが含まれている場合は、除外リストに登録されているモジュールを除くすべてのモジュールで自動クラスタ化を使用できます。

    両方のリスト(包含リストと除外リスト)に1つ以上のモジュールが含まれている場合は、除外リストに登録されているモジュールを除くすべてのモジュールで自動クラスタ化を使用できます。

  • AUTO_CLUSTERING_REPORT_RETENTION: 自動クラスタ化のログが削除されるまでデータベースで保持する日数。こうしたログに基づいて自動クラスタ化レポートが生成されるため、AUTO_CLUSTERING_REPORT_RETENTIONに指定した値を超える期間の自動クラスタ化レポートは生成できません。デフォルト値は31日脚注1です。
  • AUTO_CLUSTERING_WORKLOAD_WINDOW: 自動クラスタ化がAutoSTSの最新スナップショットからの問合せを調査して推奨する最大時間数。たとえば、パラメータが24の場合、自動クラスタ化ではAutoSTSの過去24時間の文を調べます。

    有効な値は、1から8760 (24*36)までの整数値です。デフォルト値は24です。

  • AUTO_CLUSTERING_WORKLOAD_MIN_TIME: 自動クラスタ化の推奨の対象となる問合せの最小データベース時間(秒)。このしきい値を下回る問合せは、推奨の対象となりません。

    有効な値は、0から3600 (1時間)までの整数値です。デフォルト値は120 (2分)です。

parameter_value

parameter_nameで指定した構成設定の値。

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

allow

このパラメータはAUTO_CLUSTERING_SCHEMAにのみ適用され、有効な値は次のとおりです。
  • TRUE: 指定したモジュールを包含リストに追加します。
  • FALSE: 指定したモジュールを除外リストに追加します。
  • NULL: 指定したモジュールを現在追加されているリストから削除します。

脚注1 自動パーティション化のデフォルト値は90日、自動索引付けのデフォルト値は373日です。

33.2.2 RECOMMEND_CLUSTERING_METHODファンクション

このファンクションは、推奨を生成します。推奨基準が満たされていない場合、推奨は返されません。生成された推奨事項は、DBA_AUTO_CLUSTERING_RECOMMENDATIONビューから取得できます。このファンクションは、推奨が生成された場合は推奨IDを返し、推奨が生成されていない場合はNULLを返します。

構文

DBMS_AUTO_CLUSTERING.RECOMMEND_CLUSTERING_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, 
     report_type       IN  VARCHAR2 DEFAULT ‘TEXT’,
     report_section    IN  VARCHAR2 DEFAULT ‘SUMMARY’,
     report_level      IN  VARCHAR2 DEFAULT ‘TYPICAL’,
     verification      IN  BOOLEAN  DEFAULT  TRUE)
RETURN RAW; 

パラメータ

表33-3 RECOMMEND_CLUSTERING_METHODプロシージャのパラメータ

パラメータ 説明

sqlset_owner

考慮するワークロードを表すSQLチューニング・セットの所有者。デフォルトはSYSです。

sqlset_name

考慮するワークロードを表すSQLチューニング・セットの名前。デフォルトはSYS_AUTO_STSです。

table_ownertable_name

推奨事項を生成する表の名前。

report_type

推奨アクティビティのレポートを生成するためのタイプ・パラメータ。デフォルトはTEXTです。

report_section

推奨されるクラスタ化メソッドの永続レポートの生成に使用されるセクション・パラメータ。デフォルトはSUMMARYです。

report_level

推奨されるクラスタ化メソッドのレポートの生成に使用されるレベル・パラメータ。デフォルトはTYPICALです。

verification

検証パラメータは、生成された推奨がRECOMMEND_CLUSTERING_METHODの一部として検証されるかどうかを示します。デフォルトはTRUEです。これは、生成された推奨事項が、ワークロードに基づいてどのように実行されるかを確認するために検証されることを意味します。FALSEに設定されている場合、推奨事項のみが生成され、ワークロードおよびスキーマに対するそれらのパフォーマンスは検証されません。

33.2.3 VERIFY_RECOMMENDATIONプロシージャ

このプロシージャでは、クラスタ化の推奨事項のパフォーマンスを検証します。入力引数に基づいて、推奨事項の生成に使用された情報を取得します。このプロシージャでは、推奨事項IDで識別される推奨事項タスクに使用された元の表とSQLチューニング・セットを検索します。表を作成して、その表にクラスタ化の推奨事項を適用します。クラスタ表と元の表に対してワークロードを実行し、パフォーマンス上の利点に関する詳細なレポートを返します。検証結果は、ACCEPTEDまたはREJECTEDになります。

構文

DBMS_AUTO_CLUSTERING.VERIFY_RECOMMENDATION (
     recommendation_id      IN  RAW,    
     table_owner       	    IN  VARCHAR2 DEFAULT NULL,    
     table_name             IN  VARCHAR2 DEFAULT NULL)
RETURN CLOB;  

パラメータ

表33-4 VERIFY_RECOMMENDATIONプロシージャのパラメータ

パラメータ 説明

recommendation_id

指定したワークロードの複数の表について推奨を生成する、RECOMMEND_CLUSTERING_METHODファンクションから返される推奨ID。

table_owner

指定した推奨ID内の自動クラスタ化の候補として検証する所有者の名前。

table_name

指定した推奨ID内の自動クラスタ化の候補として検証する表の名前。

33.2.4 APPLY_RECOMMENDATIONプロシージャ

このプロシージャは、推奨(recommendation_idで識別)を使用して入力表をクラスタ化します。増分列の値は、完全クラスタ化を使用するか、増分クラスタ化を使用するかを指定します。完全クラスタ化では、推奨のクラスタ化句の適用後に入力表をクラスタ化し、alter table move onlineを実行して表内のデータをクラスタ化します。増分クラスタリングは推奨のクラスタ化句を適用します。また、自動データ圧縮(ADO)バックグラウンドはバックグラウンドでデータをクラスタ化します。

構文

DBMS_AUTO_CLUSTERING.APPLY_RECOMMENDATION(
    recommendation_id IN RAW DEFAULT NULL,
    table_name        IN VARCHAR2 DEFAULT NULL,
    table_owner       IN VARCHAR2 DEFAULT NULL,
    clustering_ddl    IN VARCHAR2 DEFAULT NULL,
    zonemap_ddl       IN VARCHAR2 DEFAULT NULL,
    apply_mode        IN VARCHAR2 DEFAULT 'FULL',
    zonemap_creation  IN BOOLEAN DEFAULT TRUE);

パラメータ

表33-5 APPLY_RECOMMENDATIONプロシージャのパラメータ

パラメータ 説明
recommendation_id

指定された表のクラスタ化を推奨するタスクID。指定しない場合、最後のタスクで行われたクラスタ化の推奨が使用されます。

table_name 入力表の名前。
table_owner 入力表の所有者。
clustering_ddl ターゲット表に追加するクラスタ化DDL。table_ownertable_nameは、指定されたDDLから抽出された場合はNULLです。
zonemap_ddl ターゲット表で使用するゾーンマップDDL。table_ownertable_nameは、指定されたDDLから抽出された場合はNULLです。
apply_mode

実行するクラスタ化を指定するモード:

  • FULL: オンライン再定義を使用した完全クラスタ化
  • INCREMENTAL: バックグラウンド増分クラスタ化
zonemap_creation この値がFALSEに設定されていると、ゾーンマップは作成されません。クラスタ化句のみを適用します。デフォルトはTRUEです。

33.2.5 GET_RECOMMENDATIONファンクション

このファンクションは、指定の入力に対応する最新の推奨IDを返します。

構文

DBMS_AUTO_CLUSTERING.GET_RECOMMENDATION (
     table_owner        IN  VARCHAR2,    
     table_name         IN  VARCHAR2, 
RETURN RAW;

パラメータ

表33-6 GET_RECOMMENDATIONファンクションのパラメータ

パラメータ 説明

table_owner

クラスタ化する表の所有者

table_name

クラスタ化する表の名前

33.2.6 REPORT ACTIVITYファンクション

このファンクションは、特定の期間中にデータベースで実行された自動クラスタ化操作のレポートを返します。

構文

DBMS_AUTO_CLUSTERING.REPORT_ACTIVITY (
     activity_start IN  TIMESTAMP WITH TIME ZONE DEFAULT SYSTIMESTAMP-1,       
     activity_end   IN  TIMESTAMP WITH TIME ZONE DEFAULT SYSTIMESTAMP,    
     type           IN  VARCHAR2 DEFAULT 'TEXT',    
     section        IN  VARCHAR2 DEFAULT 'ALL',    
     level          IN  VARCHAR2 DEFAULT 'TYPICAL') 
RETURN CLOB;

パラメータ

表33-7 REPORT ACTIVITYファンクションのパラメータ

パラメータ 説明

activity_start

自動クラスタ化操作がレポートの対象になる開始時間。値を指定しない場合、またはNULLを指定すると、実行された最後の自動クラスタ化操作についてレポートが生成されます。

activity_end

自動クラスタ化操作がレポートの対象になる終了時間。値を指定しない場合、またはNULLを指定すると、実行された最後の自動クラスタ化操作についてレポートが生成されます。

type

レポートの形式。次の値のうち1つを取ることができます。
  • TEXT
  • HTML
  • XML
デフォルト値はTEXTです
section レポートに含めるセクション。次の値の組合せを指定できます。
  • SUMMARY: レポートにサマリーの詳細セクションのみを含めます。
  • ALL: レポートにすべてのセクションを含めます。これはデフォルト値です。
level レポートに含める自動クラスタ化情報のレベル。次の値のうち1つを取ることができます。
  • BASIC: レポートに基本的な自動クラスタ化情報を含めます。
  • TYPICAL: レポートに一般的な自動クラスタ化情報を含めます。これはデフォルト値です。
  • ALL: レポートにすべての自動クラスタ化情報を含めます。

33.2.7 REPORT_LAST_ACTIVITYファンクション

このファンクションは、データベースで最後に実行された自動クラスタ化操作のレポートを返します。

構文

DBMS_AUTO_CLUSTERING.REPORT_LAST_ACTIVITY (
     type             IN  VARCHAR2 DEFAULT 'TEXT',    
     section          IN  VARCHAR2 DEFAULT 'ALL',    
     level            IN  VARCHAR2 DEFAULT 'TYPICAL') 
RETURN CLOB;

パラメータ

表33-8 REPORT_LAST_ACTIVITYファンクションのパラメータ

パラメータ 説明

type

レポートの形式。次の値のうち1つを取ることができます。

  • TEXT

  • HTML

  • XML

デフォルト値は、TEXTです。

section

レポートに含めるセクション。次の値の組合せを指定できます。

  • SUMMARY: レポートにサマリーの詳細セクションのみを含めます。

  • ALL: レポートにすべてのセクションを含めます。これはデフォルト値です。

level

レポートに含める自動クラスタ化情報のレベル。次の値のうち1つを取ることができます。

  • BASIC: レポートに基本的な自動クラスタ化情報を含めます。

  • TYPICAL: レポートに一般的な自動クラスタ化情報を含めます。これはデフォルト値です。

  • ALL: レポートにすべての自動クラスタ化情報を含めます。