3

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

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

任何建议将不胜感激。

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

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

2 回答 2

2

你可能想看看这个。您的查询很可能正在使用临时表来运行,但如果不了解它就很难判断。

查看您的问题更新,您的子查询似乎正在使用 temptable 策略,这会淹没您的 TempDB。尝试摆脱这些子查询和/或减少在单个查询运行中使用的数据量应该有助于减少 TempDB 的增长。

于 2009-12-03T19:25:55.557 回答
1

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

当然,您可以将临时数据库的大小保持在 48 GB,至少这样它不会;当这个东西运行时,不必花时间增长。

于 2009-12-03T19:34:59.850 回答