SQL Server 2000,大型事务日志,几乎为空,性能问题?

SQL Server 2000,大型事务日志,几乎为空,性能问题?

对于一家我一直帮助解决其数据库故障的公司。

在SQL Server 2000中,数据库大约为120GB。

某些原因导致事务日志增长到 100 GB 以上,超出正常水平,一些事务挂起,几天内未提交或回滚。这个问题已解决,由于每小时进行一次事务日志备份,现在已满 1% 左右或更少。

据我了解,不断增长的事务日志文件大小可能会导致性能问题。

但我有点担心的是大小。虽然主要是空的,但它可能会对性能产生负面影响吗?但我没有找到任何文档表明这是真的。

我确实找到了这个链接:http://www.bigresource.com/MS_SQL-Large-Transaction-Log-dramatically-Slows-down-processing-any-idea-why--2ahzP5wK.html但在这篇文章中,我无法判断他们的日志是满的还是空的,并且此链接中没有任何对该帖子的回复。

所以我猜这不是一个问题,有人知道吗?

答案1

您可能会发现,由于自动增长已打开,tlog 会自行增长到如此大的大小,因此您会有很多虚拟日志文件。这意味着事务日志本身是碎片化的,这不是一件好事。
以下是一些信息如何查看数据库中有多少个 vlog 文件。
以下是一个博客为什么大量的虚拟日志文件是坏的以及您需要做什么。

答案2

备份时,SQL Server 将截断日志文件并创建初始日志文件。就您的情况而言,似乎应该大幅减少日志文件。尝试确定在备份窗口之间写入日志的数据量,然后可能将数据量增加一倍或三倍。将其设置为初始日志文件大小。这将有助于防止碎片性能问题。

如果平均事务大小为 2MB,而日志文件以 1MB 为增量增大,对性能的影响将非常大。每天两次增大 400MB 可能不会对性能产生明显影响。

我强烈建议你读一下文章的数据和日志文件管理部分。它将帮助您针对问题做出更明智的决定。

相关内容