更新每个数据库表字段后,日志文件有多大?

我的一般问题是,假设您有一个大小为20G的SQL Server 2005数据库和一个空的日志文件。如果您运行一系列更新,每个表和每行只触摸一次,那么日志文件是否会增长到与数据库相同的大小?或者这取决于其他因素? 我问这个问题是因为我正在执行的数据库更新。我有一些专有软件使用的数据库。对每个表和每个字段进行更新。该软件没有详细的输出,只有“未完成”/“完成”的复选框。因为没有描述性输出,我试图弄清楚如何判断它是否接近结束。 那么,当触摸所有内容时,日志文件的大小是否与数据库大小相同?或者日志文件是否包含不依赖于数据库大小的不同信息?     
已邀请:
根据经验,为任何更新生成的日志大小约为更新大小的1.5倍。因此,如果您更新20Gb的数据,则会生成30Gb的日志。 但有一些事情需要考虑: 生成的日志大小不一定需要转换为日志文件大小。在SIMPLE恢复模型下,一旦事务提交,就可以自动回收使用的日志文件(为了简洁我省略了一些细节),因此通过不断回收使用的日志,30gb日志大小可以放入1gb文件中。在FULL和BULK恢复模型下,执行数据库日志备份时,日志会被类似地回收。因此,如果您不在一个事务中更新所有内容,那么您的日志应该循环使用而不会增长。 某些操作可以最少记录。 TRUNCATE,INSERT BULK是典型的例子。最小的日志记录只占正常日志记录的一小部分。 现在你应该查看使用的日志百分比(
DBCC SQLPERF(logspace)
),并监视是否发生任何日志增长事件。     
不是你想要的答案,但我认为它不可能以任何有意义的方式与数据库的大小相关。等一下。 :)     

要回复问题请先登录注册