Förstå vikning med frågediagnostik
En av de vanligaste orsakerna till att använda frågediagnostik är att få en bättre förståelse för vilka åtgärder som "push-överfördes" av Power Query som ska utföras av serverdelsdatakällan, som även kallas "vikning". Om vi vill se vad som har vikts kan vi titta på vad som är den "mest specifika" frågan eller frågorna som skickas till serverdelsdatakällan. Vi kan titta på detta för både ODATA och SQL.
Åtgärden som beskrevs i artikeln om inspelningsdiagnostik gör i princip fyra saker:
- Anslut till datakällan
- Hämtar kundtabellen
- Filtrerar kund-ID-rollen till "Säljare"
- Grupper efter land
Eftersom ODATA-anslutningsappen för närvarande inte stöder vikning av COUNT() till slutpunkten, och eftersom den här slutpunkten också är något begränsad i dess åtgärder, förväntar vi oss inte att det sista steget ska vika. Å andra sidan är filtrering relativt trivialt. Det här är precis vad vi ser om vi tittar på den mest specifika frågan som genereras ovan:
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
Vi kan se att vi filtrerar tabellen för ContactTitle som är lika med "Försäljningsrepresentant", och vi returnerar bara två kolumner – Kund-ID och Land. Land behövs naturligtvis för grupperingsåtgärden, som eftersom den inte utförs av ODATA-slutpunkten måste utföras lokalt. Vi kan dra slutsatsen vad som viker och inte viker här.
På samma sätt ser vi något annorlunda om vi tittar på den specifika och sista frågan som genereras i SQL-diagnostiken:
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]
Här kan vi se att Power Query skapar ett underval där ContactTitle filtreras till "Försäljningsrepresentant" och sedan grupperar efter Land i den här undermarkeringen. Alla våra åtgärder har vikts.
Med hjälp av frågediagnostik kan vi undersöka vilken typ av åtgärder som har vikts – i framtiden hoppas vi kunna göra den här funktionen enklare att använda.