OceanBaseデータベースのPLコードは、コンパイル実行のみをサポートしています。本記事では、主にPLエンジンとOBServer、およびSQLエンジン間の実行メカニズムについて説明します。
コンパイル実行は、インタプリテーション実行に比べてより優れたパフォーマンスを提供します。特に、PLエンジン内部で計算要素が多い場合、パフォーマンス向上がより顕著になります。
コンパイル実行の枠組みでは、PLソースコードは対応するプラットフォームの実行可能コードに直接コンパイルされます。PLエンジンが実行される際、OBServerはコンパイル済みの実行可能コードを直接呼び出します。同時に、コンパイル済みのPLコードはPLキャッシュにキャッシュされるため、同一のPLコードは一度だけコンパイルする必要があります。

PLコードは定義時にOBServerに格納されます。アプリケーションがストアドプロシージャを呼び出すと、OBServerはまずデータディクショナリからPLコードの定義を読み取り、次にPLコードの定義を実行可能なバイナリコードにコンパイルし、コンパイル済みのPLバイナリコードをPLキャッシュに格納します。実行時には、PLエンジンがPLキャッシュから実行可能コードを取得し、SQLエンジンと連携してPLコードの実行を完了します。
ストアドプロシージャ間ではネスト呼び出しが可能であり、例えば現在のPLブロックが別のストアドプロシージャを呼び出すことができます。