UTL_RECOMP
パッケージは、データベース内の無効なPL/SQLモジュール、無効なビュー、索引タイプおよび演算子を再コンパイルします。
この章の内容は次のとおりです。
概要
使用上の注意
例
UTL_RECOMP
は、通常すべてのPL/SQLオブジェクトが無効になるメジャー・バージョン・アップグレード後に、特に役立ちます。無効なオブジェクトは使用時に自動的に再コンパイルされますが、操作前にこれを実行しておくと、その後の実行時のオンデマンド自動再コンパイルによる遅延がなくなったり、最小限に抑えられるため、便利です。
このパッケージは、ttIsql
を使用して実行する必要があります。
このパッケージを使用するには、インスタンス管理者である必要があり、SYS.UTL_RECOMP
として実行する必要があります。
このパッケージには、VALID
ステータスで作成されている次のパッケージが必要です。
STANDARD
(standard
.sql
)
DBMS_STANDARD
(dbmsstdx
.sql
)
DBMS_RANDOM
(dbmsrand.sql
)
このパッケージでエントリを実行している間は、データベース上で他のDDLを実行しないでください。この推奨事項に従わない場合、デッドロックが発生する場合があります。
TimesTenではDBMS_SCHEDULER
がサポートされないため、ユーザーの指定内容に関係なく、パラレル実行される再リコンパイル・スレッドの数は常に1つです。したがって、TimesTenではRECOMP_PARALLEL
とRECOMP_SERIAL
の違いは事実上ありません。
すべてのオブジェクトを順次再コンパイルする場合:
Command> EXECUTE SYS.UTL_RECOMP.RECOMP_SERIAL();
スキーマSCOTT
のオブジェクトを順次再コンパイルする場合:
Command> EXECUTE SYS.UTL_RECOMP.RECOMP_SERIAL('SCOTT');
表12-1 UTL_RECOMPパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
特定のスキーマ内の無効なオブジェクトまたはデータベース内のすべての無効なオブジェクトを、パラレルに再コンパイルします。 前述のとおり、ユーザーの指定内容に関係なく、TimesTenでパラレル実行される再コンパイル・スレッドの数は常に1つです。したがって、TimesTenでは |
|
特定のスキーマ内の無効なオブジェクトまたはデータベース内のすべての無効なオブジェクトを再コンパイルします。 |
注意:
|
このプロシージャはDBA_Dependencies
ビューに表示された情報を使用して、データベース内または指定されたスキーマ内の無効なオブジェクトをパラレルに再コンパイルします。
TimesTenでは、設定内容に関係なく、threads
値は常に1です。その結果、RECOMP_PARALLEL
とRECOMP_SERIAL
の違いは事実上ありません。
構文
UTL_RECOMP.RECOMP_PARALLEL( threads IN BINARY_INTEGER DEFAULT NULL, schema IN VARCHAR2 DEFAULT NULL, flags IN BINARY_INTEGER DEFAULT 0);
パラメータ
表12-2 RECOMP_PARALLELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
再コンパイルをパラレル実行するスレッド数。 TimesTenでは、 |
|
無効なオブジェクトを再コンパイルするスキーマ。 |
|
内部テストや診断テストを行う場合にのみ値を設定します。 |
このプロシージャは、特定のスキーマ内の無効なオブジェクトまたはデータベース内のすべての無効なオブジェクトを再コンパイルします。
構文
UTL_RECOMP.RECOMP_SERIAL( schema IN VARCHAR2 DEFAULT NULL, flags IN BINARY_INTEGER DEFAULT 0);
パラメータ