Estoy mirando a través del caché del plan, buscando fruta de optimización de bajo perfil y encontré este fragmento:
¿Por qué muchos de los costos están por encima del 100%? ¿No debería ser eso imposible?
sql-server
sql-server-2012
ssms
execution-plan
Max Vernon
fuente
fuente
Respuestas:
El estimador visual de costos es una mierda. Este tipo de cosas sucede todo el tiempo. Simplemente ir con los más altos son los más caros y atacar a los primeros.
fuente
También tenía curiosidad acerca de por qué a veces algunos costos se muestran como 100%, 200%, 300% ... e incluso más. Después de analizar el archivo xml del plan de consulta, lo obtuve.
El porcentaje de costo = mi
EstimatedTotalSubtreeCost
/ nodo principalEstimatedTotalSubtreeCost
Por ejemplo, su plan de consulta muestra
Clustered Index Insert
un costo de 914%, para comprender cómo calcula este porcentaje,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
fuente
0.002/2.18
es0.000917
(que es lo mismo que0.0917%
) y no914%
.