Vzhledem k tomu, že dotaz je již poměrně jednoduchý, možnosti, na které bych se podíval, jsou ...
- Plán provádění (k nalezení chybějících indexů, které byste mohli přidat)
- ukládání do mezipaměti (aby bylo zajištěno, že SQL již má všechna data v paměti RAM)
- dennormalizace (pro převedení dotazu na plochý výběr)
- uložte data v aplikaci do mezipaměti (takže na ní můžete použít něco jako PLINQ)
- Použijte obchod s beranem (redis, elastický)
- Úpravy skupiny souborů (fyzický přesun db na rychlejší disky)
- Rozdělte své tabulky (pro rozložení nezpracovaných dat na více fyzických disků)
Čím dále v tomto seznamu jdete, tím více se řešení zapojují. Myslím, že záleží na tom, jak rychle potřebujete dotaz a jak moc potřebujete, aby se vaše řešení škálovalo.