UTL_RECOMP システムパッケージは、データベースオブジェクトを再コンパイルするためのユーティリティパッケージであり、データベースのアップグレードやオブジェクトの無効化に関連する場合に特に役立ちます。このパッケージに含まれるプログラムは、データベース全体のオブジェクトまたは特定のスキーマ(schema)のオブジェクトを再コンパイルするために使用できます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
UTL_RECOMPの使用方法
- OceanBaseデータベースV4.3.5 BP2以前のバージョンでは、このパッケージを使用するにはSYSユーザーに接続する必要があります。その他のユーザーにはこのパッケージを呼び出す権限がありません。V4.3.5 BP2以降のバージョンでは、通常ユーザーでもこのパッケージを呼び出せます。
recomp_parallel、recomp_serialを呼び出す際は、システム上で実行中のDDL操作がないことを確認することを推奨します。そうでない場合、予期しない動作が発生する可能性があります。- このパッケージでコンパイルされるオブジェクトには、
procedure、functon、package、trigger、user define typeが含まれます。 - オブジェクトコンパイルプロセス中に発生した個々のオブジェクト関連エラーは、
all_errorsビューで確認できます。 - コンパイルプロセス中に発生したシステムエラーは
SYS.UTL_RECOMP_ERRORSテーブルに記録されます。
UTL_RECOMPサブプログラムの概要
次の表は、OceanBaseデータベースの現在のバージョンでサポートされている UTL_RECOMP サブプログラムとその簡単な説明を示しています。
サブプログラム |
説明 |
|---|---|
| recomp_parallel | 無効になったデータプログラム単位(パッケージ、プロシージャ、関数、トリガーなど)を並列して再コンパイルするために使用されます。 |
| recomp_serial | データベースオブジェクトを直列コンパイルするために使用されます。 |
| parallel_slave | recomp_parallel プロシージャ内で実際のコンパイル作業を実行するために使用されるプライベートサブプログラムです。通常はユーザーが直接呼び出すことはありません。 |
| truncate_utl_recomp_skip_list | UTL_RECOMP_SKIP_LIST テーブルをクリアするために使用されます。このテーブルには、自動再コンパイルを希望しないオブジェクトのリストが格納されています。 |
| populate_utl_recomp_skip_list | 再コンパイル処理中に特定のオブジェクトをスキップするために、UTL_RECOMP_SKIP_LIST テーブルにレコードを追加するために使用されます。 |