Sorgum neden birden çok kez çalışıyor?
Power Query'de yenileme yaptığınızda, size sorunsuz bir kullanıcı deneyimi sunmak ve sorgularınızı verimli ve güvenli bir şekilde yürütmek için arka planda çok şey yapılır. Ancak bazı durumlarda, veriler yenilendiğinde Power Query tarafından birden çok veri kaynağı isteğinin tetiklendiğini fark edebilirsiniz. Bazen bu istekler normaldir, ancak diğer durumlarda engellenebilir.
Aşağıdaki bölümlerde Power Query'nin bir veri kaynağına birden çok istek gönderebildiği birkaç örnek açıklanmaktadır.
Bağlayıcılar meta veriler, sonuçları önbelleğe alma, sayfalandırma vb. gibi çeşitli nedenlerle bir veri kaynağına birden çok çağrı yapabilir. Bu davranış normaldir ve bu şekilde çalışacak şekilde tasarlanmıştır.
Aynı veri kaynağından birden çok sorgu çekerse, aynı veri kaynağına yönelik birden çok istek oluşabilir. Bu istekler, veri kaynağına yalnızca bir sorgunun başvurduğu bir durumda bile gerçekleşebilir. Bir veya daha fazla sorgu bu sorguya başvuruda bulunursa, bağımlı olduğu tüm sorgularla birlikte her sorgu bağımsız olarak değerlendirilir.
Masaüstü ortamında, veri modelindeki tüm tabloların tek bir yenilemesi tek bir paylaşılan önbellek kullanılarak çalıştırılır. Önbelleğe alma, aynı veri kaynağına birden çok istek gönderme olasılığını azaltabilir, çünkü bir sorgu farklı bir sorgu için zaten çalıştırılmış ve önbelleğe alınmış olan aynı istekten yararlanabilir. Ancak burada bile birden çok istek alabilirsiniz çünkü:
- Veri kaynağı önbelleğe alınmaz (örneğin, yerel CSV dosyaları).
- Veri kaynağına yönelik istek, aşağı akış işlemleri nedeniyle zaten önbelleğe alınmış bir istekten farklıdır (katlanma işlemini değiştirebilir).
- Önbellek çok küçük (nispeten düşük bir olasılıktır).
- Sorgular kabaca aynı anda çalışıyor.
Bulut ortamında her sorgu kendi ayrı önbelleği kullanılarak yenilenir. Bu nedenle sorgu, farklı bir sorgu için önceden önbelleğe alınmış olan aynı istekten yararlanamaz.
Bazen Power Query'nin katlanan katmanı, aşağı akış gerçekleştirilen işlemlere bağlı olarak bir veri kaynağına birden çok istek oluşturabilir. Böyle durumlarda, kullanarak Table.Buffer
birden çok istekten kaçınabilirsiniz. Daha fazla bilgi: Tablonuzu arabelleğe alma
Power BI Desktop'ta Analysis Services (AS) iki değerlendirme kullanarak verileri yeniler: biri şemayı getirmek için (as sıfır satır isteyerek yapar) ve biri de verileri getirir. Sıfır satırlı şemanın hesaplanması için verilerin getirilebileceği durumlarda yinelenen veri kaynağı istekleri oluşabilir.
Veri gizliliği, sorguların birlikte çalıştırılmasının güvenli olup olmadığını belirlemek için her sorgunun kendi değerlendirmelerini yapar. Bu değerlendirme bazen bir veri kaynağına birden çok isteğin olmasına neden olabilir. Belirli bir isteğin veri gizliliği analizinden geldiğini belirten bir işaret, "TOP 1000" koşuluna sahip olmasıdır (ancak tüm veri kaynakları böyle bir koşulu desteklemez). Genel olarak, veri gizliliğini devre dışı bırakmak (kabul edilebilir olduğu varsayılarak), yenileme sırasında "TOP 1000" veya veri gizliliğiyle ilgili diğer istekleri ortadan kaldırır. Daha fazla bilgi: Veri gizliliği güvenlik duvarını devre dışı bırakma
Veri gizliliği için gerçekleştirilen değerlendirmelere benzer şekilde, Power Query düzenleyicisi varsayılan olarak her sorgu adımının ilk 1.000 satırının önizlemesini indirir. Bu satırların indirilmesi, bir adım seçildiğinde veri önizlemesinin görüntülenmeye hazır olmasını sağlamaya yardımcı olur, ancak yinelenen veri kaynağı isteklerine de neden olabilir. Daha fazla bilgi: Arka plan analizini devre dışı bırakma
Çeşitli Power Query düzenleyicisi arka plan görevleri de ek veri kaynağı isteklerini tetikleyebilir (örneğin, sorgu katlama analizi, sütun profili oluşturma, Power Query'nin Sonuçları Excel'e yükledikten sonra tetiklediğinden 1000 satırlık önizlemenin otomatik olarak yenilenmesi vb.).
Yinelenen isteklerin nereden geldiğini yalıtmak için sorgu işleminin belirli bölümlerini kapatarak birden çok sorgunun örneklerini yalıtabilirsiniz. Örneğin, şunu başlatırsanız:
- Power Query düzenleyicisinde
- Güvenlik duvarı devre dışı bırakılmıştır
- Arka plan analizi devre dışı bırakılmış
- Sütun profili oluşturma ve diğer arka plan görevleri devre dışı bırakıldı
- [İsteğe bağlı] Bir
Table.Buffer
Bu örnekte, Power Query düzenleyicisi önizlemesini yenilediğinizde gerçekleşen tek bir M değerlendirmeniz vardır. Yinelenen istekler bu noktada gerçekleşirse, bunlar bir şekilde sorgunun yazıldıkları şekilde doğaldır. Aksi takdirde ve daha önce açıklanan ayarları birer birer etkinleştirirseniz, yinelenen isteklerin hangi noktada oluşmaya başladığını gözlemleyebilirsiniz.
Aşağıdaki bölümlerde bu adımlar daha ayrıntılı olarak açıklanmaktadır.
Sorgunuzu yeniden bağlamanız veya yeniden oluşturmanız gerekmez, test etmek istediğiniz sorguyu Power Query düzenleyicisinde açmanız yeterlidir. Var olan sorguyu bozmak istemiyorsanız düzenleyicide sorguyu çoğaltabilirsiniz.
Sonraki adım veri gizliliği güvenlik duvarını devre dışı bırakmaktır. Bu adımda, kaynaklar arasındaki veri sızıntısıyla ilgilenmediğiniz varsayılır. Bu nedenle veri gizliliği güvenlik duvarını devre dışı bırakmak, Excel'de Hızlı Birleştirmeyi Ayarla seçeneğinde açıklanan Gizlilik Düzeyini Her Zaman Yoksay ayarı kullanılarak veya Power BI Desktop'taki Power BI Desktop gizlilik düzeylerinde açıklanan Gizlilik düzeylerini yoksay ve performansı geliştirme olasılığı ayarı kullanılarak yapılabilir.
Normal teste devam etmeden önce bu adımı geri almayı unutmayın.
Sonraki adım arka plan analizini devre dışı bırakmaktır. Arka plan analizi, Power BI için Power Query arka plan yenilemesini devre dışı bırakma başlığı altında açıklanan Arka planda veri önizlemesinin indirilmesine izin ver ayarı tarafından denetlenilir. Bu seçeneği Excel'de de devre dışı bırakabilirsiniz.
İsteğe bağlı olarak, tüm verilerin okunmaya zorlanması için de kullanabilirsiniz Table.Buffer
. Bu da yük sırasında gerçekleşenleri taklit eder. Power Query düzenleyicisinde kullanmak Table.Buffer
için:
Power Query düzenleyicisi formül çubuğunda fx düğmesini seçerek yeni bir adım ekleyin.
Formül çubuğunda, önceki adımın adını Table.Buffer ile çevreleyin (<önceki adım adı buraya> gider). Örneğin, önceki adım olarak adlandırılmışsa
Source
formül çubuğunda görüntülenir= Source
. formül çubuğundaki adımı düzenleyerek ifadesini yazın= Table.Buffer(Source)
.
Daha fazla bilgi: Table.Buffer
Testi çalıştırmak için Power Query düzenleyicisinde yenileme yapın.