【问题标题】:SQL Server Tempdb goes over to 200GBSQL Server Tempdb 超过 200GB
【发布时间】:2012-08-31 23:59:01
【问题描述】:

SQL 语法如下

    DELETE V From Table1 V
INNER JOIN Table2 AS A ON A.Col1 = V.Col1 AND A.Col2 = V.Col2
AND A.Col3 = V.Col3 And A.Col4 = V.Col4
AND A.Col5 = V.Col5 AND A.Col6 = V.Col6

表 1 的信息:

  1. 行数:32,00,000
  2. NonClust_Index1_Col1
  3. NonClust_Index2_Col2
  4. NonClust_Index3_Col3
  5. NonClust_Index4_Col4
  6. NonClust_Index5_Col5
  7. 没有集群索引和主键

表 2 的信息:

  1. 行数:50,000

  2. NonClust_Index1_Col1_Col2_Col3_Col4_Col5_Col6(六列的非集群复合索引)

  3. Clust_Index2_Col1_Col2_Col3_Col4_Col5_Col6(六列的集群复合索引)

请帮我确定这个简单的删除语法(删除语法在事务范围内)导致 TempDB 大小(>200GB)增长的原因是什么

【问题讨论】:

    标签: sql sql-server database size tempdb


    【解决方案1】:

    这里只是对查询性能的建议:

    如果在 Table2 中所有列都有一个非聚集索引,那么它将仅用于该索引中的第一列,其余的将不会使用。

    所以我猜你可以像为 table1 创建索引一样创建索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多