Veri performansını iyileştirmeye yönelik öneriler

Bu Azure Well-Architected Framework Performans Verimliliği denetim listesi önerisi için geçerlidir:

PE:08 Veri performansını iyileştirme. Veri depolarını, bölümleri ve dizinleri iş yükünde amaçlanan ve gerçek kullanımları için iyileştirin.

Bu kılavuzda veri performansını iyileştirmeye yönelik öneriler açıklanmaktadır. Veri performansını iyileştirmek, iş yükünün verileri işlediği ve depoladığı verimliliği iyileştirmektir. Her iş yükü işlemi, işlemi veya hesaplaması genellikle verilerin hızlı ve doğru alınmasına, işlenmesine ve depolanmasına dayanır. Veri performansı iyileştirildiğinde iş yükü sorunsuz çalışır. Güvenliği aşılmış veri performansı, düşük performans verimliliğinin domino etkisini oluşturur. Veri performansının iyileştirilememesi yanıt gecikmelerine, yüksek gecikme süresine ve kısa süreli ölçeklenebilirliğe neden olur. Tüm iş yükünün verimliliğini tehlikeye atmış olur.

Tanımlar

Süre Tanım
CAP teorem Veri tutarlılığındaki dengeleri açıklamaya yardımcı olmak için tutarlılık, kullanılabilirlik ve bölüm toleransını dikkate almak için kullanılan bir çerçeve.
Veritabanı dizini yeniden oluşturma Dizini düşüren ve yeniden oluşturan bir bakım etkinliği.
Veritabanı dizini yeniden düzenleme Geçerli veritabanı dizinini iyileştirir bakım etkinliği.
Veri deposu Veritabanı, nesne deposu veya dosya paylaşımı gibi verileri depolayan bir kaynak.
Nihai tutarlılık Veri çoğaltmalarının sonunda eşitlenmeden önce geçici tutarsızlığa izin veren bir veri eşitleme modeli.
Dizin oluşturma Öğelere hızlı erişim sağlayan bir veritabanı yapısı.
Çevrimiçi analitik işlem (OLAP) Büyük iş veritabanlarını düzenleyen, karmaşık analizi destekleyen ve işlem sistemlerini olumsuz etkilemeden karmaşık analiz sorguları gerçekleştiren bir teknoloji.
Çevrimiçi işlem gerçekleştirme (OLTP) Bir kuruluşun günlük operasyonlarında gerçekleşen iş etkileşimlerini kaydeden bir teknoloji.
İyimser eşzamanlılık Geleneksel kilitleme mekanizmaları yerine güncelleştirmeler yapmak için anlık görüntüleri kullanan veritabanlarını güncelleştirmeye yönelik bir yaklaşım, performansı ve ölçeklenebilirliği geliştirir.
PACELC teorem Veri tutarlılığındaki dengeleri açıklamaya yardımcı olmak için bölümlemeye dayanıklılık, kullanılabilirlik, tutarlılık ve gecikme süresini göz önünde bulundurmak için kullanılan bir çerçeve.
Bölümleme Verileri fiziksel olarak ayrı veri depolarına bölme işlemi.
Sorgu ayarlama Veritabanı sorgusunun hızını iyileştirir.
Okuma amaçlı çoğaltma Okuma trafiğini yazma veritabanından boşaltmanızı sağlayan birincil veritabanının canlı kopyası.

Temel tasarım stratejileri

Veri kullanımını iyileştirmek için veri depolarının, bölümlerin ve dizinlerin amaçlanan kullanımları ve bir iş yükündeki gerçek kullanımları için iyileştirildiğinden emin olun. İyileştirilmiş veri kullanımı sorgu performansını artırabilir, kaynak tüketimini azaltabilir ve genel sistem verimliliğini artırabilir. Aşağıdaki stratejileri göz önünde bulundurun:

  • Profil verileri. Verilerinizi anlayın ve veri modelinizin iş yükünüz için uygun olduğundan emin olun. Veri normalleştirme, dizin oluşturma stratejileri ve bölümleme teknikleri gibi faktörleri göz önünde bulundurun. Verimli veri alma için uygun veri türlerini seçtiğinizden, varlıklar arasındaki ilişkileri tanımladığınızdan ve en uygun dizin oluşturma stratejisini belirlediğinizden emin olun.

  • Veri depolama yapılandırmanızda ince ayarlamalar yapın. Veri depolama altyapınızı iş yükü gereksinimlerinizle uyumlu olacak şekilde yapılandırın. İlişkisel veritabanları, NoSQL veritabanları ve veri ambarları gibi uygun bir depolama teknolojisi seçin. Arabellek boyutu, önbelleğe alma mekanizmaları ve sıkıştırma gibi depolama ayarlarını iyileştirin.

  • Sorgu performansını iyileştirme. İş yükünde çalışan sorguları analiz edin ve iyileştirin. Sorgu iyileştirme, dizin oluşturma ve önbelleğe alma gibi teknikleri kullanın. Performans sorunlarını belirlemek için sorgu planlarını ve performans izleme araçlarını kullanın ve ardından gerekli iyileştirmeleri yapın.

  • Sistemi düzenli olarak izleyin ve ayarlayın. İş yükünüzün performansını sürekli izleyin ve veri depolama yapılandırması ile sorgu iyileştirmelerini yineleyin. En iyi performans ayarlama yöntemlerine göre sistem ölçümlerini analiz edin, geliştirme alanlarını belirleyin ve değişiklikleri uygulayın.

