微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – Tempdb日志文件用法

看到测试服务器将tempdb日志文件增长到8 GB,在负载测试的几个小时内分配了12 GB. tempdb数据文件几乎没有文件空间使用.在tempdb中运行DBCC OPENTRAN,没有打开的事务超过几秒钟.我正在运行sql Server 2005并且读取快照隔离已关闭.

如何确定消耗tempdb日志的内容

解决方法

Tempdb的日志与用户数据库中的日志有几点不同.

在tempdb中,只记录UNDO信息而不是REDO和UNDO,因为tempdb中的事务只是回滚,永远不会前滚.这是因为tempdb从未运行崩溃恢复,因此永远不会使用REDO信息.如果这些术语对您没有意义,请参阅Understanding Logging and Recovery in SQL Server上的TechNet杂志文章.但请注意,将记录对tempdb进行更改的所有操作 – tempdb不是“未记录”.

与其他数据库日志一样,Tempdb的日志不会清除/截断(再次查看文章).在tempdb中,日志将在检查点上截断(与常规SIMPLE恢复模型中一样),但检查点不会像在用户数据库中那样经常自动发生.在用户数据库中,检查点会尝试限制运行崩溃恢复所需的时间(通过将脏页强制转换为磁盘,从而限制必须执行的REDO恢复的数量)以及批量更新页面更新以减少整体执行的I / O量.

因此,tempdb中的检查点仅在tempdb日志使用率达到日志总大小的某个比例时发生,大约70%,因为恢复时间无关紧要.

总而言之,您的tempdb日志的行为与预期完全一致.

希望这可以帮助.

原文地址:https://www.jb51.cc/mssql/80782.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