Mengingat kuerinya sudah cukup sederhana, opsi yang akan saya lihat adalah ...
- Rencana eksekusi (untuk menemukan indeks yang hilang yang dapat Anda tambahkan)
- caching (untuk memastikan SQL sudah memiliki semua data di ram)
- de-normalisasi (untuk mengubah kueri menjadi pilihan datar)
- cache data dalam aplikasi (sehingga Anda dapat menggunakan sesuatu seperti PLINQ di atasnya)
- Gunakan toko berbasis ram (redis, elastis)
- Penyesuaian grup file (secara fisik pindahkan db ke disk yang lebih cepat)
- Partisi tabel Anda (untuk menyebarkan data mentah ke beberapa disk fisik)
Semakin jauh Anda menelusuri daftar ini, semakin banyak solusi yang terlibat. Saya kira itu tergantung seberapa cepat Anda membutuhkan kueri dan seberapa banyak Anda membutuhkan solusi untuk diskalakan.