Khi nào quét toàn bộ bảng tốt hơn quét chỉ mục?


7

Một số tình huống (trong SQL Server) trong đó quét toàn bộ bảng tốt hơn quét chỉ mục là gì?


Quét toàn bộ bảng chỉ có thể xảy ra trên một đống.
Martin Smith

@Martin - Tôi sẽ xem xét một chỉ mục được nhóm quét "quét toàn bộ bảng" và những điều đó xảy ra rất nhiều. :)
Nick Chammas

Câu trả lời:


7

Khi độ chọn lọc của các bản ghi rất cao, quét toàn bộ bảng luôn tốt hơn so với quét qua chỉ mục.

http://www.techipost.com/single-index-versus-full-table-scan/

Chỉnh sửa bởi gbn:

Ví dụ, trình tối ưu hóa có thể quyết định rằng việc quét chỉ mục bảng / cụm được dễ dàng hơn nếu nó yêu cầu nhiều tra cứu chính (ví dụ: chỉ mục không được phân cụm thành các chỉ mục được phân cụm cho dữ liệu không khóa).

Hoặc bạn không có nhiều giá trị riêng biệt trong các cột được lập chỉ mục


ví dụ tốt. Tất cả các câu trả lời còn lại đều nói giống nhau

Trang web đó không còn trực tuyến nhưng đây là một liên kết hữu ích khác: percona.com/blog/2012/11/23/ Khăn
B Seven

11

Khi mà

  • bảng đủ nhỏ không có sự khác biệt thực tế
  • Theo thống kê, dù sao bạn cũng sẽ trả lại hầu hết các hàng

Trường hợp thứ 2 cần đủ điều kiện

  • Quét chỉ mục sẽ thay thế tìm kiếm chỉ mục nếu chỉ mục được bao phủ
  • Một chỉ mục tìm kiếm hoặc quét với nhiều hàng yêu cầu tra cứu khóa / đánh dấu sẽ tốn kém và quét bảng có thể tốt hơn

Cuối cùng

  • Quét chỉ mục và quét bảng khá giống nhau đối với các chỉ mục được nhóm

6

Nếu cái bàn

  • rất nhỏ
  • chi phí thực hiện quét chỉ mục và sau đó một số lần tra cứu dấu trang vào bảng cơ sở đắt hơn so với quét toàn bộ bảng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.