Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um dos motivos mais comuns para usar o Diagnóstico de Consulta é ter uma melhor compreensão de quais operações foram "empurradas" pelo Power Query para execução pela fonte de dados de back-end, que também é conhecida como "dobramento". Se quisermos ver o que foi agregado, podemos examinar qual é a consulta "mais específica", ou as consultas, que são enviadas para a fonte de dados do back-end. Podemos examinar isso para o ODATA e o SQL.
A operação descrita no artigo sobre o Diagnóstico de Gravação faz essencialmente quatro coisas:
- Conecta-se à fonte de dados
- Obtém a tabela de dados do cliente
- Filtra o papel associado ao ID do cliente para 'Representante de Vendas'
- Grupos por 'País'
Como o conector ODATA atualmente não dá suporte à dobra de COUNT() para o ponto de extremidade e, como esse ponto de extremidade também é um pouco limitado em suas operações, não esperamos que essa etapa final seja dobrada. Por outro lado, a filtragem é relativamente trivial. Isso é exatamente o que vemos se examinarmos a consulta mais específica emitida acima:
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
Podemos ver que estamos filtrando a tabela para ContactTitle igual a 'Representante de Vendas', e estamos retornando apenas duas colunas: ID do cliente e país. O país, é claro, é necessário para a operação de agrupamento, que, como ela não está sendo executada pelo ponto de extremidade ODATA, deve ser executada localmente. Concluímos aqui o que dobra e o que não dobra.
Da mesma forma, se examinarmos a consulta específica e final emitida no diagnóstico do SQL, veremos algo ligeiramente diferente:
count(1) as [Count]
from
(
select [_].[Country]
from [dbo].[Customers] as [_]
where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]
Aqui, podemos ver que o Power Query cria uma subseleção em que ContactTitle é filtrado para 'Representante de Vendas', em seguida, agrupa por País nesta subseleção. Todas as nossas operações encerraram.
Usando o Diagnóstico de Consulta, podemos examinar que tipo de operações foram otimizadas – no futuro, esperamos tornar essa funcionalidade mais fácil de usar.