Na execução de uma consulta, temos o custo estimado da subárvore de uma instrução e também podemos observar, por exemplo, o tempo de CPU ou leituras lógicas.
O custo estimado da subárvore incorpora o custo de aquisição de bloqueio e escalonamento de bloqueio em sua fórmula? Também acho que o processo de gerenciamento de bloqueios requer CPU. O tempo de CPU de uma consulta inclui o tempo de CPU usado para gerenciamento de bloqueio e tarefas relacionadas a bloqueio?
O custo estimado da subárvore é uma estimativa aproximada do custo da consulta, com base no tempo de execução da consulta em um computador específico há 20 anos . Ele é usado pelo otimizador de consulta baseado em custo para avaliar qual plano de consulta escolher.
Ele é calibrado para contabilizar o custo de bloqueio, mas provavelmente é uma estimativa muito aproximada para contabilizar o escalonamento de bloqueio.
O custo de CPU dos planos de consulta reais é a melhor medida individual do custo de consulta, pois a maioria das operações de consulta acaba consumindo tempo de CPU. Em particular, o tempo de CPU é responsável por IO lógico, bloqueio, leitura de páginas de dados, execução de cálculos e comparações, etc.
A única parte do tempo decorrido de uma consulta que não é contabilizada pelo tempo de CPU são as esperas, e as esperas normalmente não são inerentes a uma consulta, mas causadas pela interação com outras sessões ou pela necessidade de ler dados que não estão na página cache ou para confirmar uma transação no arquivo de log, etc.