Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
En basit ve en hızlı veri sorgusu düzeni:
- Tek bir tablo veya görünüm
- Sunucuda ihtiyacınız olana önceden filtrelenmiş
- Beklenen sorgular için sütunlar doğru şekilde dizine eklenmiştir.
Uygulamanızı tasarlarken, verileri hızlı bir şekilde sorgulamayı düşünmeniz gerekir. Verileri sorgulamanın en iyi yolu, ihtiyacınız olan tüm bilgileri içeren tek bir tablo veya görünüm kullanmak ve bunları uygulamanızda görüntülemeden önce sunucuda filtrelemektir. Ayrıca, verileri filtrelemek veya sıralamak için kullandığınız sütunların düzgün dizine ekli olduğundan da emin olmanız gerekir. Bu, uygulamanızı daha hızlı ve sorunsuz hale getirir.
Örneğin, müşterilerin ve satış temsilcilerinin listesini gösteren bir galeriniz olduğunu varsayalım. Müşteri ve satış temsilcisi bilgilerini ayrı tablolarda depolarsanız, her müşterinin satış temsilcisi adını almak için aramaları kullanmanız gerekir. Bu, diğer tabloda çok sayıda sorgu çalıştırması gerektiğinden uygulamanızı yavaşlatır. Bunun daha iyi bir yolu, müşteri ve satış temsilcisi bilgilerini tek bir tabloda birleştiren bir görünüm oluşturmak ve bu görünümü galerinizin veri kaynağı olarak kullanmaktır. Ardından uygulamanızın ihtiyaç duyduğu tüm verileri almak için yalnızca bir sorgu çalıştırması gerekir.
Sorgu hızı ile veri normalleştirmesi arasında bir denge vardır. Veri normalleştirmesi, verileri yalnızca bir kez depoladığınız ve yinelemeyi önlediğiniz anlamına gelir. Bu, verilerin tutarlı ve doğru kalmasına yardımcı olur. Ancak bazen sorguları daha hızlı ve kolay hale getirmek için bazı verileri çoğaltmanız gerekir. Uygulama tasarımınızda ve tablo yapınızda bu iki hedefi dengelemeniz gerekir. Aksi takdirde uygulamanız yavaş ve gecikmeli olur çünkü farklı tablolardaki verileri filtrelemek ve birleştirmek için çok sayıda çalışma yapması gerekir.
Sunucu tarafı görünümlerini kullanma
Görünümler büyük olasılıkla bu hedefleri dengelemeye yardımcı olan en yaygın araçtır. Sorgular için tek bir tablo yapısı sunar, sorguda ihtiyacınız olan veriler için verilere ön filtre uygulama ve diğer tablolara yapılan aramaları ve birleştirmeleri etkinleştirir. Görünüme yönelik filtreler, aramalar ve birleştirmeler sunucuda hesaplandığından hem yük hem de istemci tarafı işlem en aza indirilir.
Galeride çok fazla arama yapmaktan kaçının
Galeri, bir veri kaynağındaki birçok kaydı görüntüleyebilir. Ancak bazen, özgün veri kaynağıyla ilgili başka bir veri kaynağından ek bilgiler göstermeniz gerekir. Örneğin, müşterilerin listesini gösteren bir galeriniz var ve her müşteriye atanan satış temsilcisinin adını göstermek istiyorsunuz. Satış temsilcisinin adı, müşterinin bilgilerinden farklı bir veri kaynağında depolanır. Satış temsilcisinin adını göstermek için, diğer veri kaynağında eşleşen kaydı bulan bir arama işlevi kullanmanız gerekir. Bu, özgün tabloyu arama değerleriyle genişletir.
Ancak, çok fazla kaydınız ve çok sayıda aramanız varsa tabloyu genişletmek çok yavaş olabilir. Galerideki her kayıt için uygulamanın diğer veri kaynağına ayrı bir sorgu çalıştırması ve arama değerini alması gerekir. Bu, uygulamanın her kayıt için çok sayıda sorgu çalıştırması gerekebileceği ve bunun uzun sürebileceği ve uygulama performansını etkileyebileceği anlamına gelir. Bu anti-desen bazen "N kare, (n^2)" veya "N+1" sorunu olarak bilinir.
StartsWith veya Filter kullanma
Power Fx, veri aramak için çeşitli yollar sağlar. Genel olarak, tüm tabloyu okuyan In gibi bir ifade yerine, bir dizinden yararlanan StartsWith veya Filter gibi ifadeler kullanın. In işleci bellek içi koleksiyonlar veya dış veri kaynağı tablosu çok küçükse uygundur.
Verileri yinelemeyi göz önünde bulundurun
Bazen veriler farklı bir konumda veya biçimde depolandığından sorguya yavaş erişilir. Sorguyu daha hızlı hale getirmek için yavaş verileri kopyalayabilir ve yerel olarak hızlı ve sorgulanması kolay bir tabloda depolayabilirsiniz. Ancak bu, yerel verilerin özgün verilerin en güncel sürümü olmayabileceği anlamına gelir. Ardından yerel verileri düzenli aralıklarla güncelleştirmek için başka bir işlem çalıştırın. Bu işlem bir Power Automate akışı, eklenti, saklı yordam veya verileri bir yerden diğerine taşıyabilen başka bir yöntem olabilir.
Yerel verileri güncelleştirme sıklığı gereksinimi, iş gereksinimlerinize bağlıdır. Uygulamanız için verilerin ne kadar yeni olması gerekiyor? Örneğin, bisiklet satan contoso şirketinde çalıştığınızı varsayalım. Kullanılabilir bisikletlerin listesi, özel bağlayıcıdaki bir API aracılığıyla erişebileceğiniz ürünler veritabanında depolanır. Ancak API çağrısı yavaşsa, bu nedenle ürün verilerini kopyalayıp bir tabloya yerel olarak depolamaya karar verebilirsiniz. Ardından tablonuzu uygulamanız için diğer ilgili verilerle birleştiren bir görünüm oluşturursunuz. Ayrıca her gün çalışan ve tablonuzu API'den en son ürün verileriyle güncelleştiren bir Power Automate akışı oluşturursunuz. Ardından uygulamanız yerel verileri daha hızlı sorgulayabilir ve veriler en fazla bir günlük olur.
Verileri çoğaltma, iyi performans sağlamak için kurumsal sınıf uygulamalarda yaygın bir teknik türüdür. Verileri sorgulama için en iyi duruma getirilmiş tek bir tabloda çoğaltmak için Dataverse eklentilerini, saklı yordamları veya veri taşımayı kullanabilirsiniz. Asıl soru şudur: Bu verilerin ne kadar güncel olması gerekir? Biraz gecikmeyi göze alabiliyorsanız, uygulamanızı hızlandırmak için bu tekniği kullanabilirsiniz.
Suggestions
Bu hedefe ulaşmak için aşağıdaki soru ve önerileri göz önünde bulundurun:
- Müşterinin veri değerini galeride veya veri kılavuzunda görmesi ne kadar önemlidir? Önce bir kayıt seçmek ve ardından verileri formda göstermek kabul edilebilir mi?
- Bir görünüm, verileri doğru biçimde görmek için gereken ön işi yapabilir mi?
- "StartsWith"in işe yarayacağı bir yerde "IN" operatörü mü kullanıyorsunuz?
- Verilerinizin ne kadar güncel olması gerekiyor? Sorgunuzun varsayılan olarak tek bir tablo üzerinde çalışmasını sağlamak için kullanabileceğiniz bir veri yineleme stratejisi var mı?