Estou examinando o cache do plano, procurando por frutos de otimização fáceis e me deparei com este snippet:
Por que muitos dos custos listados acima de 100%? Isso não deveria ser impossível?
Estou examinando o cache do plano, procurando por frutos de otimização fáceis e me deparei com este snippet:
Por que muitos dos custos listados acima de 100%? Isso não deveria ser impossível?
O estimador de custo visual é uma porcaria. Esse tipo de coisa acontece o tempo todo. Basta ir com os mais altos são os mais caros e atacar os primeiros.
Eu também estava curioso para saber por que às vezes alguns custos são exibidos como 100%, 200%, 300% ... e até mais. Depois de analisar o arquivo xml do plano de consulta, consegui.
A porcentagem de custo = meu
EstimatedTotalSubtreeCost
/ nó paiEstimatedTotalSubtreeCost
Por exemplo, seu plano de consulta mostra
Clustered Index Insert
custo de 914%, para entender como ele calcula 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