我的SQL 2005 Server上有很多查询。这必须每天运行一次,但是当此查询运行时,临时数据库从2GB增长到48GB。当这个查询在一个表上添加/更新80K记录(~120列)时,最佳优化或查找tempdb增长的原因是什么?
我应该怎么做这个查询,tempdb不会增长这么多?
任何建议都将受到赞赏。
注意: 此查询没有任何临时表或表变量或CTE。 只是一堆
INSERT INTO ... with MULTITABLE JOINS with SUBQueries...
答案 0 :(得分:2)
您可能需要查看this。您的查询可能正在使用临时表来运行,但在不了解它的情况下很难判断。
查看您的问题更新,您的子查询似乎可能正在使用临时策略,该策略充斥您的TempDB。尝试摆脱这些子查询和/或减少在单个查询运行中使用的数据量,以帮助减少TempDB的增长。
答案 1 :(得分:1)
如果没有看到确切的代码,很难帮助您。但查询似乎需要进行优化。
当然你可以调整你的临时数据库以保持48 GB,至少这样它就赢了;当这个东西运行时,我必须花时间去增长。