如果不考虑事务的完整性,是不是在SQL中的COMMIT越多性能越好?

[复制链接]
查看11 | 回复9 | 2010-3-1 11:19:07 | 显示全部楼层 |阅读模式
RT
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
不是。commit居中最好。太多了频繁磁盘写,太少了容易爆redo。
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 viadeazhu 于 2010-8-26 21:55 发表
不是。commit居中最好。太多了频繁磁盘写,太少了容易爆redo。

commit 触发产生检查点,促使dbwr 进程写脏数据,
如果log buffer 中的日志条目还没有写入redo 里面
dbwr就会等待.在这个过程中 commit 少了, 怎么理解 这个容易爆redo?
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
太多了redo受不了,太少了undo受不了
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 杨奇龙 于 2010-8-26 22:39 发表
commit 触发产生检查点,促使dbwr 进程写脏数据,
如果log buffer 中的日志条目还没有写入redo 里面
dbwr就会等待.在这个过程中 commit 少了, 怎么理解 这个容易爆redo?

COMMIT 触发产生检查点?


回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
现在都是incremental checkpoint,引入的checkpoint queue的概念,所以commit太频繁不会对checkpoint有太大影响,其实是对redo buffer到redo log太过频繁,redo写更不上。
如果commit太少,设想一个很大的transaction,把所有redo都用完了该如何?数据库hung了。
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
有道理
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 viadeazhu 于 2010-8-26 23:00 发表
如果commit太少,设想一个很大的transaction,把所有redo都用完了该如何?数据库hung了。







回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 viadeazhu 于 2010-8-26 23:00 发表
现在都是incremental checkpoint,引入的checkpoint queue的概念,所以commit太频繁不会对checkpoint有太大影响,其实是对redo buffer到redo log太过频繁,redo写更不上。
如果commit太少,设想一个很大的transaction,把所有redo都用完了该如何?数据库hung了。

commit触发的也是增量检查点,跟redo有关系吗?
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
commit触发检查点我也疑问不是三秒触发一次吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行