清单2中所示的程序包高速缓存大小(PCKCACHESZ)参数,是在数据库共享内存之外分配的,并且用于高速缓存数据库上的静态和动态 SQL 和 XQuery 语句的部分。高速缓存程序包使数据库管理器在重新装入程序包时可以不访问系统目录;或者对于动态 SQL 或 XQuery 语句,可以免去编译这一步,从而减少其内部开销。将这些段保存在程序包高速缓存中,直到发生下列其中一种情况:
•数据库关闭 。
•程序包或动态 SQL 或 XQuery 语句无效 。
•高速缓存空间用完。
静态或动态 SQL 或 XQuery 语句节的高速缓存可提供性能,尤其是在与数据库连接的应用程序多次使用同一个语句时。这在事务处理应用程序中特别重要。当此参数设置为 AUTOMATIC 时,就启用了自调整功能。当 self_tuning_mem 设置为 ON 时,内存调整器将在工作负载需求更改时动态调整 pckcachesz 控制的内存区的大小。由于内存调整器在不同内存使用者之间交换内存资源,所以,必须至少有两个内存使用者启用自调整功能才能使自调整功能有效。需要注意的是,程序包高速缓存是工作高速缓存,所以不能将此参数设置为零。此高速缓存中必须分配有足够的内存以保存当前执行的 SQL 或 XQuery 语句的所有节。如果分配的空间比当前需要的空间多,则各节被高速缓存。下一次需要这些部分时,只需执行它们而不必将其装入或进行编译。由 pckcachese 参数指定的限制是软限制。如果数据库共享集合中还有可用的内存,如果有必要的话,可以超过该限制。
清单2中所示的锁定列表的最大存储量 (LOCKLIST)参数,是用来指示分配给锁定列表的内存量。每个数据库有一个锁定列表,锁定列表包含由同时连接至数据库的所有应用程序挂起的锁定。锁定是数据库管理器用来控制多个应用程序并发访问数据库中的数据的机制。行和表都可以锁定。数据库管理器还可以获取锁定来供内部使用。当此参数设置为 AUTOMATIC 时,就启用了自调整功能。这允许内存调整器根据工作负载需求变化动态地调整此参数控制的内存区大小。由于内存调整器在不同内存使用者之间交换内存资源,所以,必须至少有两个内存使用者启用自调整功能才能使自调整功能有效。locklist 值是与 maxlocks 参数一起调整的,因此,如果禁用 locklist 参数自调整功能,也将自动禁用 maxlocks 参数自调整功能。如果启用 locklist 参数自调整功能,也将自动启用 maxlocks 参数自调整功能。当一个应用程序使用的锁定列表百分比达到 maxlocks 时,数据库