Profil verileri

Veri profili oluşturma, bir kaynaktan verileri incelemeyi ve bu kaynak hakkında bilgi toplamayı içerir. Amaç, iş yükü verilerinin kalitesini, yapısını ve özelliklerini anlamaktır. Bu işlem eksik değerler, yinelemeler, tutarsız biçimler ve diğer anomaliler gibi sorunların tanımlanmasını sağlar. Etkili veri profili oluşturma için aşağıdaki stratejileri göz önünde bulundurun:

  • Veri yapısını anlama. Tablo, sütun ve ilişkiler de dahil olmak üzere verilerinizin yapısını inceleyin. Her sütuna uygulanan veri türlerini, uzunluklarını ve kısıtlamaları belirleyin. Veri yapısı değerlendirmesi, verilerin nasıl düzenlendiğinden ve diğer veri öğeleriyle nasıl ilişkilendirildiğinden anlamanıza yardımcı olur.

  • Veri hacmini analiz etme. Genel boyutu ve büyüme desenlerini anlamak için verilerinizin hacmini değerlendirin. Kayıt veya belge sayısını ve tek tek tabloların veya koleksiyonların boyutunu belirleyin. Bu bilgiler depolama gereksinimlerini tahmin edip ölçeklenebilirlik sorunlarını belirlemenize yardımcı olur.

  • Veri ilişkilerini tanımlama. Birincil ve yabancı anahtar ilişkileri gibi veri öğeleri arasındaki ilişkileri keşfedin. Bir tablo veya belgedeki değişikliklerin ilgili verileri nasıl etkileyebileceğini saptamak için verilerin nasıl bağlandığını anlayın.

  • Veri kalitesini değerlendirme. Eksiksizlik, doğruluk, tutarlılık ve benzersizlik gibi faktörleri inceleyerek verilerinizin kalitesini değerlendirin. Veri bütünlüğünü ve sorgu performansını etkileyebilecek veri anomalilerini, eksik değerleri veya yinelenen kayıtları tanımlayın. Bu adım, veri temizleme ve geliştirme alanlarını belirlemenize yardımcı olur.

  • Veri dağıtımlarını yakalama. Veri desenlerini belirlemek için her sütundaki değerlerin dağılımını analiz edin. Sık ve nadir değerleri, aykırı değerleri ve veri dengesizliklerini belirleyin. Sorgu performansını iyileştirmek için dağıtıma göre uygun dizin oluşturma stratejilerini ve sorgu iyileştirme tekniklerini seçin.

Veri performansını izleme

Veri performansı izleme, veri depolarının, bölümlerin ve dizinlerin verimliliğini gerçek zamanlı olarak tutarlı bir şekilde izleme uygulamasıdır. Sistem düzeyinde, veritabanına özgü veya üçüncü taraf izleme çözümleri için uyarlanmış araçları kullanarak veri işlemlerine özgü performans ölçümlerini toplamayı ve analiz etmeyi içerir. Etkili veri performansı izleme, verilerle ilgili işlemlerin ve görevlerin verimli olmasını sağlayarak olası performans sorunlarını önceden belirlemenize ve azaltmanıza olanak tanır. Veri performansını izlemek için aşağıdaki stratejileri göz önünde bulundurun:

  • Verilere özgü ölçümleri toplama. Veri performansıyla doğrudan ilgili temel ölçümleri toplayın. Bu ölçümler sorgu yanıt sürelerini, veri aktarım hızını, veri erişimiyle ilgili disk G/Ç'sini ve belirli veri bölümlerinin yükleme sürelerini içerir.

  • Veri uyarılarını ayarlayın. Özellikle veri ölçümleri için uyarılar ayarlayın. Uyarıları tetikleme amacıyla bu ölçümlerde önceden tanımlanmış eşikleri veya anomalileri kullanın. Uyarılar, performans ölçümleri kabul edilebilir aralıkları aştığında veya anormal davranış gösterdiğinde bildirim almanızı sağlar. Örneğin, veritabanı sorgusu beklenenden uzun sürerse veya veri aktarım hızı önemli ölçüde düşerse bir uyarı tetikler. Özel izleme araçlarını veya özel betikleri kullanarak bu uyarıları ayarlayabilirsiniz.

  • Veri performansı sorunlarını tanılama. Veri işlemlerinde olası performans sorunlarını veya düşüşü saptamak için toplanan veri ölçümlerini düzenli olarak gözden geçirin. Görselleştirme araçları veya panoları bu süreçte çok değerli olabilir ve veri performansındaki eğilimleri, performans sorunlarını ve aykırı değerleri vurgulamada yardımcı olabilir. Tanımlandıktan sonra, bu sorunların kök nedenlerini inceleyin ve uygun düzeltme adımlarını strateji haline getirin.

