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

Số lượt đọc không bị thấp sau khi đặt Chỉ mục

Bạn đang chọn 50 hàng hàng đầu được sắp xếp theo e.uon desc . Chỉ mục bắt đầu bằng uon sẽ tăng tốc truy vấn:

create index IX_Empl_Uon on dbo.empl (uon)

Chỉ mục sẽ cho phép SQL Server quét N hàng trên cùng của chỉ mục này. N là số cao nhất trong phân trang của bạn:đối với trang thứ 3 gồm 50 phần tử, N bằng 150. Sau đó, SQL Server thực hiện 50 lần tra cứu khóa để truy xuất các hàng đầy đủ từ chỉ mục được phân nhóm. Theo những gì tôi biết, đây là một ví dụ trong sách giáo khoa về nơi một chỉ mục có thể tạo ra sự khác biệt lớn.

Không phải tất cả các trình tối ưu hóa truy vấn đều đủ thông minh để nhận thấy rằng row_number() over ... as rn với where rn between 1 and 50 nghĩa là 50 hàng trên cùng. Nhưng SQL Server 2012 thì có. Nó sử dụng chỉ mục cho cả trang đầu tiên và trang liên tiếp, như row_number() between 50 and 99 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách phân tích hoạt động của một cơ sở dữ liệu trong SQL Server

  2. ĐẶT HÀNG có điều kiện BẰNG tùy thuộc vào giá trị cột

  3. Làm thế nào để sử dụng phân vùng theo và sắp xếp theo chức năng?

  4. SQL Server có tạo chỉ mục Không phân cụm trên tất cả các cột của bảng theo mặc định không

  5. Nhận mọi thứ sau và trước ký tự nhất định trong SQL Server