【发布时间】:2011-01-28 01:36:49
【问题描述】:
我对以下内容感到困惑。我有一个包含大约 1000 万行的数据库,并且(在其他索引中)一列(campaignid_int)是一个索引。
现在我有 700k 行,其中的活动 ID 确实是 3835
对于所有这些行,connectionid 都是相同的。
我只是想找出这个connectionid。
use messaging_db;
SELECT TOP (1) connectionid
FROM outgoing_messages WITH (NOLOCK)
WHERE (campaignid_int = 3835)
现在执行此查询大约需要 30 秒!
我(以我的小数据库知识)期望它会占用任何行,并返回我那个 connectionid
如果我为只有 1 个条目的广告系列测试相同的查询,它会非常快。所以索引有效。
我将如何解决这个问题,为什么这不起作用?
编辑:
estimated execution plan:
select (0%) - top (0%) - clustered index scan (100%)
【问题讨论】:
-
campaignid_int 列是否被索引?
-
你能发布你当前的执行计划吗?
-
是的,campaignid 已编入索引
-
我编辑了问题以使其更清晰
-
如何更新统计数据?
标签: sql-server tsql query-optimization performance