确定 SQL 语句高速缓存中非共享条目的数量

要确定在 SQL 语句高速缓存中存在的非共享条目数,请运行 onstat -g ssc all

onstat -g ssc all 选项除显示 SQL 语句高速缓存中已完全高速缓存的条目外,还显示唯一关键字条目。

要确定高速缓存中存在的非共享条目数:

  1. onstat -g ssc all 输出与 onstat -g ssc 输出相比较。
  2. 如果这两个输出之间的差别显示 SQL 语句高速缓存中存在的许多非共享条目,那么应提高 STMT_CACHE_HITS 配置参数的值以允许更多共享语句驻留在高速缓存中,从而减少 SQL 语句高速缓存的管理开销。
您可以使用以下一种方法来更改 STMT_CACHE_HITS 参数值:
  • 更新 ONCONFIG 文件以指定 STMT_CACHE_HITS 配置参数。必须重新启动数据库服务器以使新值生效。

    您可以使用文本编辑器来编辑 ONCONFIG 文件。然后,用 onmode -ky 命令关闭数据库服务器并用 oninit 命令重新启动。

  • 数据库服务器在运行时动态增大 STMT_CACHE_HITS 配置参数:

    可以使用以下任意方法来在运行时复位 STMT_CACHE_HITS 值:

    • 发布 onmode -W 命令。以下示例指定在向语句高速缓存添加新查询之前需要三个 (3) 实例:
      onmode -W STMT_CACHE_HITS 2
    • 调用 SQL 管理 API 的 ADMINTASK 函数。以下示例等于先前示例中的 onmode 命令:
      EXECUTE FUNCTION TASK("ONMODE", "W", "STMT_CACHE_HITS", "2");

    如果动态增大 STMT_CACHE_HITS 而不更新配置文件,然后重新启动数据库服务器,那么 STMT_CACHE_HITS 设置将还原 ONCONFIG 文件中的值。 因此,如果希望以后重新启动后该设置保持不变,请修改 ONCONFIG 文件。