As porcentagens de custo neste plano do SQL Server são superiores a 100% por um motivo válido?


13

Estou olhando através do cache do plano, procurando por frutos de otimização pendentes e me deparei com este trecho:

insira a descrição da imagem aqui

Por que muitos dos custos listados estão acima de 100%? Isso não deveria ser impossível?


Eu até vi custos de até 1 milhão de% do plano estimado. Basta usar o custo real, deve ser melhor.
Marian

5
Porque a matemática do SQL Server está bagunçada. Pegue nosso Plan Explorer gratuito ; nós não temos esse problema.
Aaron Bertrand

Adoro o SQL Sentry Plan Explorer, Aaron - já o uso há algum tempo. Eu quero ver o que a versão pro faz!
Max Vernon

Respostas:


12

O estimador de custo visual é uma porcaria. Esse tipo de coisa acontece o tempo todo. Basta ir com os mais altos, os mais caros e atacar os primeiros.


Você já viu isso nas versões anteriores do SQL Server? Para mim, nunca o notei no SS 2008R2, por exemplo.
KookieMonster

5
Eu já vi isso desde o SQL 2000. Até onde eu sei, é apenas um bug no SSMS (e EM) quando está fazendo as contas para calcular as porcentagens.
mrdenny

2

Também fiquei curioso para saber por que, às vezes, algum custo é exibido como 100%, 200%, 300% ... e até mais. Depois de analisar o arquivo xml do plano de consulta, eu entendi.

A porcentagem de custo = meu EstimatedTotalSubtreeCost/ nó principalEstimatedTotalSubtreeCost

Por exemplo, os shows do seu plano de consulta Clustered Index Insertcustam 914%, para entender como calcular essa porcentagem, 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(que é o mesmo que 0.0917%) e não 914%.
ypercubeᵀᴹ

obrigado pelo seu comentário Vou modificar minha resposta. Afinal, é apenas uma amostra para mostrar como calcular a porcentagem.
Osexp2003
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.