Nếu chỉ mục của bạn không được sử dụng, thì nó thường chỉ ra một trong hai vấn đề:
-
Điều kiện vị từ không thể phân loại, chẳng hạn như
WHERE DATEPART(YY, Column) = <something>
. Việc bao bọc các cột trong một hàm sẽ làm giảm hoặc loại bỏ khả năng sử dụng chỉ mục một cách hiệu quả của trình tối ưu hóa. -
Các cột không được che phủ trong danh sách đầu ra, rất có thể xảy ra nếu bạn có thói quen viết
SELECT *
thay vìSELECT specific_columns
. Nếu chỉ mục không bao gồm truy vấn của bạn, thì SQL Server cần thực hiện tra cứu RID / khóa cho từng hàng, từng hàng một, điều này có thể làm chậm truy vấn đến mức trình tối ưu hóa chỉ quyết định thực hiện quét bảng.
Xem nếu một trong những điều này có thể áp dụng cho tình huống của bạn; nếu bạn vẫn còn bối rối, tôi khuyên bạn nên cập nhật câu hỏi với nhiều thông tin hơn về lược đồ, dữ liệu và các truy vấn chậm của bạn. 500 MB là rất nhỏ đối với cơ sở dữ liệu SQL, vì vậy điều này sẽ không quá chậm. Đồng thời đăng nội dung trong kế hoạch thực hiện.