Предполагая, что таблица содержит достаточно информации, чтобы гарантировать поиск по индексу, при какой мощности SQL Server (или PostgreSQL) выберет сканирование индекса?
Причина, по которой я спросите это, я ранее публиковал вопрос ( ссылка ), в котором два запроса выполнялись с одинаковой скоростью, но ни один не пытался использовать индекс для обработанных столбцов. После того, как SQL Server предложил, чтобы я поместил покрывающий индекс , который включал запрашиваемые столбцы (он предлагал это для обоих запросов), я начал искать причины того, почему это может сделать такой странный предложение.
Я экспериментировал с индексами, покрывающими и составными, но оба выполнялись в одно и то же время (мы ' мы говорим о 3 миллионах строк)
В конце концов я пришел к выводу, что это произошло из-за сверхвысокой мощности данных. Каждая строка уникальна. Я предполагаю, что это заставило SQL-сервер выбрать сканирование индекса. Однако в запросе указано «ГДЕ Col1>? AND Col2 », Так что это немного сбивает с толку.
Мои вопросы:
Я приложил план выполнения.