Verileri bölümleme

Bölümleme, büyük veri kümelerinin veya yüksek hacimli iş yüklerinin daha küçük, yönetilebilir alt kümelere bölünmesini içerir. Bölümleme, iş yükünü dağıtarak ve paralel işlemeyi geliştirerek veri performansı verimliliğini artırır. Ayrıca belirli gereksinimlere ve sorgu desenlerine göre daha etkili veri erişimi sağlar. Verileri dikey veya yatay olarak bölümleyebilirsiniz (parçalama olarak da adlandırılır).

Strateji Tanım Örnek Uygulama alanları
Dikey bölümleme Her bölüm için belirli sütunları veya alanları seçerek tabloyu daha küçük tablolara bölün. Her bölüm, tam verilerin bir alt kümesini temsil eder. A, B, C ve D sütunlarını içeren bir tablonuz varsa, A ve B sütunlarını içeren bir tablo ve C ve D sütunlarını içeren başka bir tablo oluşturabilirsiniz. - Tablo birçok sütun içerir, ancak sorgular tüm sütunlara birlikte erişmez.
- Bazı sütunlar diğerlerinden daha büyüktür ve bunları ayırmak G/Ç performansını artırabilir.
- Farklı veri bölümlerinin farklı erişim desenleri vardır.
Yatay bölümleme Verileri satırlara veya değer aralıklarına (parçalama olarak da bilinir) göre bölün. Her bölüm, benzer özelliklere sahip bir satır alt kümesi içerir. 1 ile 1000 arasında satıra sahip bir tablonuz varsa, 1 ile 500 arasında satır içeren bir bölüm ve 501 ile 1000 arasında satırları olan bir bölüm oluşturabilirsiniz. - Veri kümesi tek bir konum veya sunucu için çok büyük.
- Verilere belirli aralıklara veya filtrelere göre erişilir.
- Gelişmiş performans için iş yükünü fiziksel düğümler veya sunucular arasında dağıtmanız gerekir.

Verilerinizi bölümlendirmek için aşağıdaki adımları göz önünde bulundurun:

  • Verileri ve sorguları analiz etme. Uygun bölümleme veya parçalama stratejilerini belirlemek için verileri ve sorgu desenlerini analiz edin. Verilerin niteliğini, erişim desenlerini ve dağıtım gereksinimlerini anlayın.

  • Bir anahtar belirleyin. Verileri bölümler veya parçalar arasında dağıtmak için bir bölümleme veya parçalama anahtarı seçin. Veri özelliklerine ve sorgu gereksinimlerine göre anahtarı dikkatle seçin.

  • Mantığı belirleme. Seçilen anahtara göre bölümleme veya parçalama mantığını belirleme. Verileri aralıklara bölmeyi, karma algoritmaları uygulamayı veya diğer bölümleme tekniklerini kullanmayı göz önünde bulundurun.

  • Altyapıyı yapılandırın. Veritabanı sistemini bölümleme veya parçalanmayı destekleyecek şekilde yapılandırın. Gerekli altyapıyı oluşturmayı, bölümleri veya parçaları tanımlamayı ve veri dağıtımını yapılandırmayı göz önünde bulundurun.

Daha fazla bilgi için bkz . Veri bölümleme kılavuzu.

Veritabanı sorgularını iyileştirme

Veritabanı sorgularının iyileştirilmesi, dizin ipuçları ve önbelleğe alma gibi teknikleri kullanarak sorguları iyileştirilir. Bu ayarlamalar veri alma verimliliğini ve hızını artırır. Sonuç olarak, veritabanı daha hafif bir iş yüküne sahiptir, kaynaklar daha etkili çalışır ve kullanıcılar daha sorunsuz etkileşimlerden yararlanabilir. Veritabanı sorgularını iyileştirmek için aşağıdaki stratejileri göz önünde bulundurun:

  • Sorguları yeniden yazma. Yeniden yazma fırsatlarını belirlemek için karmaşık sorguları gözden geçirin ve analiz edin. Sorgu mantığını yeniden yapılandırmayı, gereksiz işlemleri ortadan kaldırmayı veya sorgu söz dizimlerini basitleştirmeyi göz önünde bulundurun.

  • N+1 sorgu sorunundan kaçının. İlişkili verileri verimli bir şekilde almak için birleştirmeleri ve toplu getirmeyi kullanarak veritabanına gidiş dönüş sayısını en aza indirin.

  • Birleştirmeleri yeniden sırala. Sorgu planını değerlendirin ve her birleştirme işlemindeki satır sayısını en aza indirmek için birleştirme sırasını yeniden düzenlemeyi göz önünde bulundurun. Tabloları birleştirme sırası sorgu performansını etkileyebilir.

  • Dizin ipuçlarını kullanın. Veritabanı altyapısının sorgu çalıştırırken dizin kullanımını belirtebilmesi için dizin ipuçlarını kullanın. Dizin ipuçları, en uygun dizinleri seçmek için iyileştiriciye yol gösterir.

  • Önbellek sorguları. Sık çalıştırılacak sorguların sonuçlarını bellekte depolayın. Sorgu önbelleğe alma, aynı sorguyu tekrar tekrar çalıştırma gereksinimini ortadan kaldırır ve sorgu işleme ek yükünü azaltır.

  • Kilitlemeyi iyileştirin. Sorgularda gereksiz veya kısıtlayıcı kilit ipuçlarından kaçının. Verimli kilitleme stratejileri sorgu performansını ve eşzamanlılığını geliştirebilir. Veritabanı sisteminin sağladığı iyileştirilmiş kilitleme mekanizmaları uygulayın. Veri tutarlılığı ile sorgu performansını dengelemek için yalıtım düzeylerini analiz edin ve ayarlayın.

  • İzleme ve ayarlama. Çalışma zamanı, kaynak kullanımı ve sorgu aktarım hızı gibi sorgu performansı ölçümlerini izleyin. Düşük performanslı sorguları belirlemek için veritabanı profil oluşturma araçlarını ve izleme işlevlerini kullanın. Toplanan performans verilerine göre sorgu planlarını değerlendirin ve ince ayarlar yapın. Performans sorunlarını belirlemek için sorgu planlarını analiz edin ve istatistikleri bekleyin. Sorgu performansını iyileştirmek için bu bilgileri kullanın.

