虽然我的查询是正确的,但我会间歇性地收到此错误。有没有办法避免写入事务日志?
当我检查指定的列时,每列的文本都显示为:“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/