Tôi đồng ý với Cade Roux .
Bài viết này sẽ giúp bạn đi đúng hướng:
Một điều cần lưu ý, các chỉ mục được nhóm nên có một khóa duy nhất (một cột định danh tôi muốn giới thiệu) làm cột đầu tiên. Về cơ bản, nó giúp dữ liệu của bạn chèn vào cuối chỉ mục và không gây ra nhiều phân tách IO và Trang.
Thứ hai, nếu bạn đang tạo các chỉ mục khác trên dữ liệu của mình và chúng được xây dựng khéo léo, chúng sẽ được sử dụng lại.
ví dụ: hãy tưởng tượng bạn tìm kiếm một bảng trên ba cột
tiểu bang, quận, zip.
- đôi khi bạn chỉ tìm kiếm theo tiểu bang.
- đôi khi bạn tìm kiếm theo tiểu bang và quận.
- bạn thường xuyên tìm kiếm theo tiểu bang, hạt, zip.
Sau đó, một chỉ mục với tiểu bang, quận, zip. sẽ được sử dụng trong cả ba tìm kiếm này.
Nếu bạn tìm kiếm bằng zip một mình khá nhiều thì chỉ mục trên sẽ không được sử dụng (bởi SQL Server) vì zip là phần thứ ba của chỉ mục đó và trình tối ưu hóa truy vấn sẽ không xem chỉ mục đó là hữu ích.
Sau đó, bạn có thể tạo một chỉ mục trên Zip sẽ được sử dụng trong trường hợp này.
Bằng cách này, chúng tôi có thể tận dụng thực tế là với lập chỉ mục Nhiều cột, cột chỉ mục đầu tiên luôn có thể sử dụng để tìm kiếm và khi bạn chỉ tìm kiếm theo 'trạng thái' thì nó hiệu quả nhưng không hiệu quả như chỉ mục Cột đơn ở trạng thái ' '
Tôi đoán câu trả lời bạn đang tìm kiếm là nó phụ thuộc vào mệnh đề của các truy vấn thường được sử dụng và cả nhóm của bạn.
Bài viết sẽ giúp rất nhiều. :-)