Aracılığıyla paylaş


Yerel sorgularda sorgu işleme optimizasyonu

Power Query'de yerel bir sorgu tanımlayabilir ve veri kaynağınızda çalıştırabilirsiniz. Yerel veritabanı kullanarak veritabanından veri içeri aktarma sorgusu makalesinde bu işlemin birden çok veri kaynağıyla nasıl yapılacağı açıklanır. Ancak, bu makalede açıklanan işlemi kullanarak, sorgunuz sonraki sorgu adımlarında kullanılan sorgu katlamadan yararlanmaz.

Bu makalede Value.NativeQuery işlevini kullanarak veri kaynağınızda yerel sorgular oluşturmak ve sorgunuzun sonraki adımları için sorgu katlama mekanizmasını etkin tutmak için alternatif bir yöntem gösterilir.

Uyarı

Bu makalede kullanılan kavramları daha iyi anlamak için sorgu katlama ve sorgu katlama göstergeleri hakkındaki belgeleri okumanızı öneririz.

Desteklenen veri bağlayıcıları

Sonraki bölümlerde açıklanan yöntem aşağıdaki veri bağlayıcıları için geçerlidir:

Veri kaynağından hedefe bağlanma

Uyarı

Bu işlemi göstermek için bu makalede SQL Server bağlayıcısı ve AdventureWorks2019 örnek veritabanı kullanılmaktadır. Bu deneyim bağlayıcıdan bağlayıcıya farklılık gösterebilir, ancak bu makalede desteklenen bağlayıcılar için yerel sorgular üzerinde sorgu katlama özelliklerinin nasıl etkinleştirileceğine ilişkin temel bilgiler yer alır.

Veri kaynağına bağlanırken yerel sorgunuzu yürütmek istediğiniz düğüme veya düzeye bağlanmanız önemlidir. Bu makaledeki örnekte, bu düğüm sunucunun içindeki veritabanı düzeyidir.

SQL Server'ın yerel bir örneğindeki AdventureWorks2019 veritabanına bağlantı için bağlantı ayarları iletişim kutusunun ekran görüntüsü.

Bağlantı ayarlarını tanımladıktan ve bağlantınızın kimlik bilgilerini verdikten sonra veri kaynağınızın gezinti iletişim kutusu açılır. Gezinti iletişim kutusu, bağlanabileceğiniz tüm kullanılabilir nesneleri içerir.

Bu listeden, yerel sorgunun çalıştırıldığı nesneyi (hedef olarak da bilinir) seçmeniz gerekir. Bu örnekte, bu nesne veritabanı düzeyidir.

Power Query'deki gezgin penceresinde, gezgin penceresinde veritabanı düğümünü seçip basılı tutun (veya sağ tıklayın) ve Verileri Dönüştür seçeneğini belirleyin. Bu seçeneğin seçilmesi, yerel sorgunuzu çalıştırmak için ihtiyacınız olan hedef olan veritabanınızın genel görünümünün yeni bir sorgusunu oluşturur.

Kullanıcının gezgindeki veritabanı düğümüne sağ tıkladığı verileri seçme işleminin ekran görüntüsü ve Verileri Dönüştür vurgulanmış.

Sorgunuz Power Query düzenleyicisine ulaştığında, Uygulanan adımlar bölmesinde yalnızca Kaynak adımı gösterilmelidir. Bu adım, Veritabanınızdaki kullanılabilir tüm nesnelerin bulunduğu, Gezgin penceresinde görüntülenmelerine benzer bir tablo içerir.

Yalnızca kaynak adımı içeren sorgunun ekran görüntüsü.

Value.NativeQuery işlevini kullanma

Bu işlemin amacı aşağıdaki SQL kodunu yürütmek ve Power Query ile kaynağa geri katlanabilir daha fazla dönüştürme uygulamaktır.

SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'

İlk adım, sql kodunun çalıştırıldığı veritabanı olan doğru hedefi tanımlamaktı. Bir adım doğru hedefe sahip olduktan sonra, bu adımı (bu örnekte Uygulanan AdımlardaKaynak) seçebilir ve ardından özel bir adım eklemek için formül çubuğundaki fx düğmesini seçebilirsiniz. Bu örnekte, formülü aşağıdaki formülle değiştirin Source :

Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'  ", null, [EnableFolding = true])

Bu formülün en önemli bileşeni, EnableFolding kayıt alanının true olarak ayarlandığı işlevin dördüncü parametresi için isteğe bağlı kaydın kullanılmasıdır.

Value.NativeQuery işlevinin ve açık SQL sorgusunun kullanımıyla yeni özel adım formülünün ekran görüntüsü.

Uyarı

Value.NativeQuery işlevi hakkında daha fazla bilgiyi resmi belge makalesinden okuyabilirsiniz.

Formülü girdikten sonra, yerel sorguların belirli bir adımda çalıştırılmasını etkinleştirmenizi gerektiren bir uyarı gösterilir. Bu adımın değerlendirilmesi için Devam'ı seçin.

Bu SQL deyimi yalnızca üç satır ve iki sütun içeren bir tablo döndürür.

Hedef veritabanında değerlendirilen yerel sorgunun sonuçlarını içeren ekran görüntüsü.

Sorgu katlamayı test etme

Sorgunuzun katlama işlevini test etmek için, sütunlarınızdan herhangi birine filtre uygulamayı deneyebilir ve uygulanan adımlar bölümündeki sorgu katlama göstergesinin adımı katlanmış olarak gösterip göstermediğine bakabilirsiniz. Bu durumda DepartmentID sütununu ikiye eşit olmayan değerlere sahip olacak şekilde filtreleyebilirsiniz.

DepartmentID sütununu yalnızca iki değere eşit olmayan değerlere sahip olacak şekilde filtrelemeyi gösteren ekran görüntüsü.

Bu filtreyi ekledikten sonra, sorgu katlama göstergelerinin bu yeni adımda katlamanın gerçekleştiğini göstermeye devam ettiğini kontrol edebilirsiniz.

Uygulanan adımlar bölümündeki veri kaynağına geri katlanmış olarak gösterilen filtre adımı.

Veri kaynağına hangi sorgunun gönderildiğini daha fazla doğrulamak için Filtrelenmiş satırlar adımını seçip tutabilir (veya sağ tıklayabilir) ve bu adımın sorgu planını denetlemek için Sorgu planını görüntüle seçeneğini belirleyebilirsiniz.

Sorgu planı görünümünde, Görünüm Ayrıntıları köprüsüne sahip Value.NativeQuery adlı bir düğümü görebilirsiniz. SQL Server veritabanına gönderilen tam sorguyu görüntülemek için bu köprüyü seçebilirsiniz.

Yerel sorgu, özgün sorgunun alt sorgusunu oluşturmak için başka bir SELECT deyiminin çevresinde sarmalanır. Power Query, kullanılan dönüşümler ve sağlanan yerel sorgu göz önüne alındığında en uygun sorguyu oluşturmak için elinden geleni yapar.

Filtrelenmiş satırlar adımı için sorgu planının ekran görüntüsü.

Tavsiye

Sorgu katlama mümkün olmadığından hatalarla karşılaştığınız senaryolarda, söz dizimi veya bağlam çakışmaları olup olmadığını kontrol etmek amacıyla adımlarınızı özgün yerel sorgunuzun bir alt sorgusu olarak doğrulamayı denemenizi öneririz.