Insights de consulta no data warehousing do Fabric
Aplica-se a:✅ ponto de extremidade de análise SQL e Warehouse no Microsoft Fabric
No Microsoft Fabric, o recurso de insights de consulta é uma solução escalável, sustentável e extensível para aprimorar a experiência de análise SQL. Com dados históricos de consulta, informações agregadas e acesso ao texto real da consulta, você pode analisar e ajustar o desempenho da consulta. QI fornece informações sobre consultas executadas apenas no contexto de um usuário, 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 ponto de extremidade de análise SQL ou Warehouse. 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 completo da consulta para as funções de Administrador, Membro e Colaborador.
- Dados históricos da 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 informações de consulta.
- Informações agregadas: o recurso de insights de consulta agrega dados de execução de consulta em informações mais acionáveis, como a identificação de consultas de longa duração ou a maioria dos usuários ativos. Essas agregações são baseadas na forma da 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 SQL ou Armazém dentro de um espaço de trabalho de capacidade Premium com permissões de colaborador ou superiores.
Quando você precisa de 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?
- Existem consultas de longa duraçã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 consultas
- 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á alguma consulta que tenha um desempenho consistentemente ruim?
Monitorização da Atividade do Utilizador
- 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 visões do sistema para fornecer respostas a essas 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 consultas executadas com freqüência.
queryinsights.long_running_queries (Transact-SQL)
- Retorna as informações sobre consultas por tempo de execução da consulta.
queryinsights.frequently_run_queries (Transact-SQL)
- Retorna informações sobre consultas executadas com freqüência.
Onde você pode ver informações sobre consultas?
As exibições geradas automaticamente estão sob o queryinsights
esquema no ponto de extremidade de análise 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 queryinsights
dados de execução nas exibições do ponto de extremidade de análise do Warehouse ou do SQL Analytics ao qual você estava conectado. Se você executar uma consulta entre bancos de dados enquanto estiver no contexto do WH_2
, sua consulta aparecerá nas informações de consulta do WH_2
. As consultas concluídas podem levar até 15 minutos para aparecer nas informações de consulta, dependendo da carga de trabalho simultânea que está sendo executada. O tempo necessário para que as consultas apareçam nas informações de consulta aumenta com o aumento das consultas simultâneas sendo executadas.
Como consultas semelhantes são agregadas para gerar insights?
As consultas são consideradas iguais pelo Query Insights se tiverem a mesma forma, mesmo que os predicados possam ser diferentes.
Você pode utilizar a query hash
coluna nas exibições para analisar consultas semelhantes e detalhar cada execução.
Por exemplo, as seguintes consultas são consideradas iguais 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, que retorna seu nome de USER_NAME()
usuário da sessão atual.
SELECT * FROM queryinsights.exec_requests_history
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();
Identificar as principais consultas consumidoras de 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 a maioria dos dados remotamente em vez de cache
Você pode determinar se a varredura de dados grandes durante a execução da consulta está atrasando sua consulta e tomar decisões para ajustar seu código de consulta de acordo. Essa análise permite comparar diferentes execuções de consulta e identificar se a variância na quantidade de dados digitalizados é 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 e comparando-a com a data_scanned_remote_storage_mb
de execuções passadas.
Nota
Os valores de dados digitalizados podem não considerar os dados movidos durante os estágios intermediários de execução da consulta. Em alguns casos, o tamanho dos dados movidos e da CPU necessária para processar pode ser maior do que o valor dos dados digitalizados indica.
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 no texto da consulta
A consulta a seguir retorna as consultas mais recentes que correspondem a uma determinada cadeia de caracteres, ordenadas pelo número de execuções bem-sucedidas decrescentes.
SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;
Identificar consultas de longa execução usando uma substring no texto da consulta
A consulta a seguir retorna as consultas que correspondem a uma determinada cadeia de caracteres, ordenadas 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;