Visualizando e interpretando o diagnóstico de consultas no Power BI

Introdução

Depois de gravar o diagnóstico que você deseja usar, a próxima etapa é ser capaz de entender o que eles dizem.

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

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

conforme mencionado em nosso artigo sobre como registrar o diagnóstico, estou trabalhando com os rastreamentos OData e SQL para a mesma tabela (ou muito praticamente assim) – a tabela customers da Northwind. Em particular, vou me concentrar em perguntas comuns de nossos clientes, bem como uma das mais fáceis de interpretar conjuntos de rastreamentos: atualização completa do modelo de dados.

Criando as visualizações

Ao percorrer os rastreamentos, há várias maneiras de avaliá-los. Neste artigo, vamos nos concentrar em uma divisão de visualização, uma para mostrar os detalhes sobre os quais você se preocupa e a outra para examinar facilmente as contribuições de tempo de vários fatores. Para a primeira visualização, é usada uma tabela. Você pode escolher todos os campos que desejar, mas aqueles 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ó desejaremos examinar 'ID'. Para o parâmetro ' Legend ', você deve definir 'Category' ou 'Operation' (dependendo da granularidade desejada). Para o ' valor ', defina 'duração exclusiva' (e verifique se ele não é o%, para que você obtenha o valor de duração bruto). Por fim, para a dica de ferramenta, defina ' primeira hora de início'.

Depois que a visualização for criada, certifique-se de classificar por " tempo de iníciomais antigo" em ordem crescente para que você possa ver as coisas que acontecem no.

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

Embora suas necessidades exatas possam ser diferentes, essa combinação de gráficos é um bom ponto de partida para a análise de muitos arquivos de diagnóstico e 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 os dois que vemos com mais frequência estão perguntando como o tempo é gasto e perguntando o que a consulta enviada para a origem é.

É fácil perguntar como o tempo é gasto e será muito semelhante para a maioria dos conectores. Um aviso com o diagnóstico de consulta, como mencionado em outro lugar, é que você verá recursos drasticamente diferentes dependendo do conector. Por exemplo, muitos conectores baseados em ODBC não terão uma gravação precisa de qual consulta é enviada para o sistema de back-end real, pois Power Query apenas vê o que ele envia para o driver ODBC.

Se quisermos ver como o tempo é gasto, podemos apenas examinar 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 modo como Power BI relata o tempo, é melhor se convertermos a coluna de duração exclusiva em ' segundos ' no editor de Power Query. Depois de fazermos isso, podemos examinar nosso gráfico e obter uma ideia bastante razoável de onde o tempo é gasto.

Para meus resultados de OData, vejo na imagem que a grande maioria do tempo gasto estava recuperando os dados da origem – se eu clicar no item ' fonte de dados ' na legenda, ele mostrará todas as diferentes operações relacionadas ao envio de uma consulta à fonte de dados.

Resumo do diagnóstico de consulta do OData Northwind.

se executarmos todas as mesmas operações e criar visualizações semelhantes, mas com os rastreamentos de SQL em vez de ODATA, podemos ver como as duas fontes de dados são comparadas!

Resumo do diagnóstico de consulta do OData Northwind.

Se clicarmos na tabela de fonte de dados, como com o diagnóstico ODATA, podemos ver a primeira avaliação (2,3 nesta imagem) emite consultas de metadados, com a segunda avaliação na verdade recuperando os dados nos quais nos preocupamos. Como estamos recuperando muito pouco dados nesse caso, os dados retirados leva muito tempo (menos de um décimo de segundo para que toda a segunda avaliação aconteça, com menos de um vigésimo de um segundo para a recuperação de dados em si), mas isso não será verdadeiro em todos os casos.

Como mencionado acima, podemos clicar na categoria ' fonte de dados ' na legenda para ver as consultas emitidas.

Aprofundando-se nos dados

Examinando caminhos

Quando você está olhando para isso, se parece que o tempo gasto é estranho, por exemplo, na consulta OData, você pode ver que há uma consulta de fonte de dados com o seguinte valor:

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 é associada a uma operação que só ocupa, digamos, 1% da duração exclusiva. Enquanto isso, há um muito 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 é associada a uma operação que ocupa aproximadamente 75% da duração exclusiva. Se você ativar o caminho, descobrirá que o último é, na verdade, um filho do primeiro. Isso significa que a primeira consulta basicamente adicionou muito pouco 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.