大型查询增加了TempDB

时间:2009-12-03 19:22:42

标签: sql-server-2005 tempdb large-query

我的SQL 2005 Server上有很多查询。这必须每天运行一次,但是当此查询运行时,临时数据库从2GB增长到48GB。当这个查询在一个表上添加/更新80K记录(~120列)时,最佳优化或查找tempdb增长的原因是什么?

我应该怎么做这个查询,tempdb不会增长这么多?

任何建议都将受到赞赏。

注意: 此查询没有任何临时表或表变量或CTE。 只是一堆

INSERT INTO ... with MULTITABLE JOINS with SUBQueries...

2 个答案:

答案 0 :(得分:2)

您可能需要查看this。您的查询可能正在使用临时表来运行,但在不了解它的情况下很难判断。

查看您的问题更新,您的子查询似乎可能正在使用临时策略,该策略充斥您的TempDB。尝试摆脱这些子查询和/或减少在单个查询运行中使用的数据量,以帮助减少TempDB的增长。

答案 1 :(得分:1)

如果没有看到确切的代码,很难帮助您。但查询似乎需要进行优化。

当然你可以调整你的临时数据库以保持48 GB,至少这样它就赢了;当这个东西运行时,我必须花时间去增长。