Este achado não aponta problema no banco. Ele explica um número estranho do perfil: tempo não contabilizado negativo, que vem da forma como o sistema operacional mede a CPU.
Sintomas
No Diagnóstico, aparece o achado CPU medida acima do tempo decorrido (CPU_ACIMA_DO_DECORRIDO), com um percentual negativo do tempo total. O texto diz que é efeito da granularidade da medida de CPU em chamadas curtas e que não indica problema no banco, e termina com Ver no perfil.
O achado aparece quando o componente tempo não contabilizado dentro das chamadas fica claramente negativo. A severidade é sempre baixa. No perfil, o componente aparece com valor negativo, no fim da lista.
Causa
O tempo não contabilizado dentro de uma chamada é a duração (e=) menos a CPU (c=), as esperas e as chamadas filhas. Duração e CPU vêm de medidas diferentes do sistema operacional, e a de CPU é mais grossa. Em chamadas curtas, o erro dessa medida pode deixar a CPU maior que a duração; somado em muitas chamadas, o resultado fica negativo.
Em traces antigos, com tempo em centésimos de segundo, o efeito é maior. O relatório mostra a unidade em Unidade de tempo, no quadro Sessão e ambiente do Resumo.
Resolução
- Não há o que corrigir no banco. Leia o perfil normalmente e ataque o maior componente positivo (o método).
- Leve em conta que a CPU do perfil está acima do real em mais ou menos o tamanho do valor negativo. Se a CPU é o maior componente, o peso dela está um pouco inflado.
- Para conferir a explicação, veja na distribuição de latência das chamadas, como FETCH (duração e da chamada), se a maioria delas cai nas faixas mais curtas.
Como confirmar
Como o achado não aponta problema, não há correção a medir. Num trace novo da mesma operação, o valor negativo pode voltar enquanto a sessão fizer muitas chamadas curtas. Se a operação passar a fazer menos chamadas, e mais longas, o valor se aproxima de zero.
No relatório
O relatório de exemplo não tem este achado: lá o componente é positivo, com 2,3% do tempo total. Os links abrem as seções do exemplo:
- Diagnóstico: o achado, com o percentual negativo e o link Ver no perfil.
- Perfil, linha tempo não contabilizado dentro das chamadas: o valor negativo em Duração (s) e em % do total. O texto do perfil também avisa que o valor negativo vem da granularidade da medida de CPU.
- Distribuição de latência do FETCH e das outras chamadas: quantas chamadas são curtas.
- Resumo: Unidade de tempo, no quadro Sessão e ambiente.