下面的MSSQL2005查询非常慢。我觉得他们应该加快速度,但我不确定如何。请注意,我编辑内部连接以使用select语句使其更明显(对于阅读此问题的人)发生了什么,尽管这对速度没有影响(可能执行计划也是相同的)。有趣的是,我从来没有真正将关键字值组用于计数以外的任何事情,但我不确定是否有办法利用这一点。SQL优化查询
select top 1 cde.processPath as 'keywordValue', count(*) as 'total'
from dbo.ClientDefinitionEntry AS cde INNER JOIN dbo.KeywordValueGroups AS kvg
ON cde.keywordGroupId = kvg.keywordValueGrpId
where kvg.[name] = @definitionName
group by cde.processPath
order by total desc
编辑:显然,人们不断抱怨我使用子查询。实际上,这没有区别。在发布这个问题之前,我添加了它们,以便更容易地看到发生了什么。但是他们只是让事情变得更加混乱,所以我改变了它不使用它们。
编辑:指标的使用:
ClientDefinitionEntry:
IX_ClientDefinitionEntry |nonclustered located on PRIMARY|clientId, keywordGroupId
KeyWordValueGroups
IX_KeywordValueGroups |nonclustered located on PRIMARY|keywordValueGrpId
IX_KeywordValueGroups_2 |nonclustered located on PRIMARY|version
IX_KeywordValueGroups_Name |nonclustered located on PRIMARY|name
这些表格的示例数据可能会有所帮助...... – 2009-05-26 15:03:31
您有什么指标?他们是最新的吗? – 2009-05-26 15:06:39