ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

66 DBMS_OUTLN

DBMS_OUTLNパッケージ(OUTLN_PKGと同義)には、ストアド・アウトラインの管理に関連するサブプログラムのための機能インタフェースが含まれています。


関連項目:

DBMS_OUTLNパッケージの使用方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』のプラン・スタビリティの使用方法に関する項を参照してください。

この章では、次の項目について説明します。


DBMS_OUTLNの使用方法


概要

ストアド・アウトラインは、指定したSQL文についての実行計画に関連するストアド・データです。これによって、オプティマイザは、最初にアウトラインとともに生成された計画と同じ実行計画を繰り返し再作成できます。アウトラインに格納されたデータの一部は、プラン・スタビリティを保つために使用するヒントで構成されています。


セキュリティ・モデル

DBMS_OUTLNには、適切なユーザーのみ使用できる管理プロシージャが含まれています。EXECUTE権限は、DBAが明示的に定めないかぎり、一般ユーザー・コミュニティにまで拡張されません。

アウトラインの管理目的に使用可能なPL/SQLファンクションは、そのプロシージャ(またはパッケージ)に対するEXECUTE権限があるユーザーのみが実行できます。


DBMS_OUTLNサブプログラムの要約

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

サブプログラム 説明

CLEAR_USEDプロシージャ


アウトラインの使用済フラグを消去します。

CREATE_OUTLINEプロシージャ


ハッシュ値および子番号で識別される共有カーソルからアウトラインを生成します。

DROP_BY_CATプロシージャ


指定されたカテゴリに属しているアウトラインを削除します。

DROP_UNUSEDプロシージャ


SQL文のコンパイルで適用されなくなったアウトラインを削除します。

EXACT_TEXT_SIGNATURESプロシージャ


アウトラインの署名を完全なテキスト一致に基づいて計算されたものに更新します。

UPDATE_BY_CATプロシージャ


あるカテゴリにあるアウトラインのカテゴリを、新規のカテゴリに変更します。

UPDATE_SIGNATURESプロシージャ


アウトラインの署名を現行バージョンの署名に更新します。



CLEAR_USEDプロシージャ

このプロシージャは、アウトラインの使用済フラグを消去します。

構文

DBMS_OUTLN.CLEAR_USED (
   name    IN    VARCHAR2);

パラメータ

表66-2 CLEAR_USEDプロシージャのパラメータ

パラメータ 説明

name

アウトライン名。



CREATE_OUTLINEプロシージャ

このプロシージャは、ハッシュ値および子番号で識別される共有カーソルからアウトラインを生成します。

構文

DBMS_OUTLN.CREATE_OUTLINE (
   hash_value    IN NUMBER,
   child_number  IN NUMBER,
   category      IN VARCHAR2 DEFAULT 'DEFAULT');

パラメータ

表66-3 CREATE_OUTLINEプロシージャのパラメータ

パラメータ 説明

hash_value

対象となる共有カーソルを識別するハッシュ値。

child_number

対象となる共有カーソルの子番号。

category

アウトラインを作成するカテゴリ(オプション)。



DROP_BY_CATプロシージャ

このプロシージャは、特定のカテゴリに属しているアウトラインを削除します。特に指定されないかぎりアウトラインはDEFAULTカテゴリに置かれますが、ユーザーはオプションとして、所有するアウトラインをカテゴリと呼ばれる複数のグループにグループ化できます。

構文

DBMS_OUTLN.DROP_BY_CAT (
   cat VARCHAR2);

パラメータ

表66-4 DROP_BY_CATプロシージャのパラメータ

パラメータ 説明

cat

削除するアウトラインのカテゴリ。


使用上の注意

このプロシージャでは、1回のコールでアウトラインのカテゴリがパージされます。

この例では、DEFAULTカテゴリ内にあるすべてのアウトラインを削除します。

DBMS_OUTLN.DROP_BY_CAT('DEFAULT');

DROP_UNUSEDプロシージャ

このプロシージャは、SQL文のコンパイルで適用されなくなったアウトラインを削除します。

構文

DBMS_OUTLN.DROP_UNUSED;

使用上の注意

DROP_UNUSEDは、動的SQLの結果として作成された使用できるのが1回かぎりのSQL文のアプリケーションによって生成されたアウトラインに対して使用できます。このプロシージャが使用されたアウトラインは使用されなくなり、重要なディスク領域が解放されます。


EXACT_TEXT_SIGNATURESプロシージャ

このプロシージャは、アウトラインの署名を完全なテキスト一致に基づいて計算されたものに更新します。

構文

DBMS.OUTLN.EXACT_TEXT_SIGNATURES;

使用上の注意

このプロシージャは、アウトラインを8.1.6以前のリリース用にダウングレードする目的にのみ適切です。


UPDATE_BY_CATプロシージャ

このプロシージャは、あるカテゴリにあるすべてのアウトラインのカテゴリを、新規のカテゴリに変更します。

構文

DBMS.OUTLN.UPDATE_BY_CAT (
   oldcat    VARCHAR2 default 'DEFAULT',
   newcat    VARCHAR2 default 'DEFAULT');

パラメータ

表66-5 UPDATE_BY_CATプロシージャのパラメータ

パラメータ 説明

oldcat

アウトラインの現行カテゴリ。

newcat

アウトラインの新規カテゴリ。



UPDATE_SIGNATURESプロシージャ

このプロシージャは、アウトラインの署名を現行バージョンの署名に更新します。

構文

DBMS.OUTLN.UPDATE_SIGNATURES;

使用上の注意

このプロシージャは、以前のリリースで生成されたアウトラインをインポートした場合に、その署名が現行リリースの計算アルゴリズムに適合することを確認するために実行する必要があります。