結果キャッシュは使用できず、RESULT_CACHE_MAX_SIZE値は変更できません。

最近、RESULT_CACHE_MAX_SIZEパラメーターの値を変更できないという問題が発生しました。

まず、RESULT_CACHE_MAX_SIZEが何であるかを知る必要があります。

RESULT_CACHE_MAX_SIZEは、結果キャッシュが使用できるsgaメモリの最大サイズの制限パラメータです。

結果キャッシュを使用する必要がある場合、この値は0であってはなりません。そして、次のクエリ結果はENABLEDです。

SQL> SELECT dbms_result_cache.status() FROM dual;

DBMS_RESULT_CACHE.STATUS()
--------------------------------------------------------------------------------
ENABLED

このパラメーターのデフォルト値は、共有プールのサイズによって異なります。共有プールが十分に大きくない場合、結果キャッシュは使用されません。

このとき、次のクエリを実行します。結果はBYPASSになる可能性があります。

SQL> select dbms_result_cache.status from dual;

STATUS
-------------------------------------
BYPASS

また、この状態では、RESULT_CACHE_MAX_SIZEパラメーター値は変更できません。

次の方法を使用して復元できます。

shared_pool_sizeに最小値を指定します。結果キャッシュがメモリスペースを取得できることを確認します。

Alter system set shared_pool_size=nnnM scope=spfile;

次に、次のコマンドを実行して、結果キャッシュを使用可能な状態に復元します。

SQL> BEGIN
   DBMS_RESULT_CACHE.BYPASS(TRUE);
   DBMS_RESULT_CACHE.FLUSH;
END;
/
  2    3    4    5
PL/SQL procedure successfully completed.

次に、データベースを再起動します。結果キャッシュを使用できず、RESULT_CACHE_MAX_SIZEパラメータ値を変更できないという問題を解決できます。

 

おすすめ

転載: blog.csdn.net/rishairu1/article/details/115298357