Dizin performansını iyileştirme

Dizinler, veritabanlarının belirli sütunları veya alanları kullanarak verileri hızla bulmasını sağlayarak veri alma hızını artırır. Bu dizinleri iyileştirdiğinizde sıralama ve birleştirme işlemleri daha verimli hale gelir ve sorguların daha hızlı olmasına neden olur. İyi iyileştirilmiş dizinler, sorgular için gereken disk G/Ç işlemlerini keser. Gereksiz veya yedekli dizinlerin kaldırılması da değerli depolama alanı açar. Dizin performansını iyileştirmek için aşağıdaki stratejileri göz önünde bulundurun:

  • Sorgu desenlerini analiz etme. Veritabanınızda çalışan sorgu desenlerini anlayın. Sık çalışan ve performansı düşürebilecek sorguları belirleyin. Performansı iyileştirmek için hangi dizinlerin yararlı olduğunu belirlemek için sorgu desenlerini analiz edin.

  • Mevcut dizinleri değerlendirin. Veritabanınızdaki mevcut dizinleri gözden geçirin. Bunların kullanımını, performans etkilerini ve sorgu desenleriyle olan ilgilerini değerlendirin. Yazma performansını geliştirmek ve depolama ek yükünü azaltmak için kaldırabileceğiniz yedekli veya kullanılmayan dizinleri belirleyin.

  • Dizin oluşturma için sütunları tanımlama. Sorgularınızın where, join ve order by yan tümcelerinde sık kullanılan sütunları belirleyin. Bu sütunlar, hızlı veri almayı etkinleştirebileceğinden dizin oluşturma için olası adaylardır.

  • Uygun bir dizin türü seçin. Veritabanı sisteminize göre uygun bir dizin türü seçin. Yaygın seçenekler arasında eşitlik ve aralık sorguları için b ağacı dizinleri, tam eşleşme sorguları için karma dizinler ve metin arama işlemleri için tam metin dizinleri bulunur. Sorgu gereksinimlerinize en uygun dizin türünü seçin.

  • Dizin sütun sırasını göz önünde bulundurun. Bileşik dizinler veya birden çok sütunlu dizinler oluşturduğunuzda sütunların sırasını göz önünde bulundurun. Sorgularda en sık kullanılan sütunları dizinin başına yerleştirin. Sütun sırası, iş yükünüzün çok çeşitli sorgular için dizinleri etkili bir şekilde kullanmasını sağlamaya yardımcı olur.

  • Dizin boyutunu dengeleyin. Düşük kardinaliteye sahip sütunlarda veya düşük sayıda ayrı değere sahip sütunlarda dizin oluşturmaktan kaçının. Bu tür dizinler verimsiz olabilir ve veritabanınızın boyutunu artırabilir. Bunun yerine, yüksek seçiciliğe sahip sütunları dizine ekleyin.

  • Dizin kullanımını koruyun. Dizinlerinizin kullanımını ve performansını sürekli izleyin. Sorgu desenlerindeki veya performans gereksinimlerindeki değişikliklere göre yeni dizinler oluşturma veya mevcut dizinleri değiştirme fırsatlarını arayın. Artık yararlı olmayan dizinleri kaldırın veya güncelleştirin. Dizinlerin bakım yükü vardır. Veri değiştikçe dizinler parçalanabilir ve performansı etkileyebilir. En iyi performansı sağlamak için dizinleri yeniden derleme veya yeniden düzenleme gibi dizin bakım görevlerini düzenli olarak gerçekleştirin.

  • Test edin ve doğrulayın. Üretim ortamında dizinleri düzeltmeden önce kapsamlı test ve doğrulama gerçekleştirin. Temsili iş yüklerini kullanarak dizin düzeltmelerinin performans etkisini ölçün. Önceden tanımlanmış karşılaştırmalarda yapılan iyileştirmeleri doğrulayın.

