เปอร์เซ็นต์ค่าใช้จ่ายใน SQL Server นี้วางแผนมากกว่า 100% ด้วยเหตุผลที่ถูกต้องหรือไม่?


14

ฉันกำลังมองผ่านแคชแผนมองหาผลไม้เพิ่มประสิทธิภาพที่แขวนต่ำและพบกับตัวอย่างนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ทำไมต้นทุนหลายรายการที่แสดงไว้สูงกว่า 100% ไม่ควรที่จะเป็นไปไม่ได้?


ฉันยังเห็นค่าใช้จ่ายสูงถึง 1 ล้าน% จากแผนโดยประมาณ เพียงแค่ใช้ต้นทุนจริงมันควรจะดีกว่า
แมเรียน

5
เพราะคณิตศาสตร์ของ SQL Server นั้นเกิดความสับสน คว้าฟรีของเราแผน Explorer ที่ ; เราไม่มีปัญหานี้
Aaron Bertrand

ฉันรัก SQL Sentry Plan Explorer แอรอน - ฉันใช้ไปซักพักแล้ว ฉันต้องการที่จะดูว่ารุ่นโปรทำอะไร!
Max Vernon

คำตอบ:


13

ตัวประมาณราคาที่มองเห็นได้คืออึ เรื่องแบบนี้เกิดขึ้นตลอดเวลา เพียงแค่ไปกับคนที่สูงที่สุดมีราคาแพงที่สุดและโจมตีคนเหล่านั้นก่อน


คุณเคยเห็นสิ่งนี้กับ SQL Server รุ่นก่อนหน้าหรือไม่ เท่าที่ฉันกังวลฉันไม่เคยสังเกตเห็นมันใน SS 2008R2 เช่น
KookieMonster

5
ฉันเห็นมันตลอดทางจนถึง SQL 2000 เท่าที่ฉันรู้มันเป็นเพียงข้อบกพร่องใน SSMS (และ EM) เมื่อมันทำการคำนวณทางคณิตศาสตร์เพื่อหาเปอร์เซ็นต์
mrdenny

2

ฉันยังสงสัยด้วยว่าทำไมบางครั้งค่าใช้จ่ายจึงแสดงเป็น 100%, 200%, 300% ... และอีกมากมาย หลังจากวิเคราะห์ไฟล์ xml ของแผนแบบสอบถามฉันเข้าใจแล้ว

เปอร์เซ็นต์ต้นทุน = EstimatedTotalSubtreeCostโหนดของฉัน/ แม่EstimatedTotalSubtreeCost

ตัวอย่างเช่นแผนแบบสอบถามของคุณแสดงClustered Index Insertราคา 914% เพื่อให้เข้าใจว่าจะคำนวณเปอร์เซ็นต์นี้อย่างไร 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.18คือ0.000917(ซึ่งเป็นเช่นเดียว0.0917%) 914%และไม่ใช่
ypercubeᵀᴹ

ขอบคุณสำหรับความคิดเห็นของคุณ. ฉันจะแก้ไขคำตอบของฉัน ท้ายที่สุดมันเป็นเพียงตัวอย่างเพื่อแสดงวิธีการคำนวณเปอร์เซ็นต์
osexp2003
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.