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

戻る
戻る
 
次へ
次へ
 

214 UTL_RECOMP

UTL_RECOMPパッケージは、データベースに含まれている無効なPL/SQLモジュール、無効なビュー、Javaクラス、索引タイプおよび演算子を、順次またはパラレルに再コンパイルします。

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


UTL_RECOMPの使用方法


概要

通常、メジャー・アップグレードの後はPL/SQLおよびJavaオブジェクトがすべて無効化されているため、そのタイミングでこのスクリプトを実行すると特に効果的です。無効になったオブジェクトを使用するときは自動的に再コンパイルされますが、操作前にあらかじめこのスクリプトを実行しておくと、ランタイム時にオンデマンドによる自動再コンパイルが実行されても待機時間を解消または短縮できるので便利です。

パラレルな再コンパイルでは複数のCPUを活用できるので、無効なオブジェクトの再コンパイル時間が削減されます。 並列度は、RECOMP_PARALLELプロシージャに対する最初の引数で指定します。

通常の初期設定としては、使用可能なCPU1台につき1スレッドの並列設定にしておけば十分です。ただし、無効化されたオブジェクトを再コンパイルすると、システム表に大量のデータが書き込まれ、I/Oがきわめて集中的に行われるので注意してください。ディスク・システムの速度が遅い場合は、それが重大なボトルネックとなって、並列度に大きい値を設定しても高速化されない可能性があります。


使用上の注意


すべてのオブジェクトを順次再コンパイルする場合:

EXECUTE UTL_RECOMP.RECOMP_SERIAL();

スキーマSCOTTのオブジェクトを順次再コンパイルする場合:

EXECUTE UTL_RECOMP.RECOMP_SERIAL('SCOTT');

4つのスレッドをパラレルで使用し、すべてのオブジェクトを再コンパイルする場合:

EXECUTE UTL_RECOMP.RECOMP_PARALLEL(4);

JOB_QUEUE_PROCESSESパラメータに指定されたスレッド数を使用し、スキーマJOEのオブジェクトを再コンパイルする場合:

EXECUTE UTL_RECOMP.RECOMP_PARALLEL(NULL, 'JOE');

UTL_RECOMPサブプログラムの要約

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

サブプログラム 説明

RECOMP_PARALLELプロシージャ


指定されたスキーマの無効なオブジェクト、またはデータベース内のすべての無効なオブジェクトをパラレルに再コンパイルします。

RECOMP_SERIALプロシージャ


指定されたスキーマの無効なオブジェクト、またはデータベース内のすべての無効なオブジェクトを再コンパイルします。



RECOMP_PARALLELプロシージャ

このプロシージャはDBA_Dependenciesビューに表示された情報を使用して、データベース内または指定されたスキーマ内の無効なオブジェクトをパラレルに再コンパイルします。

構文

UTL_RECOMP.RECOMP_PARALLEL(
   threads  IN   PLS_INTEGER DEFAULT NULL,
   schema   IN   VARCHAR2    DEFAULT NULL,
   flags    IN   PLS_INTEGER DEFAULT 0);

パラメータ

表214-2 RECOMP_PARALLELプロシージャのパラメータ

パラメータ 説明

threads

再コンパイルをパラレル実行するスレッド数。 NULLの場合は、'job_queue_processes'の値が使用されます。

schema

無効なオブジェクトを再コンパイルするためのスキーマ。NULLの場合は、データベース内のすべての無効なオブジェクトが再コンパイルされます。

flags

内部テストや診断テストを行う場合にのみ値を設定します。


使用上の注意

パラレルな再コンパイルでは複数のCPUを活用するので、無効なオブジェクトの再コンパイル時間が削減されます。ただし、再コンパイルするとシステム表に大量のデータが書き込まれるため、ディスク・システムの速度が遅い場合はそれが重大なボトルネックとなって、並列度に大きい値を設定しても高速化されない可能性があります。


RECOMP_SERIALプロシージャ

このプロシージャは、指定されたスキーマの無効なオブジェクト、またはデータベース内のすべての無効なオブジェクトを再コンパイルします。

構文

UTL_RECOMP.RECOMP_SERIAL(
   schema   IN   VARCHAR2    DEFAULT NULL,
   flags    IN   PLS_INTEGER DEFAULT 0);

パラメータ

表214-3 RECOMP_SERIALプロシージャのパラメータ

パラメータ 説明

schema

無効なオブジェクトを再コンパイルするためのスキーマ。NULLの場合は、データベース内のすべての無効なオブジェクトが再コンパイルされます。

flags

内部テストや診断テストを行う場合にのみ値を設定します。