0

我只对我查询的数据库有读取权限。相同的查询自昨天开始工作,但今天我在sql server management studio中遇到以下错误。数据库'tempdb'的事务日志已满

数据库'tempdb'的事务日志已满。要找出为什么在日志中 空间不能被重用,请参阅sys.databases

任何想法或建议log_reuse_wait_desc列。 都大加赞赏。提前致谢!!

+0

显而易见的选择是首先检查空间。如果事务日志的增长未被检查,那么可以考虑 - 这是一个生产数据库吗?需要事务日志备份的卷是否很高?如果没有,那么将数据库设置为简单是第一种选择。 –

+0

当你运行'SELECT name,log_reuse_wait_desc FROM sys.databases WHERE name = N'tempdb''时,你会得到什么?你使用tempdb的简单或完整恢复方法吗? tempdb数据库的.ldf文件有多大?它所在的磁盘已满?自动增长是否被禁用? –

+0

当我运行︰SELECT name,log_reuse_wait_desc FROM sys.databases WHERE name = N'tempdb'..............我得到log_reuse_wait_desc = NOTHING – Rob

回答

0

tempdb支持排序或临时表等操作。

如果发生大型排序操作的大选择,tempdb可能会意外增加。

首先确定这种操作是异常情况,如果不解决或确保用户对此主题敏感。

然后重新启动实例并收缩tempdb数据文件以将其减小到适当的大小。

重新启动实例会产生一个服务站,所以一定要确保用户知道重启

编辑:

此外,如果给定的ETL不能或不会被改变,那么这被认为是正常的行为和服务器必须正确配置/大小,以支持这种交易。

+0

如果由于查询结果而导致tempdb增长,重新启动只会提供一个临时修复,因为下次查询运行时会再次发生 – SchmitzIT

+0

这就是为什么他首先确定了这些操作是例外情况,修正它之前进行更正(请阅读答案) – Hybris95

+0

我做到了。但是,您是否阅读了关于该问题的评论? – SchmitzIT

相关问题