Aracılığıyla paylaş


Sorgu Tanılama ile katlamayı anlama

Sorgu Tanılama'yı kullanmanın en yaygın nedenlerinden biri, 'katlama' olarak da bilinen arka uç veri kaynağı tarafından gerçekleştirilecek Power Query tarafından hangi işlemlerin 'aşağı gönderildiğini' daha iyi anlamaktır. Neyin katlandığını görmek istiyorsak arka uç veri kaynağına gönderilen 'en özel' sorguya veya sorguya bakabiliriz. Buna hem ODATA hem de SQL için bakabiliriz.

Kayıt Tanılaması makalesinde açıklanan işlem temelde dört şey yapar:

  • Veri kaynağına Bağlan
  • Müşteri tablosunu alır
  • Müşteri Kimliği rolünü 'Satış Temsilcisi' olarak filtreler
  • 'Ülkeye' göre gruplar

ODATA bağlayıcısı şu anda COUNT() öğesini uç noktaya katlama özelliğini desteklemediğinden ve bu uç nokta işlemlerinde de biraz sınırlı olduğundan, bu son adımın katlanmasını beklemiyoruz. Öte yandan, filtreleme nispeten önemsizdir. Yukarıda gösterilen en özel sorguya baktığımızda tam olarak bunu görürüz:

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

ContactTitle tablosunu 'Satış Temsilcisi' değerine eşit şekilde filtrelediğimize ve yalnızca iki sütun döndürebildiğimizi görebiliyoruz: Müşteri Kimliği ve Ülke. Ülke, gruplama işlemi için gereklidir, çünkü ODATA uç noktası tarafından gerçekleştirilmiyor yerel olarak gerçekleştirilmesi gerekir. Katlanan ve katlanan şeyleri burada sonlandırabiliriz.

Benzer şekilde, SQL tanılamasında yayılan belirli ve son sorguya bakarsak biraz farklı bir şey görürüz:

    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]

Burada Power Query'nin ContactTitle'ın 'Satış Temsilcisi' olarak filtrelendiği bir alt bölüm oluşturduğunu ve ardından bu alt bölüme göre Ülkeye göre gruplandırıldığını görebiliriz. Tüm operasyonlarımız katlandı.

Sorgu Tanılama'yı kullanarak ne tür işlemlerin katlanmış olduğunu inceleyebiliriz; gelecekte bu özelliğin kullanımını kolaylaştırma umuduyla.