我有一个返回1行的查询-它有一个覆盖索引-但逻辑读取仍然可以进入数百行。
当我重建索引时-逻辑读取将转到4。
SET STATISTICS IO, TIME ON;
SELECT TOP (1) Id, WayId, CmpId, Ack, DateAck, AckBy
FROM csn_comppricing.dbo.XQueue
WHERE Id = 1 AND Ack = 0
ORDER BY BucketScore DESC, Score DESC, DateAck ASC;
-这里是涵盖查询的索引
create index IX_X on dbo.X (ID, BucketScore desc, Score desc, DateAck)
include(Ack, WayId, CmpId, AckBy) where Ack = 0 with (pad_index=on, fillfactor=50, online=on);
这是最近的IO统计信息: 表“ X”。扫描计数1,逻辑读65,物理读0,预读0,lob逻辑读0,lob物理读0,lob预读0。
我已经看到该查询多达800个逻辑读取。
重建后,逻辑读取将转到4。