Ich durchsuche den Plan-Cache, suche nach niedrig hängenden Optimierungsfrüchten und bin auf dieses Snippet gestoßen:
Warum sind viele der Kosten über 100% aufgeführt? Sollte das nicht unmöglich sein?
Ich durchsuche den Plan-Cache, suche nach niedrig hängenden Optimierungsfrüchten und bin auf dieses Snippet gestoßen:
Warum sind viele der Kosten über 100% aufgeführt? Sollte das nicht unmöglich sein?
Antworten:
Der visuelle Kostenschätzer ist Mist. Diese Art von Sachen passiert die ganze Zeit. Gehen Sie einfach mit den höchsten, die am teuersten sind, und greifen Sie diese zuerst an.
Ich war auch neugierig, warum manchmal Kosten in Form von 100%, 200%, 300% und mehr angezeigt werden. Nachdem ich die XML-Datei des Abfrageplans analysiert habe, habe ich sie erhalten.
Der Kostenprozentsatz = mein EstimatedTotalSubtreeCost
/ übergeordneter KnotenEstimatedTotalSubtreeCost
In Ihrem Abfrageplan werden beispielsweise Clustered Index Insert
Kosten in Höhe von 914% angegeben, um zu verstehen, wie dieser Prozentsatz berechnet wird.
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
0.002/2.18
ist 0.000917
(was dasselbe ist wie 0.0917%
) und nicht 914%
.