Этот запрос выполнить в 8 с .:индекс не найден в запросе
SELECT segment,
[segstart]
FROM dbo.CmsCallHistory WITH (INDEX(CmsCallHistory_SGSTRT))
WHERE segstart between '2015-09-20' and '2015-09-30'
Но этот запрос ~ 3 минуты подсчитывать
SELECT segment,
[segstart]
FROM dbo.CmsCallHistory
WHERE segstart between '2015-09-20' and '2015-09-30'
строки данных ~ 120K
На втором плане выполнения запроса Я не вижу указателя, но только таблица сканирования стоит 98%:
В первом плане выполнения запроса я вижу, что используется индекс segstart:
Колонны всего: ~ всего 20
Ряды: 40296998
Так что же случилось?
Мы должны видеть больше информации, например, планов выполнения, таблиц и индексов определений и сведений о том, сколько строк существует в общей сложности и т.д., чтобы быть в состоянии помочь. –
Любая таблица статистики ошибочна, сохраненный план запросов неверен или оптимизатор SQL делает неправильное решение. Запустите 'update statistics dbo.data с fullscan' и сразу же после этого ваш медленный запрос - что-то улучшилось? – Arvo
может быть хорошим решением для вас - создать кластеризованный индекс? – Devart