Estou tentando entender as consultas caras ativas e as consultas caras recentes no Activity Monitor. O que é caro significa aqui? Isso significa caro em termos de CPU, bloco, memória, leituras?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Depende de qual coluna você classifica. Para aprofundar, sugiro que você leia o código-fonte em que eles estão. Eu escrevi sobre AM há um tempo atrás, aqui está uma parte desse post do blog:
O painel “Consultas caras recentes”:
Isso mostra as consultas mais caras, com base em qual coluna você classifica, executadas desde o último instantâneo. Se você tiver, digamos, um intervalo de instantâneo de 10 segundos, verá apenas as consultas executadas durante esses 10 segundos. AM usa um procedimento chamado #am_get_querystats para coletar as informações. Há algumas coisas acontecendo dentro deste procedimento, mas no nível mais básico, ele usa sys.dm_exec_query_stats e sys.dm_exec_requests para obter consultas do cache e consultas atualmente em execução. Em seguida, ele faz algum processamento e armazena o resultado em tabelas temporárias para que possamos classificar em colunas diferentes, dependendo da métrica em que estamos interessados. Sugiro que você gaste algum tempo com o código-fonte se quiser se aprofundar.
O painel "Consultas caras ativas":
Isso é muito direto. Ele executa uma consulta que usa sys.dm_exec_requests unidos a alguns outros DMVs.
Aqui está um link para minha postagem no blog: http://sqlblog.karaszi.com/explaining-activity-monitor/