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

Ở mức cơ bản nào, SQL Server chuyển sang quét chỉ mục (so với tìm kiếm)

Về SQL Server, đây được coi là điểm đến hạn, trong đó bài đăng trên blog của Kimberley là một bài đọc tốt về nó. http://www.sqlskills.com/BLOGS/KIMBERLY /category/The-Tipping-Point.aspx

Điểm giới hạn là hướng dẫn chiếm 25% -33% tổng số trang trong bảng, được biểu thị dưới dạng hàng, ví dụ:10k trang dữ liệu sẽ cho điểm giới hạn là 2500-3333 hàng. Theo hướng dẫn, điều này khá tốt và bạn sẽ nhận được - hãy nhớ công cụ kế hoạch truy vấn là một hộp đen và mặc dù nó sẽ cung cấp cho bạn một kế hoạch truy vấn, nhưng nó chỉ cho biết những gì nó quyết định chứ không phải tại sao.

Mặc dù vậy, về mặt giới hạn một chỉ mục bao trùm, điều đó không thực sự dễ dàng lắm, ngay cả khi 100% dữ liệu được chọn, chỉ mục bao gồm vẫn sẽ tìm kiếm quá trình quét trong phần lớn các trường hợp.

Điều đó có lý, nếu bạn cho rằng trình tối ưu hóa chi phí không chỉ định bất kỳ chi phí thực nào cho hệ thống phân cấp các trang chỉ mục, bất kỳ chi phí nào chỉ làm tăng quyền truy cập vào các trang lá của chỉ mục. Tại thời điểm đó, việc quét hoặc tìm kiếm 100% chỉ mục bao gồm có chi phí như nhau.

Tôi đã tìm thấy từ thử nghiệm của riêng mình ( http://sqlfascination.com/2009/11/07/can-a-covered-nc-index-be-tipped ) sử dụng mệnh đề between sẽ làm cho nó quét, nhưng các mệnh đề khác thì không - từ những gì tôi có thể biết nó hoàn toàn là xuống tuyến đường thông qua công cụ truy vấn.



  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 có thứ tự sắp xếp tùy chỉnh cho truy vấn liên hợp trong Postgres

  2. Tìm kiếm văn bản Django với cập nhật đối sánh từng câu thành django3

  3. Tại sao Solr lại nhanh hơn Postgres rất nhiều?

  4. Cách sử dụng nhiều toán tử LIKE và sử dụng chỉ mục

  5. Giới hạn tham gia vào một hàng