Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhiều chỉ mục so với nhiều cột

Tôi đồng ý với Cade Roux.

Bài viết này sẽ giúp bạn đi đúng hướng:

  • Chỉ mục trong SQL Server 2005/2008 - Các phương pháp hay nhất, Phần 1
  • Chỉ mục trong SQL Server 2005/2008 - Phần 2 - Nội bộ

Một điều cần lưu ý, các chỉ mục được phân nhóm phải có một khóa duy nhất (cột nhận dạng mà tôi muốn giới thiệu) làm cột đầu tiên. P>

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 một cách 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, mã 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, quận, mã zip.

Sau đó, một chỉ mục với tiểu bang, quận, mã 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 thấy chỉ mục đó là hữu ích.

Sau đó, bạn có thể tạo chỉ mục trên Zip một mình sẽ được sử dụng trong trường hợp này.

Nhân tiện, Chúng tôi có thể tận dụng lợi thế của thực tế là với việc lập chỉ mục Nhiều Cột, cột chỉ mục đầu tiên luôn có thể sử dụng được để tìm kiếm và khi bạn chỉ tìm kiếm theo 'trạng thái', nó có hiệu quả nhưng không hiệu quả bằng chỉ mục Cột Đơn trên 'trạng thái '

Tôi đoán câu trả lời mà bạn đang tìm kiếm là nó phụ thuộc vào mệnh đề vị trí của các truy vấn được sử dụng thường xuyên và nhóm của bạn.

Bài viết sẽ giúp ích rất nhiều. :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bộ xử lý Intel được đề xuất cho SQL Server 2014 - tháng 3 năm 2015

  2. SYSDATETIMEOFFSET () Ví dụ trong SQL Server (T-SQL)

  3. Làm cách nào để bạn nhập một tệp MS SQL .sql lớn?

  4. Trả về thông tin cột cho một thủ tục được lưu trữ trong SQL Server:sp_sproc_columns

  5. Cách kết hợp ngày từ một trường với thời gian từ một trường khác - MS SQL Server