【发布时间】:2010-11-25 06:37:19
【问题描述】:
在 SQL Server 2000 系统上,我有一个 templog.ldf 文件,该文件似乎无限增长!但是当我检查时,tempdb 中从来没有任何打开的事务(使用 DBCC OPENTRAN),我也没有在 tempdb 中使用显式事务。
不过,我确实在我的存储过程中使用了临时表。谁知道 ASP.NET 数据访问对象在幕后会做什么?该数据库支持一个 ASP.NET 网站。
不管怎样,tempdb.mdf 文件——tempdb 数据文件——是相当合理的 700 MB。 templog.ldf 文件一天可以增长到 30 GB!如果我没有用完磁盘空间,可能会更多。我没有明确删除存储过程中的#tables,但同样,mdf 文件似乎永远不会变得非常大。
为什么没有未完成的事务时事务日志会增长?事务日志是否会回收空间?此外,带有 NO_LOG 的 DUMP TRAN 不会收缩文件,CHECKPOINT 事件也不会通过 trunc 收缩。在 tempdb 上启用了登录 chkpt。停止 SQL Server 会清除 tempdb(可能 DBCC SHRINKFILE 会,但我没有这样做)。
感谢您的帮助!
【问题讨论】:
-
您可以尝试在serverfault.com 上提出同样的问题,我相信您会在那里得到更好的答案...
标签: sql-server-2000 size transaction-log tempdb