当列减少时,SQL查询花费更多时间

时间:2012-12-16 08:49:48

标签: sql sql-server execution-time

我有一个选择查询,包含15个表中的100多列以及超过100000行。此查询的执行时间约为15分钟。 现在,当我将列数减少到50并注释掉各个表时。 根据我的理解,新查询应该少于15 mnts但现在执行时间增加到4小时:(。

请建议。

2 个答案:

答案 0 :(得分:1)

如果没有更详细的信息,我建议在查询中涉及的所有表上重建索引(并更新任何剩余的列统计信息):

DBCC DBREINDEX('MyTable')
go

UPDATE STATISTICS MyTable WITH FULLSCAN, COLUMNS
go

[关于在生产服务器上运行的常见警告/警告适用]。

答案 1 :(得分:0)

我建议你做一些改进:

  1. 确保您的表有索引; WHERE条件或JOIN条件中使用的列需要在那些索引中
  2. 除非需要,否则请确保不要使用'*'选择器;