Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
- Id
- Hora de Início
- Consulta
- Step
- Consulta à Fonte de Dados
- Duração Exclusiva (%)
- Contagem de linhas
- Categoria
- É a Consulta do Utilizador
- Path
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.
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.
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!
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.