Partilhar via


Visualização e Interpretação de Diagnósticos de Consultas no Power BI

Introdução

Depois de registares os diagnósticos que queres usar, o passo seguinte é conseguires perceber o que dizem.

É útil ter uma boa compreensão do que significa exatamente cada coluna no esquema de diagnóstico de consultas, o que não vamos repetir neste breve tutorial. Há aqui uma descrição completa disso.

Em geral, ao construir visualizações, é melhor usar a tabela detalhada completa. Porque, independentemente de quantas linhas tenha, provavelmente o que estás a observar é uma representação de como o tempo gasto em diferentes recursos se acumula ou como a consulta nativa foi emitida.

Como mencionado no nosso artigo sobre o registo dos diagnósticos, estou a trabalhar com os registos OData e SQL da mesma tabela (ou quase isso)—a tabela Customers da Northwind. Em particular, vou focar-me nos pedidos comuns dos nossos clientes e num dos conjuntos de traços mais fáceis de interpretar: a atualização completa do modelo de dados.

Construção das visualizações

Quando se analisam rastos, há muitas formas de os avaliar. Neste artigo, vamos focar-nos numa divisão em duas visualizações — uma para mostrar os detalhes que lhe interessam, e outra para analisar facilmente as contribuições temporais de vários fatores. Para a primeira visualização, é usada uma tabela. Podes escolher qualquer campo que quiseres, mas os recomendados para uma visão fácil e geral do que está a acontecer são:

Para a segunda visualização, uma opção é usar um Gráfico de Colunas Empilhado. No parâmetro 'Axis', pode querer usar 'Id' ou 'Step'. Se estivermos a analisar a Atualização, uma vez que não tem nada a ver com os passos no próprio Editor, provavelmente só queremos focar no 'Id'. Para o parâmetro 'Legend', deve definir 'Categoria' ou 'Operação' (dependendo da granularidade que pretende). Para o 'Valor', define 'Duração Exclusiva' (e certifica-te de que não é o %, para obteres o valor bruto da duração). Finalmente, para a dica de ferramenta, defina ' Hora de Início Mais Cedo'.

Depois de construir a visualização, certifica-te de ordenar por 'Hora de Início Mais Inicial' ascendente para poderes ver a ordem em que as coisas acontecem.

Visualização de detalhes e agregação temporal.

Embora as suas necessidades exatas possam ser diferentes, esta combinação de gráficos é um bom ponto de partida para consultar inúmeros ficheiros de diagnóstico e para vários fins.

Interpretação das visualizações

Como mencionado acima, há muitas perguntas que pode tentar responder com diagnósticos de consultas, mas as duas que vemos mais frequentemente são como o tempo é gasto e qual é a consulta enviada para a fonte de dados.

Perguntar como o tempo é gasto é fácil, e será semelhante para a maioria dos conectores. Um aviso com o diagnóstico de consultas, como mencionado noutro lado, é que vais ver capacidades drasticamente diferentes dependendo do conector. Por exemplo, muitos conectores baseados em ODBC não terão um registo preciso de que consulta é enviada para o sistema de back-end real, uma vez que o Power Query apenas vê o que envia para o driver ODBC.

Se quisermos ver como o tempo é gasto, podemos simplesmente olhar para as visualizações que construímos acima.

Agora, como os valores de tempo para as consultas de exemplo que estamos a usar aqui são tão pequenos, se quisermos trabalhar com a forma como o Power BI reporta o tempo, é melhor convertermos a coluna Duração Exclusiva em 'Segundos' no editor Power Query. Depois de fazermos esta conversão, podemos olhar para o nosso gráfico e ter uma ideia razoável de onde o tempo é gasto.

Nos meus resultados do OData, vejo na imagem que a grande maioria do tempo foi gasta a recuperar os dados da fonte—se selecionar o item 'Data Source' na legenda, mostra-me todas as diferentes operações relacionadas com o envio de uma consulta à Data Source.

Resumo do Diagnóstico da Consulta OData Northwind.

Se fizermos todas as mesmas operações e construirmos visualizações semelhantes, mas com os traços SQL em vez dos ODATA, podemos ver como as duas fontes de dados se comparam!

Resumo do Diagnóstico de Consultas OData Northwind com rastreamentos SQL.

Se selecionarmos a tabela Data Source, tal como nos diagnósticos ODATA, podemos ver que a primeira avaliação (2.3 nesta imagem) emite consultas de metadados, enquanto a segunda avaliação recupera realmente os dados que nos interessam. Como estamos a recolher pequenas quantidades de dados neste caso, os dados recolhidos demoram um pequeno período de tempo (menos de um décimo de segundo para toda a segunda avaliação acontecer, com menos de um vigésimo de segundo para a própria recuperação dos dados), mas isso não será verdade em todos os casos.

Como acima, podemos selecionar a categoria 'Fonte de Dados' na legenda para ver as consultas emitidas.

Explorando os dados

Observar caminhos

Quando estiver a analisar isto, se parecer que o tempo gasto é estranho — por exemplo, na consulta OData pode ver que existe uma Consulta de Fonte de Dados com o seguinte valor:

Request:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7

<Content placeholder>

Response:
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435

<Content placeholder>

Esta Consulta de Fonte de Dados está associada a uma operação que ocupa apenas, digamos, 1% da Duração Exclusiva. Entretanto, há um semelhante:

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

Esta Consulta de Fonte de Dados está associada a uma operação que ocupa quase 75% da Duração Exclusiva. Se ligares o Caminho, descobres que este último é, na verdade, filho do primeiro. Isto significa que a primeira consulta basicamente adicionou um pequeno período de tempo por si só, com a recuperação real dos dados a ser acompanhada pela consulta 'interna'.

Estes são valores extremos, mas estão dentro dos limites do que pode ser visto.