Denge: B ağacı dizinleri yüksek depolama yüküne sahip olabilir ve tam eşleşme sorguları yavaş olabilir. Karma dizinler, aralık sorguları veya karşılaştırma işleçleri için uygun değildir. Tam metin dizinleri yüksek depolama gereksinimlerine sahip olabilir ve metin olmayan veri sorguları yavaş olabilir.

Veri sıkıştırmayı göz önünde bulundurun

Veri sıkıştırma, depolama alanını iyileştirmek ve iş yükü performansı verimliliğini artırmak için verilerin boyutunu küçültme işlemidir. Sıkıştırılmış veriler daha az depolama alanı ve aktarım için daha az bant genişliği gerektirir ve bu da hızlı veri aktarımına neden olur. Depolama alanı ayak izinizi azaltmak ve veri erişim sürelerini iyileştirmek için verileri sıkıştırırsınız. Verileri sıkıştırdığınızda G/Ç işlemleri ve ağ bant genişliği gereksinimleri azalır.

Kayıpsız sıkıştırma ve kayıplı sıkıştırma, veri sıkıştırma algoritmalarıdır. Kayıpsız sıkıştırma algoritmaları, herhangi bir bilgi kaybetmeden veri boyutunu azaltır. Kayıplı sıkıştırma algoritmaları, daha az önemli veya yedekli bilgileri kaldırarak yüksek sıkıştırma oranları elde eder.

Denge: Verileri sıkıştırmak ve sıkıştırmasını açmak için CPU ve bellek gibi hesaplama kaynaklarına ihtiyacınız vardır. Ne kadar çok veri sıkıştırırsanız o kadar fazla kaynağa ihtiyacınız olur.

Verileri arşivle ve temizle

Arşivleme ve temizleme, veri depolamayı kolaylaştıran stratejilerdir. Arşivleme, eski ve daha az sıklıkta erişilen verileri daha uygun maliyetli bir depolama alanına yeniden yerleştirir. Verilerin temizlenmesi, gereksiz verileri kalıcı olarak kaldırır. Veri hacmini azaltarak, veri erişim hızını artırarak ve yedekleme ve kurtarma sürelerini azaltarak performans verimliliğine katkıda bulunur:

  • Veri hacmini azaltma: Daha az veri, kullanıcı isteklerine hızlı yanıtlar sağlayarak işleme sürelerinin daha hızlı olması anlamına gelir.

  • Veri erişim hızını artırma: Kırpılmış veri kümesi, daha hızlı sorgular ve veri alımına olanak sağlayarak sistem yanıt hızını en iyi duruma getirir.

  • Yedekleme ve kurtarma sürelerini azaltma: Daha küçük veri kümeleri yedekleme ve geri yükleme işlemlerini hızlandırarak kapalı kalma süresini en aza indirir ve tutarlı performans sağlar.

Arşivleme ve temizleme, veri odaklı sistemlerde en yüksek performans verimliliğinin korunmasında etkili olur.

Depolama yükünü iyileştirme

Depolama yükünün iyileştirilmesi, isteklerin depolama sistemine akışla aktarılması anlamına gelir. Gereksiz isteklerin ortadan kaldırılmasına yardımcı olur. Ayrıca veri alımını iyileştirir ve depolamanın aşırı olmasını önler. Depolama yükünün iyileştirilmesi, depolama sisteminin meşru isteklere yanıt vermeye devam etmesini ve en yüksek performansı korumasını sağlar. Veri deposu üzerindeki işleme yükünü azaltmak için stratejiler uygulayın. Veri deposu yükünü iyileştirmek için aşağıdaki stratejileri göz önünde bulundurun:

Önbelleğe almayı kullanma

Önbelleğe alma, sık erişilen verileri hızlı erişimli bir depolama alanında depolar ve bu da verileri ana kaynaktan çekmekten daha hızlı bir şekilde alır. Bu teknik, erişim sürelerini azaltıp yinelenen veri getirme işlemlerinden kaçınarak veri performansını artırır. Önbelleğe alma, özellikle sık erişilen veriler için okuma hızlarını ve kullanıcı yanıt sürelerini iyileştirir Bu yöntem en çok statik veriler veya nadiren değişen veriler üzerinde etkilidir.

