【发布时间】:2011-01-04 08:52:33
【问题描述】:
我有一个看似简单的 SQL Server 查询,它花费的时间比我预期的要长。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT COUNT(DISTINCT(guid)) FROM listens WHERE url='http://www.sample.com/'
'guid' 是 varchar(64) NULL
'url' 是 varchar(900) NULL
在 guid 和 url 上有一个索引。
'listens'表中有超过700万行,其中17000行匹配有问题的url,查询结果为5500。
在具有 1GB RAM 的相当空闲的双核 AMD Opteron 2GHz 上在 SQL Server 2008 上运行此查询需要 1 多分钟。
任何想法如何降低执行时间?理想情况下应该在 1 秒以内!
【问题讨论】:
-
'在 guid 和 url 上有一个索引。'那是两个单独的索引还是一个组合索引?
标签: sql sql-server tsql sql-server-2008 query-optimization