Tôi có câu hỏi cơ bản về Quét/Tìm kiếm Chỉ mục. Quét chỉ mục có hiệu quả khi có số lượng lớn các hàng cần tìm nạp. Đó là chi phí quét chỉ mục tỷ lệ nghịch với số hàng được trả về. Đó là ít hơn số hàng đắt hơn truy vấn trở nên vì nó phải quét tất cả các trang dẫn đến nhiều IO hơn.Tại sao chỉ mục tìm kiếm trở nên đắt hơn so với quét chỉ mục
Tôi đã tìm kiếm lý do tại sao tìm kiếm trở nên đắt hơn quét nhưng tôi không thể có lý do tại sao tìm kiếm trở nên đắt đỏ.
Điều tôi đang nhầm lẫn là tìm kiếm chỉ mục. Tại sao chỉ số tìm kiếm trở nên đắt đỏ với số hàng được trả về nhiều hơn. Tìm kiếm chỉ mục sẽ luôn nhanh hơn và hiệu quả hơn quét khi nó chạm trực tiếp vào các trang có chứa các hàng. Vì vậy, ngay cả với số lượng lớn các hàng trả về tìm kiếm chỉ mục luôn luôn có hiệu quả hơn so với quét chỉ mục. Nhưng điều này không xảy ra. Tôi muốn biết chính xác tại sao tại một số điểm tìm kiếm trở nên đắt tiền.
select id,name,col1,col2
from TableA -- Will result in index scan. Table has 10000 rows with clustered index on ID column. Query has covering index.
select id,name,col1,col2
where ID between 1 and 10
from TableA -- Optimizer Will use index Seek.
Bây giờ tại sao truy vấn dưới đây trở nên đắt đỏ khi chỉ mục tìm kiếm được buộc vào -
select id,name,col1,col2
from TableA with (forceseek)
có thể [this] (http://blog.sqlauthority.com/2007/03/30/sql-server-index-seek-vs-index-scan-table-scan/) giúp !!! – Praveen
Chi phí đủ điều kiện tìm kiếm có thể là nguyên nhân – Ian
Điều gì có trong chỉ mục? Chỉ là ID? Nó là một chỉ số nhóm? Nếu không thì tra cứu khóa cần thiết để có được các cột khác sẽ là lý do cho việc đạt hiệu suất. – strickt01