SQL Server中的Tempdb已满

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server中的Tempdb已满相关的知识,希望对你有一定的参考价值。

问题是这样的:我有一个包装器存储过程,其中包含许多其他存储过程。它看起来像这样:

Wrapper:

  exec procedure1
  exec procedure2
  exec procedure3

每个过程都会创建一个在其中使用的临时表。问题是每次执行包装器时我都会耗尽tempDB空间。

但是,在执行每个单独的存储过程时,它工作正常。

我的理解是在存储过程完成后删除临时表。那么为什么我的tempDB变满了?

编辑:

这是我得到的错误。

1101:由于文件组“DEFAULT”中的磁盘空间不足,无法为数据库“TEMPDB”分配新页面。通过删除文件组中的对象,向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建必要的空间。

答案

在tempdb中耗尽磁盘空间可能会导致SQL Server环境中断。可能有多种原因导致tempdb完全像长时间执行查询,在tempdb中抽取大量数据。您需要确定获取完整tempdb的原因。您可以通过以下链接:https://msdn.microsoft.com/en-us/library/ms176029.aspx这可能会帮到您。

以上是关于SQL Server中的Tempdb已满的主要内容,如果未能解决你的问题,请参考以下文章

如何收缩 SQL Server 中的 Tempdb 数据库

数据流任务失败,因为 TempDB 已满

我使用金蝶K3财务软件 今天突然报错说是 数据库 tempdb 日志已满请备份该数据库的事物日志及释放一些空间

SQL Server tempdb 数据库位置迁移

SQL SERVER——TempDB问题查找定位与解决

SQL Server如何删除多余tempDB文件