我们有一个大约300万行的表(T)和两个INT列(ID1和ID2),它们一起被设置为复合聚集键。如何减少具有复合索引的表上的扫描计数?
在存储过程早期,我们创建一个表变量(@A),它由一列INT组成。
慢速查询是以下
SELECT T.ID1, T.ID2
FROM T
INNER JOIN @A AS A
ON A.ID = T.ID1
@A将只有几百行,T包含了几百万行。问题是T得到了几百个扫描计数。我不知道如何让它消失。
我试图在包含列ID1和ID2的T上创建另一个索引,但它没有帮助(执行计划程序显示使用了新索引)。
可以做些什么来减少表T上的扫描计数?
(我们使用SQL Server 2014网络版)
索引中的列以什么顺序排列? – idstam 2015-04-01 17:33:06
订单是ID2,ID1。这是否重要? – Sten 2015-04-01 17:43:17