SQL Engine Reference (v11)

SET CACHED_PROCEDURES

SET CACHED_PROCEDURES ステートメントは、データベース エンジンが SQL セッションのメモリにキャッシュするストアド プロシージャの数を指定します。

構文

SET CACHED_PROCEDURES = プロシージャ数 

備考

プロシージャ数の値は、ゼロからおよそ 20 億までの整数です。データベース エンジンは、デフォルトを自動的に 50 とします。各セッションは、SET ステートメントを発行することにより、そのセッションでキャッシュするプロシージャ数を変更できます。

SET CACHED_PROCEDURES の対となるステートメントは SET PROCEDURES_CACHE です。

CACHED_PROCEDURES にゼロ以外の値を設定すると、以下の条件が適用されます。プロシージャの実行によって、キャッシュされたプロシージャ数が CACHED_PROCEDURES 値を超える場合、データベース エンジンは、最近最も使用頻度の低いプロシージャをキャッシュから削除します。

メモリ キャッシュを使用している場合、プロシージャの実行後もコンパイルしたストアド プロシージャを保持しています。一般的に、キャッシングによって、キャッシュされたプロシージャの次回からの呼び出しのパフォーマンスが向上します。キャッシュの設定やアプリケーションが実行する SQL によっては、過度のメモリ スワッピングやスラッシングが発生するので注意してください。スラッシングはパフォーマンスの低下を招きます。

レジストリ設定

キャッシュするプロシージャ数は、SET ステートメントのほかにレジストリ設定でも指定できます。レジストリ設定はすべてのセッションに適用され、初期値を設定する便利な方法です。各セッションは SET ステートメントを使用して、そのセッション固有の値を指定できます。この値はレジストリ設定より優先されます。

レジストリ設定は Pervasive PSQL サーバーがサポートされるすべてのサーバー プラットフォームに適用されます。レジストリ設定は手作業で変更する必要があります。Windows では、オペレーティング システムで提供されているレジストリ エディターを使用します。Linux では、psregedit ユーティリティを使用することができます。

レジストリ設定が指定されていない場合、データベース エンジンはデフォルトを自動的に 50 とします。

キャッシュされるプロシージャ数のレジストリ設定を Windows で指定するには

  1. 以下のキーを見つけます。
    HKEY_LOCAL_MACHINE¥SOFTWARE¥Pervasive Software¥SQL 
    Relational Engine 
    


メモ

ほとんどの Windows オペレーティング システムでは、"Pervasive Software" のキーの場所は HKEY_LOCAL_MACHINE¥SOFTWARE¥PERVASIVE SOFTWARE です。ただし、HKEY_LOCAL_MACHINE¥SOFTWARE の下位以降の場所はオペレーティング システムによって異なる可能性があります。


  1. このキーに、CachedProcedures という新しい文字列値を作成します。
  2. CachedProcedures にキャッシュしたいプロシージャ数を設定します。

Linux の Pervasive レジストリでキャッシュ プロシージャ レジストリ設定を指定するには

  1. 以下のキーを見つけます。
    PS_HKEY_CONFIG¥SOFTWARE¥Pervasive Software¥SQL Relational 
    Engine 
    
  2. このキーに、CachedProcedures という新しい文字列値を作成します。
  3. CachedProcedures にキャッシュしたいプロシージャ数を設定します。

キャッシングの除外

ストアド プロシージャは、以下の条件に当てはまる場合、キャッシュ設定にかかわらず、キャッシュされません

次の例は、最大 20 のストアド プロシージャを格納する 2 MB のキャッシュ メモリを設定します。

SET CACHED_PROCEDURES = 20 
SET PROCEDURES_CACHE = 2 
666

次の例は、最大 500 のストアド プロシージャを格納する 1,000 MB のキャッシュ メモリを設定します。

SET CACHED_PROCEDURES = 500 
SET PROCEDURES_CACHE = 1000 
666

次の例は、ストアド プロシージャをキャッシュせず、既にキャッシュされているプロシージャを削除する指定をします。

SET CACHED_PROCEDURES = 0 
SET PROCEDURES_CACHE = 0 
666

次の例は、120 個のストアド プロシージャをキャッシュし、キャッシュで使用するメモリ量は設定しない指定をします。

SET CACHED_PROCEDURES = 120 

データベース エンジンは暗黙的に PROCEDURES_CACHE にゼロを設定します。

関連項目

CREATE PROCEDURE

SET PROCEDURES_CACHE


SET ANSI_PADDING

SET DECIMALSEPARATORCOMMA