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 texto completo sobre isso aqui.

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

Conforme mencionado em nosso artigo sobre como registrar o diagnóstico, estou trabalhando com os rastreamentos OData e SQL para a mesma tabela (ou quase assim)— a tabela Customers da 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.

Criando as visualizações

Quando você está passando por rastreamentos, há muitas maneiras de avaliá-los. Neste artigo, vamos nos concentrar em duas divisões de visualização: uma para mostrar os detalhes que você se importa e a outra para examinar facilmente as contribuições de tempo 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 'Etapa'. Se estivermos olhando para a Atualização, porque ela não tem nada a ver com as etapas no próprio Editor, provavelmente só queremos olhar para 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 " Hora de início mais cedo".

Depois que a visualização for criada, certifique-se de classificar por " Hora de Início Mais Cedo" 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 uma série de 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 com o diagnóstico de consulta, conforme mencionado em outro lugar, é que você verá funcionalidades 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 só 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 tempo de relatórios do Power BI, é melhor converter a coluna De Duração Exclusiva em 'Segundos' no editor de 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 foi gasto recuperando os 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 de diagnóstico de consulta OData Northwind com rastreamentos SQL.

Se selecionarmos a tabela Fonte de Dados, como com o diagnóstico do 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 preocupamos. 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

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:

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 quase 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 uma pequena quantidade de tempo por conta própria, com a recuperação de dados real sendo rastreada pela consulta 'interna'.

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