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