降低持久性以提高db2的性能

时间:2017-11-13 07:48:51

标签: performance db2 db2-luw

在db2 10.5中,事务提交是否有可能不等待日志IO完成并将控制权返回给客户端,例如SQL服务器的延迟持久性? 当存在大量串行小事务时,有没有办法减少日志IO的数量?

2 个答案:

答案 0 :(得分:0)

Db2 LUW有一个名为mincommit的数据库配置参数。 mincommit的值表示在将日志缓冲区刷新到磁盘之前将提交的事务数。这可能就是你要找的东西。

从Db2 LUW v10.5及更高版本开始,此参数将被忽略,该值仅对Db2 LUW版本高达v10.1有意义。

对于旧版本的Db2 LUW,建议将值保留为1.在大多数情况下,在引入风险的同时不会提高性能。因此,在10.1版中不推荐使用配置参数。我的建议:即使它仍然存在,也不要使用它。

答案 1 :(得分:0)

Linux / Unit / Windows上的Db2版本11.1目前不支持某些版本的Microsoft SQL服务器提供的延迟提交。

对于某些类型的处理,尤其是大批量处理,为中间表使用未记录的全局临时表通常非常方便。这是消除日志记录开销的一种便捷方法,尽管用例仅限于特定方案。这些表(声明的全局临时表或创建的全局临时表)使您可以快速处理而不会产生日志记录开销,尽管您必须设计批处理(通常是存储过程)以使用这些类型的表,包括重新启动的能力失败后恢复等等。

如果您有包含插入和更新(非批处理)的高频离散OLTP事务,则应集中精力优化活动日志记录配置。例如,确保您的活动日志位于最快的介质上,以确保您的Db2永远不会等待日志文件,确保logbufsz足够,以确保缓冲池清理是最佳的等,以确保您的事务的大小-log文件与您的RTO和RPO服务级别兼容。