En iyi önbelleğe alma verimliliğini sağlamak için süre sonu ilkeleri, çıkarma stratejileri ve önbellek boyutunu yönetme gibi faktörleri göz önünde bulundurun. En iyi performans için yaşam süresi (TTL) gibi ayarları ayarlayın. Depolama yükünü iyileştirmek üzere önbellek kullanmak için aşağıdaki stratejileri göz önünde bulundurun:

  • Bellek içi önbelleğe alma: Hızlı alma için sık erişilen verileri bellekte depolamak için bellek içi önbelleğe alma gerçekleştirin. Hesaplaması veya veritabanından alınması pahalı olan uygulama verileri için bu tekniği kullanabilirsiniz. Bellek içi önbelleğe alma, sık okuduğunuz ancak sık değiştirmediğiniz veriler için kullanışlıdır.

  • Veritabanı sorgusunu önbelleğe alma: Aynı sorgunun birden çok kez çalıştırılmasını önlemek amacıyla veritabanı sorgularının sonuçlarını önbelleğe almak için bu tekniği kullanın. Veritabanı sorgusunu önbelleğe alma, karmaşık ve zaman alan veritabanı sorguları için yararlıdır. Bir sorgunun sonuçlarını önbelleğe aldığınızda, aynı sorgu için sonraki istekler hızlı bir şekilde döndürülür.

  • İçerik teslim ağı önbelleğe alma: Gecikme süresini azaltmak ve içerik teslimini geliştirmek amacıyla dağıtılmış ağ sunucularında web içeriğini önbelleğe almak için bu tekniği kullanın. İçerik teslim ağı önbelleğe alma; görüntüler, CSS dosyaları ve JavaScript dosyaları gibi statik içerik için etkilidir. İçerik teslim ağları, kullanıcıların içeriğe coğrafi olarak yakın olan bir sunucudan erişebilmesi için içeriğin kopyalarını dünya çapında birden çok konumda depolar.

Okuma amaçlı çoğaltmaları kullanma

Birçok veritabanı birden çok okuma amaçlı çoğaltmayı destekler. Yazma veritabanındaki talebi en aza indirmek için okuma sorgularını çoğaltmalar arasında dağıtın. Her okuma çoğaltması trafiğin bir alt kümesine hizmet edebilir ve bu da performansı artırabilir.

Eşitlenmiş durumda kalmasını beklediğiniz birden çok veri çoğaltmasına sahip bir iş yükünüz olduğunda, PACELC teoremini kullanarak bu dağıtılmış sistemi modellemek yararlı olur. PACELC teoremi, sistemin bölümlenmemiş durumundaki gecikme süresi ile tutarlılık arasındaki denge seçeneklerini anlamanıza yardımcı olur. Sistemi bölümlenmiş ve bölümlenmemiş durumda en iyi şekilde ele alan bir veritabanı altyapısı ve veri eşitleme stratejisi seçmenize yardımcı olması için bu bilgileri kullanın. Daha fazla bilgi için bkz. Komut ve Sorgu Sorumluluğu Ayrımı (CQRS) düzeni.

Veri tutarlılığını iyileştirme

Verilerin birden çok düğüm veya konumda bulunduğu dağıtılmış bir iş yükünde, seçtiğiniz tutarlılık düzeyi, bir konumdaki değişikliklerin diğerlerine ne kadar hızlı yansıdığını belirler. Daha katı tutarlılığı tercih etmek daha fazla işlem kaynağı tüketir ve performans verimliliğini olumsuz etkileyebilir. Öte yandan, nihai tutarlılık gibi daha az katı bir tutarlılık düzeyi düğümler arasında geçici tutarsızlıklar getirir ancak performans verimliliğini artırabilir.

Nihai tutarlılık, veri doğruluğu ile iş yükü performansı arasında bir denge oluşturur. Değişiklikler anında değil aşamalı olarak yayılarak iş yükü yanıt hızını ve veri işleme hızını artırır. Kısa süreli tutarsızlıklar ortaya koysa da, iş yükü sonunda tüm düğümler arasında tutarlı veriler sunar. Nihai tutarlılığı seçmek, iş yükünün performansını yükseltebilir ve kullanılabilirliğini ve ölçeklenebilirliğini daha da iyileştirebilir.

Veri güncelleştirmelerini iyileştirme

Aynı verilerde eşzamanlı güncelleştirmeleri işlemek için iyimser eşzamanlılık kullanabilirsiniz. İyimser eşzamanlılık, verileri kilitlemek ve diğer güncelleştirmeleri önlemek yerine birden çok kullanıcının veya işlemin eşzamanlı olarak çalışmasını sağlar ve çakışmaların nadir olduğunu varsayar.

İyimser eşzamanlılık ile her güncelleştirme işlemi, güncelleştirme sırasındaki verilerin durumunu temsil eden bir sürüm veya zaman damgası içerir. Çakışan bir güncelleştirme algılandığında sistem, güncelleştirmeyi reddederek veya değişiklikleri birleştirerek çakışmayı çözer.

İyimser eşzamanlılık çekişmeyi en aza indirir ve eşzamanlı güncelleştirmelerin gereksiz kilitleme olmadan devam etmesine olanak tanır. Kaynakların bekleme süresini kısaltır ve yüksek aktarım hızı sağlar.

Veri taşıma ve işlemeyi iyileştirme

