Partilhar via


Como o Repositório de Consultas coleta dados

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do AzureBanco de Dados SQL do Azure Synapse Analyticsno Microsoft Fabric

O Repositório de Consultas do SQL Server funciona como um gravador de dados de voo, coletando constantemente informações de compilação e tempo de execução relacionadas a consultas e planos. Os dados relacionados à consulta são mantidos nas tabelas internas e apresentados aos usuários por meio de um conjunto de modos de exibição.

Views

O diagrama a seguir mostra as exibições do Repositório de Consultas e suas relações lógicas, com informações de tempo de compilação apresentadas como entidades azuis:

Visualizações de processo do Repositório de Consultas
Ver descrições

View Description
sys.query_store_query_text Apresenta textos de consulta únicos executados no banco de dados. Comentários e espaços antes e depois do texto da consulta são ignorados. Comentários e espaços dentro do texto não são ignorados. Cada instrução no lote gera uma entrada de texto de consulta separada.
sys.query_context_settings Apresenta combinações exclusivas de configurações que afetam o plano sob as quais as consultas são executadas. O mesmo texto de consulta executado com diferentes configurações que afetam o plano produz uma entrada de consulta separada no Repositório de Consultas porque context_settings_id faz parte da chave de consulta.
sys.query_store_query Consultas que são rastreadas e aplicadas separadamente no Query Store. Um único texto de consulta pode produzir várias entradas de consulta se for executado em diferentes configurações de contexto ou se for executado fora versus dentro de diferentes módulos Transact-SQL, como procedimentos armazenados e gatilhos.
sys.query_store_plan Apresenta o plano estimado para a consulta com as estatísticas de tempo de compilação. O plano armazenado é equivalente ao que o utilizador obtém usando SET SHOWPLAN_XML ON.
sys.query_store_runtime_stats_interval O Repositório de Consultas divide o tempo em janelas de tempo geradas automaticamente (intervalos) e armazena estatísticas agregadas sobre esse intervalo para cada plano executado. O tamanho do intervalo é controlado pela opção de configuração Statistics Collection Interval (no Management Studio) ou INTERVAL_LENGTH_MINUTES usando ALTER DATABASE SET Options (Transact-SQL).
sys.query_store_runtime_stats Estatísticas de tempo de execução agregadas para planos executados. Todas as métricas capturadas são expressas na forma de quatro funções estatísticas: Média, Mínimo, Máximo e Desvio Padrão.

Para obter mais informações sobre modos de exibição do Repositório de Consultas, consulte a seção "Modos de exibição, funções e procedimentos relacionados" de Monitorando o desempenho usando o Repositório de Consultas.

Processamento de consultas

O Repositório de Consultas interage com o pipeline de processamento de consultas nos seguintes pontos-chave:

  1. Quando uma consulta é compilada pela primeira vez, o texto da consulta e o plano inicial são enviados para o Repositório de Consultas.

  2. Quando uma consulta é recompilada, o plano é atualizado no Query Store. Se um novo plano for criado, o Repositório de Consultas adicionará a nova entrada de plano para a consulta e manterá os anteriores juntamente com suas estatísticas de execução.

  3. Após a execução da consulta, as estatísticas de tempo de execução são enviadas para o Repositório de Consultas. O Query Store mantém estatísticas agregadas precisas para cada plano que foi executado dentro do intervalo atualmente ativo.

  4. Durante as fases de compilação e verificação de recompilação, o SQL Server determina se há um plano no Repositório de Consultas que deve ser aplicado para a consulta em execução no momento. Se houver um plano forçado e o plano no cache de procedimentos for diferente do plano forçado, a consulta será recompilada. Isso é efetivamente da mesma forma como se PLAN HINT fosse aplicado a essa consulta. Esse processo acontece de forma transparente com o aplicativo do usuário.

O diagrama a seguir mostra os pontos de integração explicados nas etapas anteriores:

Processo de armazenamento de consultas

Remarks

Para minimizar a sobrecarga de E/S, novos dados são capturados na memória. As operações de gravação são enfileiradas e liberadas no disco posteriormente. As informações de consulta e plano, mostradas como Repositório de Planos no diagrama a seguir, são descarregadas com latência mínima. As estatísticas de tempo de execução, mostradas como Estatísticas de tempo de execução, são mantidas na memória por um período de tempo definido com a DATA_FLUSH_INTERVAL_SECONDSSET QUERY_STORE opção da instrução. Você pode usar a caixa de diálogo do Repositório de Consultas do Management Studio para inserir um valor para Intervalo de Liberação de Dados (Minutos), que será convertido internamente em segundos.

Plano de processo do Repositório de Consultas

Se o sistema falhar ou ocorrer um desligamento ao usar o sinalizador de rastreamento 7745, o Repositório de Consultas poderá perder dados de tempo de execução que foram coletados, mas ainda não persistiram, até uma janela de tempo definida com DATA_FLUSH_INTERVAL_SECONDS. Recomendamos o valor padrão de 900 segundos (15 minutos) como um equilíbrio entre o desempenho da captura de consulta e a disponibilidade de dados.

Important

O limite de Tamanho Máximo (MB) não é rigorosamente aplicado. O tamanho do armazenamento é verificado somente quando o Repositório de Consultas grava dados no disco. Este intervalo é definido pelo valor Data Flush Interval. Se o Repositório de Consultas tiver violado o limite de tamanho máximo entre as verificações de tamanho de armazenamento, ele passará para o modo somente leitura. Se o Modo de Limpeza Baseado em Tamanho estiver ativado, o mecanismo de limpeza para impor o limite de tamanho máximo também será acionado.

Note

Se o sistema estiver sob pressão de memória, as estatísticas de tempo de execução podem ser liberadas para o disco mais cedo do que o definido com DATA_FLUSH_INTERVAL_SECONDS.

Durante a leitura dos dados do Repositório de Consultas, os dados na memória e no disco são unificados de forma transparente.

Se uma sessão for encerrada ou o aplicativo cliente for reiniciado ou falhar, as estatísticas de consulta não serão registradas.

Informações do plano de processo do Repositório de Consultas

Consulte também

Monitorando o desempenho usando o Repositório de Consultas
Práticas recomendadas com o Repositório de Consultas
Exibições de catálogo do repositório de consultas (Transact-SQL)