Ana içeriğe geç

Uygulama performansını optimize etme

Daha küçük uygulama boyutu, basitleştirilmiş veri modelleri ve set analizinin stratejik kullanımı sayesinde uygulama performansı artırılabilir. Bu bölümde performansın etkilenebileceği alanlar ve uygulama performansını nasıl değerlendirebileceğiniz ve izleyebileceğiniz ele alınarak performans sorunlarından kaçınmanıza yardımcı olmak amaçlanmaktadır.

Performans değerlendirme aracıyla uygulamanızın nasıl performans gösterdiğini görebilirsiniz. Uygulama performans değerlendirmesi

Uygulama karmaşıklığı

Bunlar, sorunların tanılanmasına yardımcı olabilen bağımsız kategorilerdir. En karmaşık uygulamalar en düşük performansa sahiptir.

Basit uygulamalar:

  • Karmaşık set analizi veya If() deyimleri içermez.
  • Büyük tablolar içermez.
  • Basit bir veri modeline sahiptir.
  • Basit hesaplamalar içerir.
  • Büyük veri hacimleri içerebilir.

Denetlenmiş uygulamalar:

  • Birçok tablo içeren bir veri modeline sahiptir ancak en iyi uygulamaları izler.
  • Set analizini ve birkaç If() deyimini kullanır.
  • Sayfalarda büyük veya geniş tablolar (15 sütun ya da daha fazla) içerir.

Karmaşık uygulamalar:

  • Çok karmaşık bir veri modeline sahiptir.

  • Büyük veri hacimlerine bağlanır.
  • Karmaşık hesaplamalar, grafikler ve tablolar içerir.

Büyük veri hacimleri

Büyük veri hacimlerine bağlanırken bu mimari stratejileri devreye alabilirsiniz.

Segmentasyon

QVDs öğelerini, zaman dilimi, bölge veya toplama düzeyi gibi boyutlara göre segmentlere ayırabilirsiniz. Örneğin şunları elde edebilirsiniz:

  • Son iki yıla ait verileri içeren bir QVD.
  • İki yıldan eski geçmiş verileri içeren bir QVD.
  • Daha yüksek düzeyde toplanan tüm verileri içeren bir QVD. Örneğin, tarih yerine aylık veya bireysel müşteriler yerine ülke başına.

  • Tüm verileri içeren ve yalnızca küçük bir kullanıcı alt kümesi tarafından kullanılan tek bir büyük QVD.

Uygulamaları benzer şekilde segmentlere ayırabilirsiniz. Küçük uygulamalar, çoğu kullanıcının analiz ihtiyaçlarına yanıt verir. Böylece bellek tasarrufu sağlanır.

Farklı bölgelere odaklanan birden çok uygulamanız da olabilir. Böylece kullanıcılar, ilgilerini çekmeyen verileri içeren veya erişim haklarına sahip olmadıkları bir uygulamayı açmaz. Bölüm erişimi aracılığıyla erişilebilir olmayan veriler, belleği etkilemeye devam eder.

İsteğe bağlı uygulama oluşturma ODAG

Qlik Sense isteğe bağlı uygulamaları, kullanıcılara büyük veri depolarının toplanmış görünümlerini sunar. Kullanıcılar daha sonra ayrıntılı analiz için alakalı veri alt kümelerini belirleyip yükleyebilir.

Kullanıcı bakış açısından iki uygulama vardır:

  1. Toplanmış verileri içeren bir alışveriş sepeti.
  2. Ayrıntıyı görüntülemek için kullanılan boş bir şablon uygulaması.

Kullanıcı, alışveriş sepeti uygulamasında seçimler yapar. Bir eşik karşılandıktan sonra, şablon uygulamayı istenen ayrıntılarla dolduran özel bir LOAD kodu oluşturulur. Daha fazla bilgi için bkz İsteğe bağlı uygulamalarla büyük veri yönetimi

Belge zinciri oluşturma

Belge zinciri oluşturma, kullanıcıların düzenli olarak kullandığı, toplanmış bir uygulama olduğu anlamına gelir. Bir kullanıcı daha fazla ayrıntıya ihtiyaç duyarsa seçimler, toplanmış uygulamadan ayrıntı uygulamasına geçirilir; böylece kullanıcı daha düşük bir ayrıntı düzeyini görüntüleyebilir. Bu sayede kullanıcılar gereksiz ayrıntıları yüklemediğinden bellek tasarrufu sağlanır. Belge zinciri oluşturma, APIs ile desteklenir.

Veri modeli performansı

(missing or bad snippet)

Sayfa performansı

Bunlar, sayfaların ve görselleştirmelerin performansını artıracak en iyi uygulamalardır.

Sayfa performansı en iyi uygulamaları
EylemAçıklama

Mümkün olduğunda If() işlevinden kaçınılması

If() işlevi bir toplama işlevinde kullanılırsa bu, kayıt düzeyinde çalışacak ve birçok kez değerlendirilecektir.

Örneğin, bir toplamada 1000 kaydınız varsa bir If() koşulu 1000 defa değerlendirilir. Deyimleri iç içe yerleştirirseniz bu hızla basamaklandırılabilir. Bunun yerine set analizi kullanmalısınız. Toplamadan önce bir set analizi filtresinin uygulanması daha hızlı yanıtla sonuçlanır. Bu yanıtlar daha sonra set analizi aracılığıyla önbelleğe de alınabilir; If() ise bunu yapamaz. Veri modeli üzerindeki diğer değişiklikleri ve işlevleri de dikkate almanız gerekir.

Bir toplama tablosundaki farklı tablolardaki alanlardan mümkün olduğunca kaçınılır.

