2

我不确定这一点,但我想我以前读过它,我想知道这是对还是错:

创建表时,最好先放置易失列,然后放置静态列。我的意思是,将可更新的列和不可更新的列放在最后。这对减少事务日志的大小很有好处,因为每次修改一行时,日志都会写入旧行,新行的列直到最后更新。

ID-PK, code, name , message
1    , 10 , "John Doe", "A funny message"

更新到

1    , 10 , "John Doe", "The message was changed."

在这种情况下,日志将完全写入新行。但是,如果我们更改列的顺序:

ID-PK, message , code, name<br/>
1    , "A funny message"         , 10 , "John Doe"

更新到

1    , "The message was changed.", 10 , "John Doe"

事务日志只会写入直到最后修改的列(1,“消息已更改。”),这可以提高性能,同时将日志写入和传送到另一台机器,就像使用 HADR 时一样。

我想知道这是否属实,我在哪里可以找到有关此的信息。

4

1 回答 1

0

当未启用完整数据更改捕获时,DB2 LUW 日志记录从数据更改的第一个字节开始,一直到数据更改的最后一个字节。IBM 在其在线文档的标题为“订购列以最小化更新日志记录”的部分中提供了以下建议

经常更新的列应该组合在一起,并在表定义的末尾或末尾进行定义。这会带来更好的性能、更少的字节记录和更少的日志页面写入,以及执行大量更新的事务的活动日志空间需求更小。

于 2010-11-28T08:54:15.943 回答