Ini mungkin bukan masalah pengindeksan, tetapi salah satu desain data. Normalisasi, tepatnya. Fakta bahwa Anda perlu mengkueri nilai bidang yang berbeda, dan bahkan bersedia menambahkan indeks, merupakan indikator kuat bahwa bidang tersebut harus dinormalisasi menjadi tabel terpisah dengan kunci gabungan (kecil). Kemudian nilai yang berbeda akan segera tersedia dengan memindai tabel asing pencarian yang jauh lebih kecil.
Perbarui
Sebagai solusi, Anda dapat membuat tampilan yang diindeks secara agregat oleh bidang 'berbeda'. COUNT_BIG
adalah agregat yang diizinkan dalam tampilan yang diindeks:
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);