Ana içeriğe geç Tamamlayıcı 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.

Uygulama zinciri oluşturma

Uygulama zinciri oluşturma (QlikView bölümünde belge zinciri oluşturma olarak da bilinir), 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. Uygulama zinciri oluşturma, bir sayfaya düğme nesneleri eklenerek gerçekleştirilebilir. Daha fazla bilgi için bk. Uygulama zinciri oluşturma.

Uygulama zinciri oluşturma, APIs üzerinden de desteklenmektedir. Örneğin, özel uygulama zinciri oluşturmak için Uygulama Tümleştirme API'sini kullanabilirsiniz. Daha fazla bilgi için bk. Uygulama Tümleştirme API'si (yalnızca İngilizce).

Dinamik görünümler

Dinamik görünümler, yüksek veri hacmi veya hızla değişen veri senaryoları için güncel görselleştirmeler sağlar. Dinamik görünümlerle çalışırken aşağıdakileri göz önünde bulundurun:

  • Dinamik görünümleri güncelleştirdiğinizde, veri kaynağı doğrudan yüklenir. Güncelleme performansı, temel veri kaynağının performansından etkilenir.

  • Dinamik görünüm şablonu uygulamaları dinamik grafikler oluşturmanıza yardımcı olabilir.

Dinamik görünümleri kullanma hakkında daha fazla bilgi için bk. Dinamik görünümlerle verileri yönetme.

Direct Query

Bellek içi uygulamalar tavsiye edilirken, Direct Query verileri orijinal kaynağında tutmanıza olanak tanır. Direct Query kullanımınızı optimize etmek için aşağıdakileri göz önünde bulundurun:

  • Direct Query'nin performansı, temel veri kaynağının performansından büyük ölçüde etkilenir.

  • Karmaşık sorgular performans sorunlarına neden olabileceğinden, Direct Query veri modelinizi mümkün olduğunca basit tutun.

Direct Query hakkında daha fazla bilgi için bk. ile bulut veritabanlarına doğrudan erişmeDirect Query.

Veri modeli performansı

Bunlar, veri modeli performansını etkileyebilecek göstergelerdir. Her biri, uygulamanın kullanışlılığını artıracak en iyi alıştırmadır.

Veri modeli performansı en iyi uygulamaları
EylemAçıklama

Yapay anahtarların kaldırılması

Qlik Sense, iki veya daha fazla veri tablosunda iki ya da daha fazla ortak alan olduğunda yapay anahtarlar oluşturur. Bu, kodda veya veri modelinde bir hata olması anlamına gelebilir. Yapay anahtarları tanılamak için bkz. Yapay anahtarlar.

Döngüsel referansların veri modelinden kaldırılması

İki alanın birden fazla ilişkilendirmesi olduğunda döngüsel referanslar oluşur. Qlik Sense, tablolardan birine bağlantıyı değiştirerek bunları çözümlemeye çalışır. Ancak tüm döngüsel referans uyarıları çözümlenmelidir, bkz. Döngüsel referansları anlama ve çözme.

Uygun veri ayrıntı düzeyi

Yalnızca gerekli verileri yüklemelisiniz. Örneğin, bir grup kullanıcının yalnızca haftaya, aya ve yıla göre bölünmüş verilere ihtiyacı vardır. Bellek tasarrufu sağlamak için yükleme komut dosyasındaki verileri toplayabilir veya toplanan verilere yükleyebilirsiniz. Bir kullanıcının daha düşük ayrıntı düzeyinde verileri görselleştirmesi gerekiyorsa ODAG veya belge zinciri oluşturmayı kullanabilirsiniz.

Mümkün olduğunda QVDs kullanılması

QVD, Qlik Sense uygulamasından dışa aktarılan veri tablosunu içeren bir dosyadır. Bu dosya biçimi, bir koddan veri okuma sırasında hız sağlamak için optimize edilmiştir, ancak hala kompakttır. Bir QVD dosyasından veri okumak, normalde diğer veri kaynaklarından okumaktan 10-100 kat daha hızlıdır. Daha fazla bilgi için bkz. QVD dosyalarıyla çalışma.

QVD dosyalarının yüklemede optimize edilmesi

QVD dosyaları iki modda okunabilir: standart (hızlı) ve optimize (daha hızlı). Seçilen mod, kod altyapısı tarafından otomatik olarak belirlenir.

Optimize edilmiş yüklerle ilgili bazı sınırlamalar vardır. Alanlar yeniden adlandırılabilir ancak bu işlemlerin tümü standart yüklemeyle sonuçlanır:

  • Yüklenen alanlardaki dönüştürmeler.
  • Qlik Sense uygulamasının, kayıtların paketini açmasına neden olan where cümlesini kullanma.
  • Yüklenen bir alanda Harita kullanma.

Artışlı yüklemelerden yararlanılması

Uygulamanız sürekli olarak güncellenen veritabanlarından büyük miktarda veriyle bağlantılıysa tüm veri kümesinin yeniden yüklenmesi çok zaman alabilir. Bunun yerine, veritabanından yeni veya değiştirilmiş kayıtları almak için artışlı yüklemeleri kullanmalısınız. Daha fazla bilgi edinmek için bkz. Yeni ve güncellenmiş kayıtları artışlı yükleme ile yükleme.

Snowflake modelinin birleştirilmesi

