У меня огромная таблица с гораздо меньшим числом (на порядки) различных значений в некотором столбце 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.