To pravděpodobně není problém indexování, ale problém návrhu dat. Normalizace, abych byl přesný. Skutečnost, že se potřebujete dotazovat na odlišné hodnoty pole, a dokonce jste ochotni přidat index, je silným indikátorem toho, že pole by mělo být normalizováno do samostatné tabulky pomocí (malého) klíče spojení. Poté budou odlišné hodnoty okamžitě dostupné skenováním mnohem menší vyhledávací cizí tabulky.
Aktualizace
Jako řešení můžete vytvořit indexované zobrazení souhrnně podle „odlišného“ pole. COUNT_BIG
je agregát, který je povolen v indexovaných zobrazeních:
create view vwDistinct
with schemabinding
as select x, count_big(*)
from schema.hugetable
group by x;
create clustered index cdxDistinct on vwDistinct(x);
select x from vwDistinct with (noexpand);