0

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

请建议。

4

2 回答 2

1

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

DBCC DBREINDEX('MyTable')
go

UPDATE STATISTICS MyTable WITH FULLSCAN, COLUMNS
go

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

于 2012-12-16T08:52:15.663 回答
0

我建议您进行一些优化:

  1. 确保你的表有索引;WHERE 条件或 JOIN 条件中使用的列需要在这些索引中
  2. 除非需要,否则请确保不要使用“*”选择器;
于 2012-12-16T13:46:50.060 回答