选择顶部(1)->寻求->但逻辑读取次数仍然很高

时间:2019-05-28 14:02:46

标签: sql-server

我有一个返回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。

enter image description here

0 个答案:

没有答案