Compartilhar via


Visualizando e interpretando diagnósticos de consulta no Power BI

Introdução

Depois de registrar o diagnóstico que deseja usar, a próxima etapa é conseguir entender o que eles dizem.

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

Em geral, ao criar visualizações, é melhor usar a tabela detalhada completa. Porque, independentemente de quantas linhas há, o que você provavelmente está olhando é algum tipo de representação de como o tempo gasto em diferentes recursos se soma, ou qual foi a consulta nativa emitida.

Conforme mencionado em nosso artigo sobre como gravar o diagnóstico, estou trabalhando com os rastreamentos OData e SQL para a mesma tabela (ou quase assim)—a tabela Clientes da base de dados Northwind. Em particular, vou me concentrar na solicitação comum de nossos clientes e em um dos conjuntos de rastreamentos mais fáceis de interpretar: atualização completa do modelo de dados.

Compilando as visualizações

Quando você está analisando rastreamentos, há várias maneiras de avaliá-los. Neste artigo, vamos nos concentrar em uma divisão de duas visualizações: uma para mostrar os detalhes com os quais você se importa e a outra para visualizar facilmente as contribuições temporais de vários fatores. Para a primeira visualização, uma tabela é usada. Você pode escolher os campos que quiser, mas os recomendados para uma visão fácil e de alto nível do que está acontecendo são:

Para a segunda visualização, uma opção é usar um Gráfico de Colunas Empilhadas. No parâmetro 'Axis', talvez você queira usar 'Id' ou 'Step'. Se estivermos olhando para a Atualização, porque ela não tem nada a ver com as etapas no próprio Editor, provavelmente só precisamos verificar a 'ID'. Para o parâmetro 'Legenda', você deve definir 'Categoria' ou 'Operação' (dependendo da granularidade desejada). Para o 'Valor', defina 'Duração Exclusiva' (e verifique se não é o %, para que você obtenha o valor de duração bruta). Por fim, para a dica de ferramenta, defina "Mais Cedo Hora de Início".

Depois que a visualização for criada, certifique-se de classificar por " Hora de Início Mais Antiga" em ordem crescente para que você possa ver a ordem em que as coisas acontecem.

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

Embora suas necessidades exatas possam ser diferentes, essa combinação de gráficos é um bom lugar para começar a examinar vários arquivos de diagnóstico e para várias finalidades.

Interpretando as visualizações

Conforme mencionado acima, há muitas perguntas que você pode tentar responder com o diagnóstico de consulta, mas as duas que vemos com mais frequência estão perguntando quanto tempo é gasto e perguntando qual é a consulta enviada à origem.

Perguntar como o tempo é gasto é fácil e será semelhante para a maioria dos conectores. Um aviso sobre os diagnósticos de consulta, conforme mencionado em outro lugar, é que você verá capacidades drasticamente diferentes dependendo do conector. Por exemplo, muitos conectores baseados em ODBC não terão um registro preciso da consulta enviada para o sistema de back-end real, pois o Power Query só vê o que ele próprio envia para o driver ODBC.

Se quisermos ver como o tempo é gasto, podemos apenas olhar para as visualizações que criamos acima.

Agora, como os valores de tempo para as consultas de exemplo que estamos usando aqui são tão pequenos, se quisermos trabalhar com o tempo de relatórios do Power BI, é melhor converter a coluna Duração Exclusiva para 'Segundos' no editor do Power Query. Depois de fazermos essa conversão, podemos examinar nosso gráfico e ter uma ideia decente de onde o tempo é gasto.

Para meus resultados do OData, vejo na imagem que a grande maioria do tempo gasto na recuperação dos dados da origem — se eu selecionar o item 'Fonte de Dados' na legenda, ele me mostrará todas as diferentes operações relacionadas ao envio de uma consulta à Fonte de Dados.

Resumo do diagnóstico de consulta OData Northwind.

Se executarmos todas as mesmas operações e criarmos visualizações semelhantes, mas com os rastreamentos SQL em vez dos do ODATA, poderemos ver como as duas fontes de dados se comparam!

Resumo do Diagnóstico de Consulta OData Northwind com rastros SQL.

Se selecionarmos a tabela Fonte de Dados, como com o diagnóstico ODATA, poderemos ver que a primeira avaliação (2.3 nesta imagem) emite consultas de metadados, com a segunda avaliação realmente recuperando os dados com os quais nos importamos. Como estamos recuperando pequenas quantidades de dados nesse caso, os dados retirados levam uma pequena quantidade de tempo (menos de um décimo de segundo para que toda a segunda avaliação aconteça, com menos de um décimo de segundo para a recuperação de dados em si), 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.

Pesquisando os dados

Examinando caminhos

Ao observar isso, se o tempo gasto parecer estranho — por exemplo, na consulta OData, você pode ver que há 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>

Essa Consulta de Fonte de Dados está associada a uma operação que ocupa apenas, digamos, 1% da Duração Exclusiva. Enquanto isso, 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

Essa Consulta de Fonte de Dados está associada a uma operação que ocupa cerca de 75% da Duração Exclusiva. Se você ativar o Caminho, descobrirá que este último é, na verdade, um filho do primeiro. Isso significa que a primeira consulta basicamente adicionou uma pequena quantidade de tempo por conta própria, com a recuperação de dados real sendo controlada pela consulta 'interna'.

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