在SQL10.5中,事务提交是否可能不等待日志IO完成并将控制权返回给客户端,就像db2服务器的延迟持久性一样?当有大量的串行小事务时,有没有办法减少日志IO的数量?
发布于 2017-11-13 18:54:54
Db2 LUW有一个名为mincommit的数据库配置参数。mincommit的值指示在将日志缓冲区刷新到磁盘之前将提交多少事务。这可能就是你要找的。
从Db2 LUW v10.5和更高版本开始,此参数将被忽略,并且该值仅在Db2 LUW v10.1之前的版本中有意义。
对于较旧版本的Db2 LUW,建议将该值保留为1。在大多数情况下,在引入风险的同时不会提高性能。因此,配置参数在版本10.1中已被弃用。我的建议是:即使它仍然存在,也不要使用它。
发布于 2017-11-15 21:36:14
Linux/Unit/Windows11.1版本上的Db2目前不支持某些版本的Microsoft SQL-server所提供的延迟提交。
对于某些类型的处理,尤其是大批量处理,将未记录的全局临时表用于中间表通常非常方便。这是消除日志开销的一种便捷方法,尽管用例仅限于特定场景。这样的表(声明的全局临时表或创建的全局临时表)允许您进行快速处理,而不会引起日志记录开销,尽管您必须设计批处理(通常是存储过程)来处理这些类型的表,包括在失败后重新启动和恢复等功能。
如果您有同时包含插入和更新(而不是批处理)的高频离散OLTP事务,则应该专注于优化活动日志记录配置。例如,为了确保您的活动日志位于最快的介质上,确保您的Db2从不等待日志文件,确保logbufsz是足够的,确保缓冲池清理是最佳的,等等,以确保您的事务日志文件的大小与您的RTO和RPO服务级别兼容。
https://stackoverflow.com/questions/47259374
复制相似问题