Do truy vấn đã khá đơn giản, các tùy chọn tôi muốn xem xét là ...
- Kế hoạch thực thi (để tìm bất kỳ chỉ mục nào còn thiếu mà bạn có thể thêm vào)
- bộ nhớ đệm (để đảm bảo SQL đã có tất cả dữ liệu trong ram)
- de-normalization (để chuyển truy vấn thành chọn phẳng)
- lưu vào bộ nhớ cache dữ liệu trong ứng dụng (vì vậy bạn có thể sử dụng thứ gì đó như PLINQ trên đó)
- Sử dụng cửa hàng dựa trên ram (redis, đàn hồi)
- Điều chỉnh nhóm tệp (di chuyển vật lý db sang các đĩa nhanh hơn)
- Phân vùng các bảng của bạn (để phân chia dữ liệu thô trên nhiều đĩa vật lý)
Bạn càng đi sâu xuống danh sách này, các giải pháp càng trở nên liên quan. Tôi đoán nó phụ thuộc vào tốc độ bạn cần truy vấn và mức độ bạn cần giải pháp của mình để mở rộng.