【问题标题】:Large query increases TempDB大型查询增加 TempDB
【发布时间】:2009-12-03 19:22:41
【问题描述】:

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

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

任何建议将不胜感激。

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这个查询是别人写的。原来我不应该那么懒惰。我查看了查询,确实需要对其进行优化。我只创建了 39 个查询中的 3 个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多