LOCKS 配置参数指定锁表的初始大小。
锁表为每个锁保留一个条目。如果分配的锁数目超过 LOCKS 配置参数的值,则数据库服务器增加锁表的大小。锁表最多可增加 99 次。
通过尝试每次增加锁表一倍,数据库服务器增加锁表的大小。然而,每次增加期间添加的数量受最大值限制。对于 32 位平台,每次增加可最多添加 100,000 个锁。因此,对于 32 位平台,最多锁数合计是 8,000,000 (启动锁的最大数目)+ (99(动态锁表扩展的最大数目)x 100,000(每个锁表扩展添加的锁的最大数目))。对于 64 位平台,每次增加可最多添加 1,000,000 个锁。因此,允许的最多锁数合计是 500,000,000(启动锁的最大数目)+(99(动态锁表扩展的最大数目)x 1,000,000(每个锁表扩展添加的锁的最大数目))。
随着初始锁表存储在常驻内存中,而每个附加锁存储在虚拟内存中,如果你有数量有限的共享内存,则锁资源可变得枯竭。单个锁占据的存储数量依赖于字大小和操作系统,且易更改。当前,存储的数量范围从大约 100 字节至 200 字节。通过以 LOCKS 配置参数的一个不同值(未做其他更改)重启服务器,您可看到为支持附加锁而需要的存储数量。通过常驻池的“onstat -g mem”,观察使用的内存的增加情况。