У меня есть запрос, который возвращает 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);
Вот последняя статистика ввода-вывода:
Таблица «Х». Сканирование 1, логическое чтение 65, физическое чтение 0, чтение с опережением 0, логическое чтение с 0, физическое чтение с 0, чтение с опережением 0.
Я видел до 800 логических чтений для этого запроса.
После перестройки логическое чтение перейдет к 4.
введите описание изображения здесь