虽然我的查询是正确的,但我会间歇性地收到此错误。有没有办法避免写入事务日志?

当我检查指定的列时,每列的文本都显示为:“Nothing”

错误:



谢谢,非常感谢,有点急。

最佳答案

您需要使用事务日志。 这是 SQL 在出现错误或部分完成查询时回滚的方式。

根本原因不是事务日志,而是查询。你要么:

1 - 查询优化不佳(大量排序或散列连接可能导致此问题)

2 - 在您的查询中过度使用 #temp 表

3 - 有驱动器空间问题

你能发布你正在运行的查询吗?

编辑:

澄清可能导致问题的原因...

如果您有多个 #temp 表,它们都会占用 tempdb 中的空间。查询引擎必须执行的任何排序
(没有索引的 ORDER BY、不使用索引的复杂 JOIN 条件、大量 GROUP BY 或聚合函数等)
写入 tempdb 的事务日志,因为所有排序都在那里完成。

查询本身可能 函数 很好,但它可能需要优化以避免这些问题。

关于SQL Server 2008 : is there a way to avoid writing to transaction log?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5666817/

10-12 00:27
查看更多