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

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