30 DBMS_AUTO_INDEX
DBMS_AUTO_INDEXパッケージは、Oracleデータベースの自動索引を管理するためのインタフェースを提供します。
この章のトピックは、次のとおりです:
30.1 DBMS_AUTO_INDEXの概要
DBMS_AUTO_INDEXパッケージは、自動索引を構成して、Oracleデータベースでの自動索引付け操作のレポートを生成するためのインタフェースです。
30.2 DBMS_AUTO_INDEXサブプログラムの要約
この表は、DBMS_AUTO_INDEXパッケージのサブプログラムを示し、簡単に説明しています。
表30-1 DBMS_AUTO_INDEXパッケージのサブプログラム
| プロシージャ | 説明 |
|---|---|
|
自動索引付けに関連する設定を構成します。 |
|
|
スキーマまたは表から、制約に使用されるもの以外のすべての索引を削除します。 |
|
|
特定の期間中にデータベースで実行された自動索引付け操作のレポートを返します。 |
|
|
データベースで最後に実行された自動索引付け操作のレポートを返します。 |
30.2.1 CONFIGUREプロシージャ
このプロシージャでは、自動索引付けに関連する設定を構成します。
構文
DBMS_AUTO_INDEX.CONFIGURE (
parameter_name IN VARCHAR2,
parameter_value IN VARCHAR2,
allow IN BOOLEAN DEFAULT TRUE);パラメータ
表30-2 CONFIGUREプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
自動索引付けの構成設定。次の値のうち1つを取ることができます。
|
|
|
|
|
|
このパラメータは、
包含リストと除外リストの詳細は、 |
例
これらの例は、初期状態の包含リストと除外リストが空であるという前提に基づいています。
次の例では、除外リストにSHスキーマとHRスキーマを追加して、SHスキーマとHRスキーマのみが自動索引を使用できないようにします。
begin
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_SCHEMA',
parameter_value => 'SH',
allow => FALSE);
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_SCHEMA',
parameter_value => 'HR',
allow => FALSE);
end;次の例では、除外リストからHRスキーマを削除して、このスキーマでも自動索引が使用できるようにします。この時点で、除外リストにはSHスキーマのみが追加されているため、このスキーマのみが自動索引を使用できません。
begin
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_SCHEMA',
parameter_value => 'HR',
allow => NULL);
end;次の例では、除外リストからすべてのスキーマを削除して、すべてのスキーマで自動索引を使用できるようにします。
begin
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_SCHEMA',
parameter_value => NULL,
allow => TRUE);
end;次の例では、包含リストにHRスキーマを追加して、HRスキーマのみが自動索引を使用できるようにします。
begin
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_SCHEMA',
parameter_value => 'HR',
allow => TRUE);
end;次の例では、自動索引の保存期間を90日間に設定します。
begin
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_RETENTION_FOR_AUTO',
parameter_value => '90');
end;次の例では、自動索引の保存期間をデフォルト値の373日間に設定します。
begin
dbms_auto_index.configure(
parameter_name => 'AUTO_INDEX_RETENTION_FOR_AUTO',
parameter_value => NULL);
end;30.2.2 DROP_SECONDARY_INDEXESプロシージャ
このプロシージャでは、表またはスキーマから制約に使用されるもの以外のすべての索引を削除します。
構文
DBMS_AUTO_INDEX.DROP_SECONDARY_INDEXES (
ownname IN VARCHAR2 DEFAULT NULL,
tabname IN VARCHAR2 DEFAULT NULL);
パラメータ
表30-3 DROP_SECONDARY_INDEXESプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
(オプション)すべての索引を削除する必要があるスキーマの名前。 ノート: 制約に使用されている索引は削除されません。 |
|
|
(オプション)すべての索引を削除する必要がある表の名前。 ノート: 制約に使用されている索引は削除されません。 |
例
次の例では、SHスキーマから制約に使用されるもの以外のすべての索引を削除します。
begin
dbms_auto_index.drop_secondary_indexes('SH');
end;次の例では、HRスキーマのEMP表から制約に使用されるもの以外のすべての索引を削除します。
begin
dbms_auto_index.drop_secondary_indexes('HR', 'EMP');
end;次の例では、データベース内のすべてのスキーマから、制約に使用されるもの以外のユーザーが削除権限を持つすべての索引を削除します。
begin
dbms_auto_index.drop_secondary_indexes;
end;30.2.3 REPORT_ACTIVITYファンクション
このファンクションは、特定の期間中にデータベースで実行された自動索引付け操作のレポートを返します。
構文
DBMS_AUTO_INDEX.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;パラメータ
表30-4 REPORT_ACTIVITYファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
実行された自動索引付け操作に関するレポートの対象になる開始時刻。 |
|
|
実行された自動索引付け操作に関するレポートの対象になる終了時刻。値が指定されていない場合は、現在の時刻が終了時刻とみなされます。 |
|
|
レポートの形式。次の値のうち1つを取ることができます。
デフォルト値は、 |
|
|
レポートに含めるセクション。次の値の組合せを指定できます。
次の例に示すように、これらの値の組合せは
|
|
|
レポートに含める自動索引付け情報のレベル。次の値のうち1つを取ることができます。
|
戻り値
指定した期間中にデータベースで実行された自動索引付け操作のレポート。
例
次の例では、過去24時間の間に実行された自動索引付け操作の一般的なレポートを生成します。レポートはテキスト形式で生成され、すべてのセクション(サマリーの詳細、自動索引の詳細、自動索引検証の詳細およびエラーの詳細)が含まれます。
declare report clob := null; begin report := dbms_auto_index.report_activity(); end;
30.2.4 REPORT_LAST_ACTIVITYファンクション
このファンクションは、データベースで最後に実行された自動索引付け操作のレポートを返します。
構文
DBMS_AUTO_INDEX.REPORT_LAST_ACTIVITY (
type IN VARCHAR2 DEFAULT 'TEXT',
section IN VARCHAR2 DEFAULT 'ALL',
level IN VARCHAR2 DEFAULT 'TYPICAL')
RETURN CLOB;パラメータ
表30-5 REPORT_LAST_ACTIVITYファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
レポートの形式。次の値のうち1つを取ることができます。
デフォルト値は、 |
|
|
レポートに含めるセクション。次の値の組合せを指定できます。
次の例に示すように、これらの値の組合せは
|
|
|
レポートに含める自動索引付け情報のレベル。次の値のうち1つを取ることができます。
|
戻り値
データベースで最後に実行された自動索引付け操作のレポート。
例
次の例では、データベースで最後に実行された自動索引付け操作の一般的なレポートを生成します。レポートはテキスト形式で生成され、すべてのセクション(サマリーの詳細、自動索引の詳細、自動索引検証の詳細およびエラーの詳細)が含まれます。
declare report clob := null; begin report := dbms_auto_index.report_last_activity(); end;