¿Los porcentajes de costo en este plan de SQL Server son superiores al 100% por una razón válida?


13

Estoy mirando a través del caché del plan, buscando fruta de optimización de bajo perfil y encontré este fragmento:

ingrese la descripción de la imagen aquí

¿Por qué muchos de los costos están por encima del 100%? ¿No debería ser eso imposible?


Incluso vi costos de hasta 1% del plan estimado. Simplemente use el costo real, debería ser mejor.
— Marian

55
Porque las matemáticas de SQL Server están en mal estado. Tome nuestro Plan Explorer gratuito ; No tenemos este problema.
— Aaron Bertrand

Me encanta el explorador de planes SQL Sentry, Aaron. Lo he estado usando por un tiempo. ¡Quiero ver qué hace la versión pro!
— Max Vernon

Respuestas:


12

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.


¿Alguna vez has visto esto con versiones anteriores de SQL Server? Por lo que a mí respecta, nunca lo he notado en SS 2008R2, por ejemplo.
— KookieMonster

55
Lo he visto desde SQL 2000. Hasta donde sé, es solo un error en SSMS (y EM) cuando hace los cálculos para calcular los porcentajes.
— mrdenny

2

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 Insertun 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


1
0.002/2.18es 0.000917(que es lo mismo que 0.0917%) y no 914%.
— ypercubeᵀᴹ

gracias por tu comentario. Modificaré mi respuesta Después de todo, es solo una muestra para mostrar cómo calcular el porcentaje.
— osexp2003
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.