Perspetivas de Consulta no Armazém de Dados do Fabric

Aplica-se a:✅ ponto final de análise SQL e o 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.

A funcionalidade de análise de consultas fornece uma localização central para dados históricos de consultas e informações úteis durante 30 dias, ajudando-o a tomar decisões informadas para melhorar o desempenho do seu Warehouse ou ponto final de análise SQL. Quando uma consulta SQL é executada no Microsoft Fabric, a funcionalidade de informações da consulta recolhe e consolida os dados da sua execução, fornecendo-lhe informações valiosas. Você pode exibir o texto completo da consulta para as funções de Administrador, Membro e Colaborador.

  • Dados históricos de consulta: O Query Insights armazena dados históricos sobre execuções de consultas, permitindo-lhe acompanhar alterações de desempenho ao longo do tempo. As consultas do sistema não são armazenadas em informações sobre consultas.
  • Insights Agregados: O Query Insights agrega dados de execução de consultas em insights mais acionáveis, como identificar consultas de longa duração ou utilizadores mais 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?
  • Análises do Armazém: Para compreender a saúde geral do seu armazém, utilize a sql_pool_insights visualização. Esta vista fornece métricas ao nível do pool e indicadores de pressão, ajudando-o a monitorizar a alocação de recursos e a diagnosticar problemas de desempenho entre pools.

Antes de começar

Deve ter acesso a um endpoint de análise SQL ou Armazém numa área de trabalho com capacidade Premium, com permissões de Colaborador ou superior.

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:

Consultar a análise de desempenho

  • 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?
  • Conseguimos 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?

Monitorização de pools SQL e de recursos

  • O meu pool SQL esteve sob pressão durante a execução da consulta?
  • Com que frequência a piscina sofreu pressão nas últimas 24 horas?
  • Houve alguma alteração recente na capacidade do espaço de trabalho ou na configuração da piscina?
  • Quais os pools que consomem a maior percentagem de recursos?
  • Posso correlacionar eventos de pressão com consultas lentas?
  • Como posso identificar tendências na pressão da piscina ao longo do tempo?

As seguintes vistas do sistema fornecem respostas a estas questões:

Onde pode ver análises de consultas?

As vistas geradas automaticamente estão no esquema queryinsights no ponto final 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.

Captura de ecrã do Fabric Explorer a mostrar onde encontrar vistas de informações sobre consultas em Schemas, queryinsights, Views.

Depois de a consulta ser executada, verá os respetivos dados de execução nas exibições queryinsights do armazém (Warehouse) ou do ponto final de análise de SQL a que estava ligado. 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.

Todas as queryinsights vistas estão disponíveis apenas no Fabric Data Warehouse e no ponto final de análise SQL.

Como consultas semelhantes são agregadas para gerar insights?

As consultas são consideradas iguais pelo Query Insights se as consultas 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 seguinte usa queryinsights.exec_requests_history e a função integrada USER_NAME(), que devolve o nome de utilizador 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;

Identifique quais as consultas que analisam mais dados a partir de uma origem remota do que da cache

Pode determinar se o varrimento de grandes volumes de dados durante a execução da consulta está a tornar a consulta mais lenta e tomar decisões para ajustar o código da consulta em conformidade. 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, pode avaliar a utilização da cache analisando a soma de data_scanned_memory_mb e data_scanned_disk_mb e comparando-a com a data_scanned_remote_storage_mb de execuções anteriores.

Nota

Os valores dos dados analisados podem não contabilizar os dados movidos durante as fases intermédias da execução da consulta. Em alguns casos, o tamanho dos dados movidos e da CPU necessária a processar pode ser maior do que o valor dos dados digitalizados indica.

Os valores de dados digitalizados aparecem como 0 para COPY INTO declarações.

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;

Visualizações de insights de consulta