Dit is waarschijnlijk geen probleem van indexering, maar een van gegevensontwerp. Normalisatie, om precies te zijn. Het feit dat je verschillende waarden van een veld moet opvragen, en zelfs bereid bent om een index toe te voegen, is een sterke aanwijzing dat het veld moet worden genormaliseerd in een aparte tabel met een (kleine) join-sleutel. Dan zijn de verschillende waarden onmiddellijk beschikbaar door de veel kleinere buitenlandse opzoektabel te scannen.
Bijwerken
Als tijdelijke oplossing kunt u een geïndexeerde weergave maken op een aggregaat door het veld 'onderscheiden'. COUNT_BIG
is een aggregaat dat is toegestaan in geïndexeerde weergaven:
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);