выберите TOP (1) -> действительно ищет -> но все еще высокий логический счетчик чтения - PullRequest
1 голос
/ 28 мая 2019

У меня есть запрос, который возвращает 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.

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...