pckcachesz -“程序包高速缓存大小”配置参数

此参数是在数据库共享内存之外分配的,并且用于高速缓存数据库上的静态和动态 SQL 和 XQuery 语句的部分。

配置类型
数据库
参数类型
  • 可联机配置
  • 可由 Db2® pureScale® 环境中的成员配置
传播类
立即
缺省值 [范围]
32 位操作系统
自动 [-132 - 128 000]
64 位操作系统
自动 [-132 - 2 147 483 646]
注: 在初始数据库创建后, Db2 配置顾问程序可能会更改缺省值。
计量单位
页 (4 KB)
分配时间
当初始化数据库时
释放时间
当数据库关闭时

分区数据库 系统中,每个数据库分区都有一个程序包高速缓存。

高速缓存程序包使数据库管理器在重新装入程序包时可以不访问系统目录;或者对于动态 SQL 或 XQuery 语句,可以免去编译这一步,从而减少其内部处理时间。 将这些段保存在程序包高速缓存中,直到发生下列其中一个事件:
  • 数据库关闭
  • 程序包或动态 SQL 或 XQuery 语句无效
  • 高速缓存空间用完。

静态或动态 SQL 或 XQuery 语句节的高速缓存可提供性能,尤其是在与数据库连接的应用程序多次使用同一个语句时。 这在事务处理环境中特别重要。

当此参数设置为 AUTOMATIC 时,就启用了自调整功能。 当 self_tuning_mem 设置为 ON 时,内存调整器将在工作负载要求更改时动态调整 pckcachesz 控制的内存区的大小。 由于内存调整器在不同内存使用者之间交换内存资源,所以,必须至少有两个内存使用者启用自调整功能才能使自调整功能有效。

仅当对数据库启用了自调整内存功能(self_tuning_mem 配置参数设置为 ON)时,才会自动调整此配置参数。

当此参数设置为 -1 时,用来计算页分配的值是为 maxappls 配置参数指定的值的 8 倍。 例外情况是 maxappls 的 8 倍小于 32。 在这种情况下,缺省值 -1pckcachesz 设置为 32

建议:当调整此参数时,应考虑如果为程序包高速缓存保留的额外内存是为另一目的分配的(如缓冲池或目录高速缓存),它是否会更有效。 因此,应在调整此参数时使用基准程序技术。

当最初使用几节,而后只有少数几节反复运行时,调整此参数就特别重要。 如果高速缓存太大,那么因保存初始节的副本而浪费内存。

下列监视元素可以帮助您确定是否应调整此配置参数:
  • pkg_cache_lookups(程序包高速缓存查询数)
  • pkg_cache_inserts(程序包高速缓存插入数)
  • pkg_cache_size_top(程序包高速缓存高水位标记)
  • pkg_cache_num_overflows(程序包高速缓存溢出)
注: 程序包高速缓存是有效的高速缓存,因此不能将此参数设置为零。 此高速缓存中必须分配有足够的内存以保存当前执行的 SQL 或 XQuery 语句的所有节。 如果分配的空间比当前需要的空间多,那么各节被高速缓存。 下一次需要这些部分时,只需执行它们而不必将其装入或进行编译。

pckcachesz 参数指定的限制是软限制。 如果数据库共享集合中还有可用的内存,如果有必要的话,可以超过该限制。 可使用 pkg_cache_size_top 监视元素确定程序包高速缓存达到的最大值,并用 pkg_cache_num_overflows 监视元素确定超过了由 pckcachesz 参数指定的限制的多少倍。