Snowflake veri modeliniz varsa Join önekini veya başka eşleme ile bazılarını birleştirerek veri tablosu sayısını azaltabilirsiniz. Bu özellikle büyük olgu tabloları için önemlidir. İyi bir genel bir kural, tek bir büyük tabloya sahip olmaktır. Daha fazla bilgi için bkz. Birleştirmek veya Birleştirmemek.

Az sayıda alan içeren tabloların normal dışı tutulması

Birkaç alan içeren iki tablonuz varsa bunların birleştirilmesi performansı artırabilir. Daha fazla bilgi için bkz. Join ve Keep ile tabloları birleştirme.

Eşleme yüklemeleri içeren normal dışı arama (yaprak) tabloları

Yalnızca bir tablodan diğerine bir alan eklemeniz gerekiyorsa Join önekini kullanmamanız gerekir. ApplyMap arama işlevini kullanmalısınız, bkz. Birleştirmeme - ApplyMap kullanma.

Zaman damgalarının tarih alanından kaldırılması veya ayrılması

Zaman damgası mevcut olduğunda, dize temsili daha büyük olduğundan ve farklı değerlerin sayısı daha büyük olduğundan tarih alanları, alanı doldurabilir. Analiziniz için hassasiyet gerekli değilse, zaman damgasını ör. Timestamp(Floor(YourTimestamp,1/24)) öğesini kullanarak en yakın saate yuvarlayabilir ya da Date(Floor(YourTimestamp)) öğesini kullanarak saat bileşenini tamamen kaldırabilirsiniz.

Zaman damgası olmasını istiyorsanız bunu tarihten ayırabilirsiniz. Aynı Floor() işlevini kullanabilir ve sonra aşağıdaki gibi bir şey kullanarak ayıklanan saatle yeni bir alan oluşturabilirsiniz: Time(Frac(YourTimestamp)).

Gereksiz alanların veri modelinden kaldırılması

Veri modelinize yalnızca gerekli alanları yüklemelisiniz. Load * ve SELECT kullanmaktan kaçının. Şunları koruduğunuzdan emin olun:

  • Analiziniz için gerekli olan alanlar.
  • Uygulamada fiilen kullanılmakta olan alanlar.

Yüksek veri hacimleriyle çalışılırken bağlantı tablolarından kaçınılması

Mümkün olduğunda bağlantı tablolarını kullanmanız gerekir. Ancak büyük veri hacimleriyle çalışıyorsanız birleştirilmiş tablolar, bağlantı tablolarından daha yüksek performans gösterebilir.

Birleştirilmiş boyutların yeni alanlara bölünmesi

Birleştirilmiş boyutları ayrı alanlara ayırmanız gerekir. Böylece alanlarınızdaki benzersiz değer oluşumu sayısı azalır. Bu, zaman damgalarının optimizasyonuna benzer.

Mümkün olduğunda AutoNumber kullanılması

Verilerinizi önce QVD dosyasından yükleyerek ve ardından değerleri simge anahtarlarına dönüştürmek üzere AutoNumber deyimini kullanarak bir optimize yükleme oluşturabilirsiniz. Daha fazla bilgi için bkz. AutoNumber

Veri adalarından kaçınılması

Veri adaları kullanışlı olabilir ancak genellikle performansı etkiler. Seçim için değer oluşturduğunuzda, değişkenler kullanınız.

QVD'lerin artışlı zaman dilimlerine göre depolanması

QVD'yi segmentler halinde (ör. aylık olarak) depolamanız gerekir. Bu daha küçük aylık QVD'ler, tüm verilere gerek olmayabilecek birçok farklı uygulamayı destekleyebilir.

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 bk. 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 bk. Set 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 bk. 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 bk. 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.

Veri yükleme performansı

Veri yüklemeyi optimize etmek, Qlik Cloud öğesindeki uygulamalarla çalışırken sorunsuz ve hassas bir deneyim için önemlidir. Bu bölümde performansı etkileyen faktörler vurgulanmakta ve performans sorunlarının nasıl önlenebileceği konusunda rehberlik sağlanmaktadır.

Qlik Data Gateway - Doğrudan Erişim

Uygulamanıza verileri yeniden yüklemek için Qlik Data Gateway - Doğrudan Erişim kullandığınızda, aşağıdaki faktörler performansı etkiler:

  • Veri Ağ Geçidini barındıran makine ile veritabanı arasındaki bağlantı hızı ve gecikme süresi.

  • Veri Ağ Geçidini barındıran makine ile Qlik Cloud kiracınız arasındaki bağlantı hızı ve gecikme süresi. İdeal olarak, daha iyi performans için Veri Ağ Geçidini Qlik Cloud kiracınızla aynı bölgede barındırın.

Veritabanı depolama

Yavaş depolama bağlantıları yeniden yükleme sürelerini artırabilir. Şirket içinde veya bulutta barındırılan veritabanları için aşağıdakileri göz önünde bulundurun:

  • Şirket içinde: Veritabanınız şirket içindeyse ve bir sunucuyu diğer uygulamalarla paylaşıyorsa bu veritabanının performansı diğer uygulamaların faaliyetlerinden etkilenebilir.

  • Bulut: Doğru boyutlandırıldığında, bulut veritabanları genellikle şirket içi veritabanlarından daha iyi performans sunar. En iyi sonuçları elde etmek için bulut depolama alanınız için Qlik Cloud kiracınıza yakın bir bölge seçin.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!