另外说个题外话,undo的主要作用,是当事务回滚的时候,可以直接取到修改前的数据块,这是一个随机读的过程,但DB2的undo日志记录在redo里,事务回滚需要读redo,这个以及db2的锁机制(所有行锁都是内存的数据结构...让我们做一个简单的算术:
2**32/24/3600/1000=49
简单概括下,如果是一个每秒钟一千个事务的数据库,不到50天就可以耗光事务id,对于比较繁忙的库,比如平均每秒钟1w事务来说,4天就可以耗光...然后使用新表的文件替代原先表文件的方式,这种方式一来不访问原先的表,二来不需要触发器或者长时间的排他过程锁,是非常好用的工具....预分配一组独立的顺序数字编号文件(每个1MB)作为undo文件,并且是从buffer pool过来的随机访问,使用上作为表空间访问,而非独立的缓冲区,其变更记录也一样会写入redo.
2. undo记录逐条记录到...undo中,当一个undo上最大的事务id已经小于当前数据库最小事务id了,这个文件就可以被回收掉
3. undo的处理本身,由单独的undo进程操作,其包括undo文件清理,以及事务的回滚处理.
4.