加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 求助!数据库’tempdb’的日志文件已满.备份数据

发布时间:2020-12-12 16:55:05 所属栏目:MsSql教程 来源:网络整理
导读:我们正在运行SQL Server 2000.在我们的数据库中,我们有一个“订单”表,大约有750,000行.我们可以在这个表上执行简单的SELECT语句.但是,当我们想要运行SELECT TOP 100 * FROM Orders ORDER BY Date_Ordered DESC之类的查询时,我们收到以下消息: Error: 9002,S
我们正在运行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,以加快排序并减少内存使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读