Dường như bạn có một kế hoạch tối ưu để chạy truy vấn. Sẽ rất khó để cải thiện điều đó. Dưới đây là một số quan sát.
Truy vấn đang thực hiện Quét chỉ mục theo cụm trên chỉ mục PK_States. Nó không sử dụng chỉ mục không gian. Điều này là do trình tối ưu hóa truy vấn cho rằng sẽ tốt hơn nếu sử dụng chỉ mục được phân cụm thay vì bất kỳ chỉ mục nào khác. Tại sao? Có thể là do có ít hàng trong bảng Quốc gia (50 và có thể là một vài hàng khác cho Washington, D.C., Puerto Rico, v.v.).
SQL Server lưu trữ và truy xuất dữ liệu trên các trang 8KB. Kích thước hàng (xem Ước tính Kích thước Hàng) cho hoạt động bộ lọc là 8052 byte, có nghĩa là có một hàng trên mỗi trang và khoảng 50 trang trong toàn bộ bảng. Kế hoạch truy vấn ước tính rằng nó sẽ xử lý khoảng 18 hàng trong số các hàng đó (Xem Số lượng Hàng ước tính). Đây không phải là một số lượng hàng đáng kể để xử lý. Lời giải thích của tôi không đề cập đến các trang bổ sung nằm trong bảng, nhưng vấn đề là con số khoảng 50 chứ không phải 50.000 trang.
Vì vậy, quay lại lý do tại sao nó sử dụng chỉ mục PK_States thay vì chỉ mục SPATIAL_States_Boundry. Chỉ mục nhóm, theo định nghĩa, chứa dữ liệu thực tế cho bảng. Chỉ mục không phân cụm trỏ đến trang có dữ liệu, vì vậy sẽ có nhiều trang hơn để truy xuất. Vì vậy, chỉ mục không phân cụm chỉ trở nên hữu ích khi có lượng dữ liệu lớn hơn.
Có thể có những việc bạn có thể làm để giảm số lượng xử lý trang (ví dụ:sử dụng chỉ mục bao trùm), nhưng truy vấn hiện tại của bạn đã được tối ưu hóa tốt và bạn sẽ không thấy cải thiện nhiều về hiệu suất.