Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
接続で一度に使用できる準備文の最大数を制限するリソースガバナーを制御します。
整数
50
個別の接続または PUBLIC に対して設定できます。このオプションを設定するには SET ANY SYSTEM OPTION システム権限が必要です。すぐに有効になります。
準備文を使用するアプリケーションは、準備文が不要になった後で明示的に削除されなかった場合、「準備文のリソースガバナーが制限を超えています。」というエラーを受け取ることがあります。max_statement_count オプションはリソースガバナーであり、これを使用することにより、DBA は 1 つの接続で使用される準備文の数を制限できます。接続の制限を超える操作が行われると、リソースのガバナーを超過していることを示すエラーを出力します。
接続でストアドプロシージャを実行する場合、そのプロシージャはプロシージャの所有者の権限で実行されます。ただし、プロシージャが使用するリソースは、現在の接続に割り当てられています。
データベースサーバには、接続によって作成される準備文ごとにデータ構造体が用意されます。アプリケーションがデータベースサーバに準備文が不要になったことを通知するか、接続が切断されるまで、これらの構造体は解放されません。接続ごとの準備文の数を減らすためには、DROP STATEMENT 要求に相当する処理を実行する必要があります。次の表は、SQL Anywhere でサポートされる API で実行できる文を示しています。
Java と .NET では、文を明示的に削除することをおすすめします。言語ルーチンからは文リソースの割り付けを解除するサーバ呼び出しが発行されないため、ガーベジコレクションを利用してこのクリーンアップを実行しないでください。また、ガーベジコレクションルーチンがいつ実行されるかは保証されません。
サーバにおいて接続のいずれかの時点でデフォルトの最大数を超える準備文のサポートが必要になった場合は、max_statement_count をデフォルトより大きな値に設定する必要があります。ただし、アクティブな準備文が多くなると、サーバメモリの使用量が増加します。max_statement_count オプションを 0 (ゼロ) に設定し、準備文リソースガバナーを無効にすることもできますが、この方法は推奨できません。このようにすると、アプリケーションが準備文を適切に解放しない場合、データベースサーバがメモリ不足によって異常終了しやすくなります。