sql-server – 求助!数据库’tempdb’的日志文件已满.备份数据库的事务日志以释放一些日志空间

前端之家收集整理的这篇文章主要介绍了sql-server – 求助!数据库’tempdb’的日志文件已满.备份数据库的事务日志以释放一些日志空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在运行sql Server 2000.在我们的数据库中,我们有一个“订单”表,大约有750,000行.我们可以在这个表上执行简单的SELECT语句.但是,当我们想要运行SELECT TOP 100 * FROM Orders ORDER BY Date_Ordered DESC之类的查询时,我们收到以下消息:

Error: 9002,Severity: 17,State: 6
The log file for database ‘tempdb’ is
full. Back up the transaction log for
the database to free up some log
space.

我们的数据库中有其他表,这些表的大小与表中的记录数量相似(即700,000条记录).在这些表中,我们可以运行任何我们想要的查询,并且我们从未收到有关’tempdb full’的消息.

为了解决这个问题,我们已经备份了数据库,缩小了实际的数据库,并缩小了tempdb系统数据库中的数据库文件,但这还没有解决问题.

我们的日志文件的大小设置为自动增长.

我们不确定下一步该去哪里.有什么想法我们仍然可能收到这条消息吗?

Error: 9002,State: 6
The log file for database ‘tempdb’ is
full. Back up the transaction log for
the database to free up some log
space.

解决方法

根据 this article,如果排序需要的内存比sql Server分配的内存多,则使用临时数据库.

如果对未编制索引的列进行排序,则数据库服务器将执行全表扫描并跟踪表中所有记录的所有Date_Ordered值(和主键值).

在Orders.Date_Ordered上创建一个INDEX,以加快排序并减少内存使用.

原文链接:https://www.f2er.com/mssql/81137.html

猜你在找的MsSQL相关文章