Veri taşıma ve işlemenin iyileştirilmesi, veri ayıklama, dönüştürme, yükleme ve işleme ile ilgili işlemlerin verimliliğini ve performansını geliştirmeyi içerir. Veri taşıma ve işlemeyi iyileştirmenin aşağıdaki önemli yönlerini göz önünde bulundurun:

  • Ayıklama, dönüştürme ve yükleme (ETL) iyileştirmesi: İşlem süresini en aza indirmek için ETL işlemlerini iyileştirin. Ayıklama işlemini kolaylaştırabilir, verimli dönüşüm algoritmaları uygulayabilir ve yükleme işlemini iyileştirebilirsiniz. Her adımı verimli hale getirdiğinizde, genel iş akışını iyileştirebilirsiniz.

  • Paralel işleme: Performansı geliştirmek için paralel işleme tekniklerini kullanma. Veri işleme görevlerini birden çok iş parçacığına veya düğüme dağıttığınızda, iş yükünü eşzamanlı olarak bölebilir ve işleyebilirsiniz ve bu da hızlı işlemeye neden olur.

  • Toplu işleme: Yinelenen işlemlerin neden olduğu ek yükü azaltmak için benzer görevleri birlikte gruplandırma. Genel işlem süresini kısaltmak için birden çok görevi toplu işleyin.

Depolama tasarımını iyileştirme

Depolama tasarımını iyileştirme, hassas bir veri depolama mimarisi oluşturmayı ve uygun depolama teknolojilerini seçmeyi gerektirir. Kolaylaştırılmış depolama tasarımı, veri erişimini, alımını ve işlemesini geliştirir. Stratejik depolama tasarımı sayesinde iş yükü, daha iyi yanıt süreleri ve genel işlevsellik sağlar.

Veri yakınlığı tasarımı

Veri yakınlığı, verilerin en sık erişen kullanıcılara veya hizmetlere daha yakın stratejik bir şekilde yerleştirilmesini ifade eder. Veri yakınlığı, verilerle kullanıcıları arasındaki fiziksel veya mantıksal uzaklığı azaltarak daha hızlı veri erişimi ve daha iyi yanıt süresi sağlar. Tasarımı yakınlık açısından iyileştirmek için şu stratejileri göz önünde bulundurun:

  • Veri erişim desenlerini değerlendirme: İş yükünüzün erişim desenlerini ve sık erişilen verileri değerlendirin. Bu analiz, maksimum avantaj için verilerin nereye yerleştirileceğini belirlemeye yardımcı olabilir.

  • Verileri yeniden konumlandırmayı destekleyen çözümleri seçin: Değişen erişim düzenlerine göre dinamik veri yeniden konumlandırma sunan çözümleri göz önünde bulundurarak en iyi veri konumlandırmasını sağlayın.

  • Veri eşitlemeyi destekleyen çözümleri seçin: Dağıtılmış bir kullanıcı tabanına uygunsa, veri çoğaltmalarının kullanıcılara yakın bir şekilde kullanılabilir olmasını sağlayarak çeşitli bölgelerde veri eşitlemeyi kolaylaştıran çözümleri tercih edin.

Denge: Temel alınan veriler sık sık değişiyorsa, önbelleğe alınan verilerin güncel kalmasını sağlamak için bir önbellek geçersizleştirme mekanizması uygulayın.

Çok teknolojili kalıcılığı kullanma

Çok teknolojili kalıcılık, bir uygulama veya sistem içinde farklı veri türlerini depolamak ve yönetmek için birden çok veri depolama teknolojisi kullanma uygulamasıdır. Farklı veritabanı türleri veya depolama çözümleri farklı veri gereksinimlerine hizmet eder.

Çok teknolojili kalıcılık, her veri türü için en iyi performansı ve ölçeklenebilirliği sağlamak için her veri depolama teknolojisinin avantajlarından yararlanır. Örneğin, yapılandırılmış, işlem verilerini depolamak için ilişkisel bir veritabanı kullanabilirsiniz. Yapılandırılmamış veya yarı yapılandırılmış verileri depolamak için bir NoSQL veritabanı kullanabilirsiniz.

Verilerin gereksinimlerine göre her veri depolama teknolojisi için bir şema tasarlayın. İlişkisel veritabanları için uygun ilişkilere sahip normalleştirilmiş tablolar oluşturabilirsiniz. NoSQL veritabanları için belge yapıları veya anahtar-değer çiftleri tanımlayabilirsiniz. API'ler, veri erişim katmanları veya veri tümleştirme işlem hatları gibi her veri depolama teknolojisiyle etkileşime geçmek için gerekli bileşenleri geliştirin. Uygulamanın uygun veri depolarına veri okuyabildiğinden ve yazaadığından emin olun.

Dengeleme: Düşük normalleştirmeye sahip bir veri yapısı performansı artırabilir ancak karmaşıklıklar ortaya koyabilir.

OLTP ve OLAP sistemlerini ayırma

OLTP ve OLAP sistemlerini ayırmak için, işlemsel işleme ve analitik işleme görevleri için ayrı sistemler tasarlayıp dağıtın. Bu ayrım, her sistemi belirli iş yükü ve özellikleri için iyileştirmenize olanak tanır.

