Tipo de coletor Atividade de Consulta
O tipo de coletor de Atividade de Consulta é um tipo de coletor personalizado usado pelo conjunto de coleta de Estatísticas da Consulta, um dos conjuntos de coleta de dados predefinidos do sistema.
Esse tipo de coletor é usado para coletar estatísticas de consulta e informações de atividade de consulta juntamente com o plano e o texto de consultas que atendem a critérios predefinidos. Se você criar seu próprio conjunto de coleta usando esse tipo de coletor, ele coletará as mesmas informações que o conjunto de coleta Estatísticas da Consulta. Portanto, é recomendável que você use o conjunto de coleta Estatísticas da Consulta predefinido.
Arquitetura e processamento
O tipo de coletor de Atividade de Consulta consiste nos seguintes elementos:
Um esquema de parâmetros de entrada (interno)
Um pacote do SSIS para coleta de dados (QueryActivityCollect.dtsx)
Um pacote do SSIS para carregamento de dados (QueryActivityUpload.dtsx)
Além disso, esse tipo de coletor usa transformações ou tarefas personalizadas para analisar e selecionar dados para armazenamento no data warehouse de gerenciamento.
O tipo de coletor de Atividade de Consulta executa as seguintes operações:
Ele coleta exemplos de dm_exec_requests, dm_exec_sessions e seleciona outras exibições de gerenciamento dinâmico relacionadas. Isto é implementado como uma única consulta unida. A coleta de dados ocorre com a frequência especificada para o item de coleta.
Ele coleta instantâneos da exibição de gerenciamento dinâmico dm_exec_query_stats com uma frequência igual à frequência de carregamento do conjunto de coleta. Por padrão, o conjunto de coleta Estatísticas de Consulta tem uma frequência de carregamento de 15 minutos.
Fase de coleta
A tabela a seguir mostra a consulta usada durante a fase de coleta. Essa consulta é definida no pacote do SSIS QueryActivityCollect.dtsx.
Frequência da coleta |
10 segundos |
Consulta |
|
Fase de carregamento
Durante a fase de carregamento, os dados coletados são analisados para determinar quais dados serão salvos no data warehouse de gerenciamento. Essa análise determina um conjunto de estatísticas, planos e texto da consulta que precisam ser salvos.
Um elemento principal é um algoritmo que seleciona as consultas e os planos de consulta a serem salvos no data warehouse. Esse algoritmo funciona da seguinte maneira:
Coleta um instantâneo de sys.dm_exec_query_stats. Esse instantâneo é coletado na mesma frequência do carregamento do conjunto de coleta. (Por padrão, 15 minutos).
Recupera o instantâneo mais recente (de 15 minutos atrás) para comparação com o novo instantâneo. O instantâneo mais recente é armazenado em cache localmente e não precisa ser recuperado do data warehouse de gerenciamento.
Seleciona as três principais consultas de cada instantâneo usando a métrica a seguir:
Tempo decorrido
Tempo de trabalho
Leituras lógicas
Gravações lógicas
Leituras físicas
Contagem de execuções
Esse processo fornece 6 x 3 sql_handles e plan_handles.
Identifica os sql_handles e plan_handles exclusivos.
Cruza esse resultado com os sql_handles e plan_handles armazenados no data warehouse.
Para sql_handles e plan_handles novos, obtém o plano e o texto do servidor. Se o plano ou o texto não for localizado (talvez já tenha sido removido do cache local), armazena os identificadores no data warehouse de gerenciamento.
Para cada texto sql_handle coletado, normaliza o texto (por exemplo, remove parâmetros e literais) e calcula o valor de hash exclusivo do texto normalizado. Armazena o texto normalizado, o valor de hash e o mapeamento para o sql_handle original no data warehouse de gerenciamento.
A tabela a seguir mostra a consulta usada para obter os instantâneos e analisar e, em seguida, carregar os dados no data warehouse de gerenciamento. Essa consulta é definida no pacote do SSIS QueryActivityUpload.dtsx.
Consulta |
|
Saída da consulta |
snapshots.query_stats, snapshots.notable_query_text e snapshots.notable_query_plan |
Consulte também