sql-server – Tempdb日志文件用法

前端之家收集整理的这篇文章主要介绍了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日志的行为与预期完全一致.

希望这可以帮助.

猜你在找的MsSQL相关文章