У меня есть огромная таблица, имеющая гораздо меньшее количество (по порядку величины) различных значений в некотором столбце x
.
Мне нужно сделать запрос типа SELECT DISTINCT x FROM hugeTable
, и я хочу сделать это относительно быстро.
Я сделал что-то вроде CREATE INDEX hugeTable_by_x ON hugeTable(x)
, но по какой-то причине, хотя вывод мал, выполнение запроса происходит не так быстро. План запроса показывает, что 97% времени тратится на сканирование индексов hugeTable_by_x
, при этом количество строк равно размеру всей таблицы. Далее следует, в частности, операция Hash Match.
Поскольку я создал индекс в столбце x
, не могу ли я ожидать, что этот запрос будет работать очень быстро?
Обратите внимание, что я использую Microsoft SQL Server 2005.