Các tỷ lệ phần trăm chi phí trong SQL Server này có kế hoạch hơn 100% vì một lý do hợp lệ không?


13

Tôi đang xem qua bộ đệm của kế hoạch, tìm kiếm trái cây tối ưu hóa treo thấp và tình cờ thấy đoạn trích này:

nhập mô tả hình ảnh ở đây

Tại sao nhiều chi phí được liệt kê trên 100%? Điều đó có nên không thể?


Tôi thậm chí đã thấy chi phí lên tới 1 triệu% so với kế hoạch ước tính. Chỉ cần sử dụng chi phí thực sự, nó sẽ được tốt hơn.
Mary

5
Bởi vì toán học của SQL Server bị rối tung. Lấy Plan Explorer miễn phí của chúng tôi ; chúng ta không có vấn đề này
Aaron Bertrand

Tôi yêu SQL Sentry Plan Explorer, Aaron - Tôi đã sử dụng nó được một thời gian rồi. Tôi muốn xem những gì phiên bản pro làm!
Max Vernon

Câu trả lời:


12

Công cụ ước tính chi phí trực quan là tào lao. Loại công cụ này xảy ra tất cả các thời gian. Chỉ cần đi với những người cao nhất là đắt nhất và tấn công những người đầu tiên.


Bạn đã bao giờ thấy điều này với các phiên bản trước của SQL Server chưa? Theo như tôi quan tâm, tôi chưa bao giờ nhận thấy nó trên SS 2008R2 chẳng hạn.
KookieMonster

5
Tôi đã thấy nó hoàn toàn trở lại SQL 2000. Theo như tôi biết thì đó chỉ là một lỗi trong SSMS (và EM) khi nó thực hiện phép toán để tìm ra tỷ lệ phần trăm.
mrdenny

2

Tôi cũng tò mò về lý do tại sao đôi khi một số chi phí được hiển thị là 100%, 200%, 300% ... và thậm chí nhiều hơn nữa. Sau khi phân tích tệp xml của kế hoạch truy vấn, tôi đã nhận được nó.

Tỷ lệ phần trăm chi phí = EstimatedTotalSubtreeCostnút của tôi / chaEstimatedTotalSubtreeCost

Ví dụ: chương trình truy vấn của bạn hiển thị Clustered Index Insertmất 914%, để hiểu cách tính phần trăm này, 1. Move mouse to `Clustered Index Insert` to show popup, you can see the cost `EstimatedTotalSubtreeCost`, e.g, 0.2 2. Move mouse to this node's parent node `COND WITH QUERY`, check the popup to get `EstimatedTotalSubtreeCost`, e.g, 0.0218818 3. Calculate 0.2/0.0218818 = 914%, this is the cost percentage displayed in `Clustered Index Insert` popup


1
0.002/2.180.000917(giống như 0.0917%) và không 914%.
ypercubeᵀᴹ

Cảm ơn bình luận của bạn. Tôi sẽ sửa đổi câu trả lời của tôi. Rốt cuộc, nó chỉ là một mẫu để chỉ ra cách tính tỷ lệ phần trăm.
osexp2003
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.