SQL Server中的临时数据库已满

时间:2018-03-01 03:19:14

标签: sql sql-server stored-procedures tempdb

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

Wrapper:

  exec procedure1
  exec procedure2
  exec procedure3

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

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

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

编辑:

这是我得到的错误。

  

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

1 个答案:

答案 0 :(得分:0)

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