DB2 9.5有哪些改进

如题所述

第1个回答  2012-06-29
我们今天是要和大家一起讨论的是DB2 V9.5 新特性,我们大家都知道在 DB2 V9.5 数据库中有一个新特性,即 MAX_CONNECTIONS 与MAX_COORDAGENTS 都可以被设置成 AUTOMATIC。

如果你认为系统可以承受所有的连接,同时又想限制被协调代理消耗的资源,你可以只将 MAX_CONNECTIONS 设定为 AUTOMATIC, MAX_COORDAGENTS 设定为一个数值。

这时系统认为可以连到实例的连接数时无限的。如果你对最大连接数和协调代理数都不想做限制的话,你可以将它们都设为 AUTOMATIC。如果这时 MAX_CONNECTIONS 设定为 AUTOMATIC 的数值大于 MAX_COORDAGENTS 设定为 AUTOMATIC 的数值,连接集中器也就被激活了。

而后,服务器就以刚才的两个数值之比作为参照 ( 这里叫做集中率 ) 按比例根据连接数来相应调整协调代理。示例如下:

db2 update dbm cfg using MAX_CONNECTIONS 300 AUTOMATIC;
db2 update dbm cfg using MAX_COORDAGENTS 100 AUTOMATIC;

这时集中率为 300/100=3,当连接在 1 到 100 时会创建协调代理,大于 100 小于 301 时就不会创建新的协调代理了。再从 301 增加到 400,又会增加 100 个协调代理,大于 400 小于 601 时又停止增加了……即每增加 300 个连接会增加 100 个协调代理。当前的具体数值可以通过 db2 attach to instance_name, db2 get dbm cfg show detail 得到。在这里允许设为 AUTOMATIC 有下面两种情况:

MAX_CONNECTIONS 为 AUTOMATIC 而 MAX_COORDAGENTS 为一定值。
MAX_CONNECTIONS 与 MAX_COORDAGENTS 同时为 AUTOMATIC。

当然连接集中器也有一些局限性:

联邦数据库不支持连接集中器

连接集中器对使用 withhold feature 的应用程序无效

全局临时表在事务完成时必须显式关闭,否则连接集中器就会被关闭

连接两阶段提交事务的连接只能用来连接两阶段提交事务的连接,同理连接一阶段提交事务的连接也只能用来连接一阶段提交事务的连接。

不能在线激活连接集中器,也就是说,需要重启实例才可生效。

如果既不想使用连接集中器,又不想限制数据库连接的数目,可以运行下面的命令:
db2 update dbm cfg using MAX_COORDAGENTS AUTOMATIC;
db2 update dbm cfg using MAX_CONNECTIONS AUTOMATIC;

以上的相关内容就是对DB2 V9.5 新特性的介绍,望你能有所收获。

参考资料:http://tech.ccidnet.com/art/982/20100806/2145617_1.html

相似回答