Insights de consulta no armazenamento de dados do Fabric
Aplica-se a:✅ ponto de extremidade de análise do SQL e Warehouse no Microsoft Fabric
No Microsoft Fabric, o recurso de insights de consulta é uma solução escalonável, sustentável e extensível para aprimorar a experiência de análise do SQL. Com dados de consulta históricos, insights agregados e acesso ao texto de consulta real, você pode analisar e ajustar o desempenho da consulta. Os insights de consulta (QI) fornecem informações sobre consultas executadas somente no contexto de um usuário; as consultas do sistema não são consideradas.
O recurso de insights de consulta fornece um local central para dados de consulta históricos e insights acionáveis por 30 dias, ajudando você a tomar decisões informadas para melhorar o desempenho do seu warehouse ou ponto de extremidade de análise do SQL. Quando uma consulta SQL é executada no Microsoft Fabric, o recurso de insights de consulta coleta e consolida seus dados de execução, fornecendo informações valiosas. Você pode exibir o texto de consulta completo para funções de Administrador, Membro e Colaborador.
- Dados históricos de consulta: o recurso de insights de consulta armazena dados históricos sobre execuções de consulta, permitindo que você acompanhe as alterações de desempenho ao longo do tempo. As consultas do sistema não são armazenadas em insights de consulta.
- Insights agregados: o recurso de insights de consulta agrega dados de execução de consulta em insights que são mais acionáveis, como identificar consultas de execução longa ou a maioria dos usuários ativos. Essas agregações são baseadas na forma de consulta. Para obter mais informações, consulte Como consultas semelhantes são agregadas para gerar insights?
Antes de começar
Você deve ter acesso a um Ponto de extremidade de análise do SQL ou Warehouse em espaço de trabalho de capacidade Premium com permissões de colaborador ou superiores.
Quando você precisa dos insights de consulta?
O recurso de insights de consulta aborda várias perguntas e preocupações relacionadas ao desempenho da consulta e à otimização do banco de dados, incluindo:
Análise de desempenho de consulta
- Qual é o desempenho histórico das nossas consultas?
- Há consultas de longa execução que precisam de atenção?
- Podemos identificar as consultas que causam gargalos de desempenho?
- O cache foi utilizado para minhas consultas?
- Quais consultas estão consumindo mais CPU?
Otimização e ajuste de consulta
- Quais consultas são executadas com frequência e seu desempenho pode ser melhorado?
- Podemos identificar consultas que falharam ou foram canceladas?
- Podemos acompanhar as alterações no desempenho da consulta ao longo do tempo?
- Há consultas que têm um desempenho ruim consistentemente?
Monitoramento de atividades do usuário
- Quem enviou uma consulta específica?
- Quem são os usuários mais ativos ou os usuários com as consultas mais longas?
Há três modos de exibição do sistema para fornecer respostas a estas perguntas:
queryinsights.exec_requests_history (Transact-SQL)
- Retorna informações sobre cada solicitação/consulta SQL concluída.
queryinsights.exec_sessions_history (Transact-SQL)
- Retorna informações sobre sessões concluídas.
queryinsights.long_running_queries (Transact-SQL)
- Retorna as informações sobre as consultas por tempo de execução da consulta.
queryinsights.frequently_run_queries (Transact-SQL)
- Retorna informações sobre consultas de execução frequente.
Onde você pode ver os insights de consulta?
Exibições geradas automaticamente estão sob o esquema queryinsights
no ponto de extremidade de análise do SQL e no Warehouse. No Fabric Explorer de um warehouse, por exemplo, localize exibições de insights de consulta em Esquemas, queryinsights, Exibições.
Depois que a consulta concluir a execução, você verá seus dados de execução nas exibições queryinsights
do warehouse ou do ponto de extremidade de análise SQL ao qual você estava conectado. Se você executar uma consulta entre bancos de dados enquanto estiver no contexto de WH_2
, sua consulta aparecerá nos insights de consulta de WH_2
. As consultas concluídas podem levar até 15 minutos para aparecer em insights de consulta, dependendo da carga de trabalho simultânea que está sendo executada. O tempo necessário para que as consultas apareçam nos insights de consulta aumenta com o aumento de consultas simultâneas sendo executadas.
Como consultas semelhantes são agregadas para gerar insights?
Se tiverem a mesma forma, as consultas são consideradas iguais pelo Query Insights, mesmo que os predicados sejam diferentes.
Você pode utilizar a coluna query hash
nas exibições para analisar consultas semelhantes e fazer uma busca detalhada de cada execução.
Por exemplo, as consultas a seguir são consideradas as mesmas depois que seus predicados são parametrizados:
SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
e
SELECT * FROM Orders
WHERE OrderDate BETWEEN '2000-07-01' AND '2006-07-31';
Exemplos
Identificar consultas executadas por você nos últimos 30 minutos
A consulta a seguir usa queryinsights.exec_requests_history
e a função interna USER_NAME()
, que retorna o nome de usuário da sessão atual.
SELECT * FROM queryinsights.exec_requests_history
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();
Identifique as principais consultas que consomem CPU por tempo de CPU
A consulta a seguir retorna as 100 principais consultas por tempo de CPU alocado.
SELECT TOP 100 distributed_statement_id, query_hash, allocated_cpu_time_ms, label, command
FROM queryinsights.exec_requests_history
ORDER BY allocated_cpu_time_ms DESC;
Identificar quais consultas estão verificando mais dados remotos em vez de cache
Você pode determinar se a verificação de dados grades durante a execução da consulta está deixando sua consulta lenta e tomar decisões para ajustar seu código de consulta adequadamente. Essa análise permite comparar diferentes execuções de consulta e identificar se a variação na quantidade de dados escaneados é o motivo das alterações de desempenho.
Além disso, você pode avaliar o uso do cache examinando a soma de data_scanned_memory_mb
e data_scanned_disk_mb
, e comparando-a com data_scanned_remote_storage_mb
para execuções anteriores.
Observação
Os valores verificados de dados podem não considerar os dados movidos durante os estágios intermediários da execução da consulta. Em alguns casos, o tamanho dos dados movidos e a CPU necessária para o processamento podem ser maiores do que o valor que os dados verificados indicam.
SELECT distributed_statement_id, query_hash, data_scanned_remote_storage_mb, data_scanned_memory_mb, data_scanned_disk_mb, label, command
FROM queryinsights.exec_requests_history
ORDER BY data_scanned_remote_storage_mb DESC;
Identificar as consultas executadas com mais frequência usando uma substring de caracteres no texto da consulta
A consulta a seguir retorna as consultas mais recentes que correspondem a uma determinada cadeia de caracteres, em ordem decrescente de número de execuções bem-sucedidas.
SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;
Identificar consultas de execução longa usando uma substring de caracteres no texto da consulta
A consulta a seguir retorna as consultas que correspondem a uma determinada cadeia de caracteres, ordenada pelo tempo médio de execução da consulta decrescente.
SELECT * FROM queryinsights.long_running_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY median_total_elapsed_time_ms DESC;