我正在SQL Server上基于视图运行查询。这个视图的主要数据源是一个包含近5000万行数据的表格。几个星期以来,我一直在运行查询,并在大约20分钟内完成。我试过最近运行它,它是无法使用的。生产第一批1,000行产品需要超过2.5小时的时间。SQL查询突然放慢到抓取
下面是查询中的代码。我注意到的是,当我删除'where'和'having'语句以及'sum'时,查询会再次快速运行。显然这不是一个解决方案。
select YEAR, BUSINESS_GROUP, STATE, PRODUCT, sum(AGE_01_REVENUE) REVENUE
from dbo.VW_PRODUCTS
where YEAR='2015'
group by YEAR, BUSINESS_GROUP, STATE, PRODUCT
having sum(AGE_01_REVENUE) <> 0
你能发布执行计划吗?桌上有没有索引? – Thilo 2015-02-09 15:07:19
查询计划是否告诉您任何有用的信息,例如任何建议的索引? – 2015-02-09 15:08:01
你的一年真的是一个字符?也许有转换发生导致问题。 – 2015-02-09 15:09:02