2009-06-17 39 views
5

Tôi có kế hoạch thực hiện cho một phép nối khá phức tạp, cho thấy chỉ mục tìm kiếm được thực hiện trên bảng có đọc "Số lượng thực tế hàng" ~ 70.000, khi thực tế chỉ có ~ 600 hàng trong bảng (tổng số hàng ước tính chỉ là 127).Kế hoạch thực thi SQL hiển thị "Số hàng thực tế" lớn hơn kích thước bảng

Lưu ý rằng tất cả các số liệu thống kê được cập nhật và các tham số đầu vào cho truy vấn chính xác giống như các tham số được nhập khi proc được biên dịch.

Tại sao số hàng thực tế quá cao và số "Số thực tế hàng" thực sự có ý nghĩa gì?

Lý thuyết duy nhất của tôi là số hàng cao có liên quan đến vòng lặp lồng nhau và chỉ mục này đang được thực hiện một số lần - "Số hàng thực tế" thực sự đại diện cho tổng số hàng trên tất cả các lần thực thi . Nếu đây là trường hợp thì số hàng ước tính cũng có nghĩa là tổng số hàng trên tất cả các lần thực thi?

+1

Tôi tin rằng giả định của bạn là chính xác – Avitus

Trả lời

9

ActualRows đếm số lần GetNext() được gọi trên toán tử vật lý.

Bạn cũng nên nhìn vào ActualRebinds, ActualRewinds and ActualEndOfScans để có được một ý tưởng bao nhiêu lần vòng lặp bên trong được đánh giá lại:

Một rebind có nghĩa là một hoặc nhiều thông số tương quan của kết nối thay đổi và bên trong phải là được đánh giá lại. A tua lại có nghĩa là không có thông số tương quan nào thay đổi và bộ kết quả bên trong trước có thể là được sử dụng lại.

3

số thực tế của các giá trị hàng là kết quả của tất cả các giá trị đã xử lý cho nút đó trong gói exec. vì vậy có nó sẽ đưa vào tài khoản các vòng lồng nhau tham gia.

Các vấn đề liên quan