OLTP sistemleri gerçek zamanlı işlem işleme için kullanılır. Tek tek işlemleri verimli ve güvenilir bir şekilde işler. OLTP sistemleri genellikle çevrimiçi sipariş işleme, envanter yönetimi ve müşteri veri yönetimi gibi günlük işlem görevlerini gerçekleştirmek için kullanılır. OLTP sistemleri yanıt hızını, tutarlılığı ve eşzamanlılığı önceliklendirir.

OLAP sistemleri karmaşık analitik işleme ve raporlama için kullanılır. Bunlar büyük hacimli verileri işler ve yoğun hesaplamalar ve toplamalar gerçekleştirir. OLAP sistemleri iş zekası, veri madenciliği ve karar desteği gibi görevler için kullanılır. OLAP sistemleri sorgu performansını, veri toplamayı ve çok boyutlu çözümlemeyi öncelik sırasına alır.

OLTP ve OLAP sistemlerini ayırdığınızda, uygun kaynakları ayırabilir ve her sistemi kendi iş yükü için iyileştirebilirsiniz. Ayrım, her sisteme farklı veri modelleme teknikleri uygulamanızı sağlar. OLTP sistemleri genellikle verimli işlem işleme için normalleştirilmiş şemalar kullanır. OLAP sistemleri, sorgu performansını iyileştirmek için normalleştirilmiş olmayan şemalar veya veri ambarı teknikleri kullanabilir.

Azure kolaylaştırma

Profil oluşturma verileri: Azure, Azure Veri Kataloğu, AzurePurview ve Azure Synapse Analytics gibi verilerin profilini oluşturmak için kullanabileceğiniz araçlar ve hizmetler sunar. Bu araçlar çeşitli kaynaklardan verileri ayıklamanıza, dönüştürmenize ve yüklemenize, veri kalitesi denetimleri gerçekleştirmenize ve verilerle ilgili içgörüler elde etmenize olanak tanır.

Veri performansını izleme: Veri performansını izlemek için Azure İzleyici'yi kullanarak altyapı ölçümlerini, günlüklerini ve uygulama verilerini toplayabilir ve analiz edebilirsiniz. İzleyici'yi Application Insights gibi diğer hizmetlerle tümleştirebilirsiniz. Application Insights, uygulama performansı izleme sağlar ve birçok platformu destekler.

Application Insights, kullanım ve performans verilerini toplar. Log Analytics'i kullanarak bu verileri Azure kaynakları genelindeki yapılandırma ve performans verileriyle ilişkilendirebilirsiniz.

Veritabanınızı izlemek için Azure SQL ve Azure Cosmos DB'nin içgörüler özelliğini kullanabilirsiniz. Bu özellik, veritabanı performans sorunlarını tanılamanıza ve ayarlamanıza olanak tanır.

Verileri bölümleme: Azure, farklı veri depoları için çeşitli bölümleme stratejileri sunar. Her veri deposu, veri bölümleme için farklı önemli noktalara ve yapılandırma seçeneklerine sahip olabilir. Daha fazla bilgi için bkz . Veri bölümleme stratejileri.

Veritabanı sorgularını ve dizin performansını iyileştirme: Sorguları, tabloları ve veritabanlarını iyileştirmek için Azure SQL Veritabanının sorgu performansı içgörü özelliğini kullanın. Sorgu performansı sorunlarını belirlemek ve gidermek için bu özelliği kullanabilirsiniz.

İlişkisel veritabanları için dizin tasarımı yönergelerini, SQL Server dizin kılavuzunu ve Azure Cosmos DB dizin kılavuzunu izlemeniz gerekir. Performanslarını geliştirmek amacıyla sorgular için otomatik ayarlama gerçekleştirmek üzere SQL Veritabanı kullanın.

SQL veritabanlarında dizinleri düzenli olarak yeniden düzenlemeniz veya yeniden oluşturmanız gerekir. Yavaş sorguları belirleyin ve performansı geliştirmek için ayarlayın. Birçok veritabanı altyapısında sorgu ayarlama özellikleri vardır. Daha fazla bilgi için bkz. Sorgu performansı için en iyi yöntemler.

Azure Cosmos DB, her öğenin her özelliğini dizinleyen ve herhangi bir dize veya sayı için aralık dizinlerini zorunlu kılan varsayılan bir dizin oluşturma ilkesine sahiptir. Bu ilke size verimli sorgu performansı sağlar ve dizinleri önceden yönetmeniz gerekmez.

Depolama yükünü iyileştirme: Birçok Azure veritabanı hizmeti okuma amaçlı çoğaltmaları destekler. Okuma amaçlı çoğaltmaların kullanılabilirliği ve yapılandırması, Azure veritabanı hizmetine bağlı olarak değişir. Ayrıntıları ve seçenekleri anlamak için her hizmetin resmi belgelerine bakın.

Depolama tasarımını iyileştirme: Azure, iş yükü gereksinimlerinize uygun birçok farklı veri deposu sunar. Veri deposu türlerini anlayın ve uygulamanız için bir Azure veri deposu seçin.

Performans Verimliliği denetim listesi

Önerilerin tamamına bakın.