Bir toplama değerlendirildiğinde, hesaplama iki adımda gerçekleştirilir:

  1. İlk adım, hesaplamanın yapılacağı ilgili birleşimleri bulmaktır. Bu adım tek iş parçacıklıdır.

  2. İkinci adım, hesaplamayı gerçekleştirmektir. Bu adım çok iş parçacıklıdır.

Tek iş parçacıklı kısım, performansı büyük oranda etkileyebilir. Örneğin, toplama içinde birden fazla alanınız varsa örneğin, Sum(Quantity*ListPrice). Quantity olgu tablosundaysa ve ListPrice ana ürünler tablosundaysa, ürünü toplamaya başlayabilmek üzere birleşimleri bulmak için altyapının iki tabloyu birleştirmesi gerekir. Birleştirme tek iş parçacıklı, toplama çok iş parçacıklı kısımdır. Her iki alan da aynı tabloda bulunursa, birleştirme gerekmez ve toplama büyük oranda daha hızlı değerlendirilir.

Aggr() ve iç içe geçen Aggr() işlevlerinin minimum düzeyde kullanılması

Aggr() işlevi, performansı çok büyük ölçüde etkiler. Yanlış kullanım sonucunda yanlış sonuçlar alınabilir. Örneğin, Aggr() işlevindeki boyutlardan farklılık gösteren boyutları içeren bir tabloda. Daha fazla bilgi için bkz. Ne zaman AGGR kullanılmamalıdır?

Mümkün olduğunda set analizinin kullanılması

Mevcut seçimler tarafından tanımlanan normal setten farklı olan bir veri değeri setini tanımlamak için set analizi kullanabilirsiniz. Daha fazla bilgi için bkz. Küme analizi.

Mümkün olduğunda dize karşılaştırmalarından kaçınılması

Dize karşılaştırmaları, set analizi kadar verimli değildir. Örneğin, Match(), MixMatch(), WildMatch() ve Pick() öğelerinden kaçınmanız gerekir. Bunun yerine kodda işaretler oluşturun veya set analizi kullanın. Daha fazla bilgi için bkz. Koşullu fonksiyonlar ve Koşullu toplamaların performansı.

Kapsamlı hesaplamalar içeren nesnelerde hesaplama koşullarının kullanılması

Bir seçim olmadığında birçok kayıt içeren görselleştirmeleriniz olabilir. En iyi alıştırma olarak nesnelere, yalnızca belirli seçimler yapıldıktan sonra oluşturulacak şekilde hesaplama koşulları ekleyin. Böylece çok büyük hiper küplerin oluşturulması engellenir. Örneğin: GetSelectedCount([Country])=1 OR GetPossibleCount([Country])=1. Bu senaryoda, kullanıcı tek bir ülke seçmediği veya yalnızca bir ülkenin mümkün olduğu başka seçimler yapmadığı sürece görselleştirme oluşturulmaz.

Mümkün olduğunda hesaplamaların kodda önceden hesaplanması

Veri modelinin en düşük ayrıntı düzeyinde bulunan tüm hesaplamalar kodda hesaplanmalıdır. Örneğin, bir tablodaki aynı kayıtta Sales ve Cost varsa Sales - Cost AS Margin hesaplamasını yaparak marjı türetebilirsiniz. Seçime göre değişiklik göstermeyeceğini veya farklı bir ayrıntı düzeyine bağlı olduğunu biliyorsanız diğer değerleri önceden de toplayabilirsiniz.

Tablolarda 15'ten az sütun olması ve hesaplama koşulları içermesi

15 sütun içeren bir tablo geniş olarak değerlendirilir. Tablolarınız pek çok kayıttan oluşuyorsa tablo nesnesinde hesaplanan koşulları, yalnızca belirli seçimlerden veya ölçütler karşılandıktan sonra oluşturulacak şekilde kullanmanız gerekir. Tablonuz çok genişse şunları yapmayı düşünün:

  • Koşullu olarak gösterilen birden çok küçük tablolar oluşturma.
  • Sütunları koşullu olarak göstermek için yöntemleri kullanma.
  • Tablolarınızı yalnızca analiziniz için gerekli olan alanlarla sınırlı tutma.

Çok fazla sayıda nesne içermeyen sayfalar kullanma.

Kullanıcı sayfaya gittiğinde nesneler hesaplanır. Bir kullanıcı o sayfada her seçim yaptığında, mevcut durum önbellekte yoksa her bir nesne yeniden hesaplanır. Birden çok grafik içeren bir sayfanız varsa kullanıcının neredeyse her seçimde her nesnenin hesaplanmasını beklemesi gerekir. Bu da altyapıda önemli düzeyde bir yük oluşturur. En iyi uygulama olarak, net ve küçük bir uygulama geliştirmek için Dashboard/Analysis/Reporting (DAR) kavramını izleyin. Daha fazla bilgi için bkz. DAR yöntemi.

Set analizinde kullanılmak üzere kodda sayısal işaretlerden yararlanılması

İşaretler içeren set analizi, dize karşılaştırmaları veya çarpma kullanımından daha verimli olabilir.

İfadeler için ana öğelerin veya değişkenlerin kullanılması

Ana öğeler, yönetilen metriklerin sürüklenip bırakılmasını sağlar ve ifadelerin önbelleğe alınmasını garanti eder. Örneğin, Sum(Sales) ifadesi, SUM(Sales) ifadesinden farklıdır. İfadeler, yazımına ve büyük/küçük harf durumuna göre önbelleğe alınır ve yeniden kullanılması için bire bir eşleşmesi gerekir.