36 DBMS_AUTO_MV
DBMS_AUTO_MV
には、自動マテリアライズド・ビューを構成するためのサブプログラムが含まれています。
この章のトピックは、次のとおりです:
36.1 DBMS_AUTO_MVの使用方法
DBMS_AUTO_MV
パッケージには、自動マテリアライズド・ビューを管理するためのファンクションおよびプロシージャが含まれています。
このパッケージの所有者はSYS
であるため、SYS
以外のユーザーにはEXECUTE
パッケージ権限が必要です。パッケージに対するEXECUTE
権限をユーザーに付与します。
36.2 DBMS_AUTO_MVサブプログラムの要約
この表は、DBMS_AUTO_MV
パッケージのサブプログラムを示し、簡単に説明しています。
表36-1 DBMS_AUTO_MVパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
CONFIGUREプロシージャ |
自動マテリアライズド・ビュー機能の様々なパラメータを有効化、無効化および構成します。 |
DROP_AUTO_MVSプロシージャ |
作成された自動マテリアライズド・ビューを削除します。このルーチンは、DBAのみが実行できます。 |
RECOMMENDファンクション |
このファンクションにより、ユーザーは、指定したSQLチューニング・セット内のSQL文について、自動マテリアライズド・ビューの推奨事項を手動で生成できます。 |
REFRESHプロシージャ |
このプロシージャにより、ユーザーは、システム内の古い自動マテリアライズド・ビューすべてを無条件に手動でリフレッシュできます。 |
REPORT_ACTIVITYファンクション |
このファンクションにより、指定した期間の自動マテリアライズド・ビューのアクティビティおよび使用状況についてレポートを生成します。レポートは、引数タイプで指定したとおりにテキスト、HTMLまたはXML形式で生成できます。 |
REPORT_LAST_ACTIVITYファンクション |
このファンクションにより、最後の自動マテリアライズド・ビューのアクティビティおよび使用状況についてレポートを生成します。レポートは、引数タイプで指定したとおりにテキスト、HTMLまたはXML形式で生成できます。 |
36.2.1 CONFIGUREプロシージャ
このプロシージャにより、自動マテリアライズド・ビュー機能の様々なパラメータを有効化、無効化および構成します。
構文
DBMS_AUTO_MV.CONFIGURE ( parameter IN VARCHAR2, value IN VARCHAR2, allow IN BOOLEAN DEFAULT TRUE);
パラメータ
表36-2 CONFIGUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更するパラメータの名前。パラメータ名は大/小文字が区別されません。 |
|
指定したパラメータの値。 |
|
このパラメータにより、様々なスキーマまたはアプリケーション・モジュールを許可または禁止します。これは、 |
パラメータ
表36-3 CONFIGUREのパラメータ名
パラメータ | 説明 |
---|---|
|
レポート専用モードを有効化、無効化または実行します。 使用可能な値は次のとおりです。
|
|
マテリアライズド・ビューの自動メンテナンスをアクティブ化および非アクティブ化します。
|
|
自動マテリアライズド・ビューの実装に使用できる領域配分の量を指定します。合計領域値は、(システム表ではなく)すべてのユーザー表で現在使用されている領域の合計です。この計算には、ユーザー・アクセス構造(索引やマテリアライズド・ビューなど)は含まれません。使用可能な値は次のとおりです。
デフォルトの配分は、ユーザー表の合計サイズの |
|
自動マテリアライズド・ビューを配置する表領域を指定します。使用可能な値は次のとおりです。
値が動的に変更された場合、その値は次に自動マテリアライズド・ビュー推奨事項が実装されたときに有効になります。 |
|
自動マテリアライズド・ビューの作成中またはリフレッシュ中の一時表領域を指定します。使用可能な値は次のとおりです。
値が動的に変更された場合、その値は次に推奨事項が実装されたときに有効になります。 |
|
問合せで使用されることなく自動マテリアライズド・ビューが存在する日数を指定します。有効期限に達すると、マテリアライズド・ビューは削除されます。
|
|
分析および推奨履歴を保存する最大日数を指定します。
分析および検証の履歴は、 |
|
推奨事項を作成するための最大時間数を指定します。
|
|
自動マテリアライズド・ビューの推奨事項の対象とみなされる問合せの最小時間を秒単位で指定します。このしきい値を下回る問合せは、推奨事項とみなされません。
|
|
自動マテリアライズド・ビューの作成に含めるか除外するスキーマを指定します。 使用可能な値は次のとおりです。
両方のリスト(包含リストと除外リスト)に1つ以上のスキーマが含まれている場合は、除外リストに登録されたスキーマ以外のすべてのスキーマで自動マテリアライズド・ビューを使用できます |
|
自動マテリアライズド・ビューの作成に含めるか除外するアプリケーション・モジュールを指定します。使用可能な値は次のとおりです。
初期状態では、包含リストと除外リストはどちらも空であり、自動マテリアライズド・ビューがデータベースに対して有効になっている場合は、すべてのアプリケーション・モジュールに自動マテリアライズド・ビューを作成できます。 |
|
検証履歴を保存する最大日数を指定します。
|
|
自動マテリアライズド・ビューのメンテナンスの履歴を保存する最大日数を指定します。
|
例
begin dbms_auto_mv.configure (‘AUTO_MV_SPACE_BUDGET’, ‘50%’); end; begin dbms_auto_mv.configure (‘AUTO_MV_SCHEMA’, ‘SH’, FALSE); dbms_auto_mv.configure (‘AUTO_MV_SCHEMA’, ‘SCOTT’); end; /
36.2.2 DROP_AUTO_MVSプロシージャ
このプロシージャは、作成された自動マテリアライズド・ビューを削除します。このルーチンは、DBAのみが実行できます。
構文
DBMS_AUTO_MV.DROP_AUTO_MVS ( owner IN VARCHAR2, mv_name IN VARCHAR2, allow_recreate IN BOOLEAN DEFAULT FALSE);
パラメータ
表36-4 DROP_AUTO_MVSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
自動マテリアライズド・ビューの所有者の名前を指定します。
削除された自動マテリアライズド・ビューは、デフォルトではシステムによって自動的に再作成されません。 |
|
自動マテリアライズド・ビューの名前。 |
|
削除された自動マテリアライズド・ビューの自動作成を有効または無効にします。
|
例
begin dbms_auto_mv.DROP_AUTO_MVS (‘SH’); end; / begin dbms_auto_mv.DROP_AUTO_MVS (‘SH’, ‘AUTO_MV$$_G2MKPB9SA1FB7’); end; /
36.2.3 RECOMMENDファンクション
このファンクションにより、ユーザーは、指定したSQLチューニング・セット内のSQL文について、自動マテリアライズド・ビューの推奨事項を手動で生成できます。
構文
DBMS_AUTO_MV.RECOMMEND (
sts_owner IN VARCHAR2 DEFAULT 'SYS',
sts_name IN VARCHAR2 DEFAULT 'SYS_AUTO_STS',
workload_start_time IN TIMESTAMP DEFAULT NULL,
workload_end_time IN TIMESTAMP DEFAULT NULL,
automv_mode IN VARCHAR2 DEFAULT 'REPORT ONLY')
RETURN VARCHAR2;
パラメータ
表36-5 RECOMMENDファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
SQLチューニング・セットの所有者の名前。デフォルト値は |
|
SQLチューニング・セットの名前。デフォルト値は |
|
ワークロード・ウィンドウの開始時間。 値 |
|
ワークロード・ウィンドウの終了時間。 |
|
|
戻り値
DBA_AUTO_MV%
カタログ・ビューで使用される実行名(execution_name
)。
例
次の例では、デフォルトのSQLチューニング・セットSYS_AUTO_STS
が使用されます。自動マテリアライズド・ビューを生成するために必要なワークロードがSYS_AUTO_STS
に含まれていることを確認してください。
例1: SYS_AUTO_STS
を使用して、過去24時間の推奨事項を生成およびレポートします。このファンクションのデフォルトの動作はREPORT ONLY
であるため、自動マテリアライズド・ビューは実装されません。
var exec_name varchar2(200);
begin
:exec_name := dbms_auto_mv.recommend();
end;
/
SELECT * FROM DBA_AUTO_MV_ANALYSIS_RECOMMENDATIONS
WHERE exec_name = :exec_name;
例2: SYS_AUTO_STS
を使用して、過去24時間の推奨事項を生成およびパブリッシュします。
var exec_name varchar2(200);
begin
:exec_name := dbms_auto_mv.recommend(automv_mode=>’IMPLEMENT’);
end;
/
36.2.4 REFRESHプロシージャ
このプロシージャにより、ユーザーは、システム内の古い自動マテリアライズド・ビューすべてを無条件に手動でリフレッシュできます。
構文
DBMS_AUTO_MV.REFRESH ();
例
begin dbms_auto_mv.refresh(); end; /
36.2.5 REPORT_ACTIVITYファンクション
このファンクションにより、指定した期間の自動マテリアライズド・ビューのアクティビティおよび使用状況についてレポートを生成します。レポートは、引数タイプで指定したとおりにテキスト、HTMLまたはXML形式で生成できます。
構文
DBMS_AUTO_MV.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;
パラメータ
表36-6 REPORT_ACTIVITYファンクションのパラメータ
パラメータ | 説明 |
---|---|
activity_start |
レポート生成の開始時間。 |
activity_end |
レポート生成の終了時間。 |
|
レポートを生成する形式のタイプ。可能な値は次のとおりです:
デフォルト値は、 |
|
sectionには、次の組合せを指定できます。
デフォルト値は
|
|
levelには、 デフォルト値は |
戻り値
このファンクションは、レポートをCLOB
として戻します。
例
例1: 次のREPORT_ACTIVITY()
のコールでは、自動マテリアライズド・ビューのすべてのアクティビティについて、HTML出力が生成されます。
select dbms_auto_mv.report_activity(type => ‘HTML') from dual;
36.2.6 REPORT_LAST_ACTIVITYファンクション
このファンクションにより、最後の自動マテリアライズド・ビューのアクティビティおよび使用状況についてレポートを生成します。レポートは、引数タイプで指定したとおりにテキスト、HTMLまたはXML形式で生成できます。
構文
DBMS_AUTO_MV.REPORT_LAST_ACTIVITY (
type IN VARCHAR2 DEFAULT ‘TEXT’,
section IN VARCHAR2 DEFAULT ‘ALL’,
level IN VARCHAR2 DEFAULT ‘TYPICAL’)
RETURN CLOB;
パラメータ
表36-7 REPORT_LAST_ACTIVITYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
レポートを生成する形式のタイプ。可能な値は次のとおりです:
デフォルト値は、 |
|
sectionには、次の組合せを指定できます。
デフォルト値は
|
|
levelには、 デフォルト値は |
戻り値
このファンクションは、レポートをCLOB
として戻します。
例
例1: 次のREPORT_LAST_ACTIVITY()
のコールでは、TEXT
出力が生成されます。
select dbms_auto_mv.report_last_activity('TEXT', 'ALL', ‘TYPICAL’) from dual;
例2: 次のREPORT_LAST_ACTIVITY()
のコールでは、XML出力が生成されます。
select dbms_auto_mv.report_last_activity(‘XML', 'ALL', 'TYPICAL') from dual;
例3: 次のREPORT_LAST_ACTIVITY()のコールでは、HTML出力が生成されます。
select dbms_auto_mv.report_last_activity(‘HTML', 'ALL', 'TYPICAL') from dual;