Veri Arşivleme Hikayesi ve Önemi

Bugün sizlere sevdiğim bir arkadaşımın yönettiği sistemde karşılaştığı ve yönetmekte problem yaşadığı bir durumu ve bu durumun çözümde ki yöntemin sistemleriniz için sistematik kullanılırsa performans  açısından çok işinize yarayacağını aktarmak istedim. Konuya örneğimiz üzerinden anlatacağım bu şekilde daha net süreçleri

Veritabanında bulunan ve neredeyse db de ki tüm yükü göğüsleyen dediğimiz bir ana tablomuz mevcut. Tablomuzun boyutu toplamda 185 GB olmakla beraber bu tablo üzerinde yüklü miktarda da index oluşturulmuş. Ana tablo olarak görev almakta olduğundan çok fazla query bu tablo üzerinden  dönmektedir.Sistemin ana problemlerinden bir tanesi yani daha doğrusu şikayet edilen bölümleri çok fazla CPU kullanmakta ve query ler çok yavaş olduğu idi.

Sistem incelendiğinde tüm oklar bir tek tabloyu göstermekte idi ve tablo üzerinde ki süreçler sistemi sıkıntıya sokan süreçlerdi.

Tablo incelemesinden sonra , tablonun {6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}90 ının eski ve nadir kullanılan dataya sahip olduğu tespit edildi.

Yani 185 Gb size a sahip tablonun 165 GB ‘ı eski ve nadir kullanılan bir data kapsamaktaydı. Bu yüklü dataya sahip tablo üzerinde de toplam 6 adet index bulunmaktaydı ve gereksiz datalarıda bu Indexler ile arşivlendiğinden tablo üzerinde ki Index lerin performansı da düşük durumdaydı.

Hesaplanan süreçler sonucunda eski data farklı bir arşiv veritabanı oluşturulup oraya aynı tablo meta-data sı ile arşivlendi ve tablo size ı bir anda 20 Gb a düştü.

Daha sonra Arşiv datasının da gerekli olduğunda çekilebilecek bir VIEW tasarlandı ve iki tablo UNION ALL ile birleştirilerek sorgu sonucu tek tabloymuş gibi çekilir hale getirildi.

Bu ufak bir arşivleme işleminden sonra CPU Cost u {6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}65 oranında iyileştirme sağlandı ve bekleme yapan sorguların {6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}90 ınında iyileşme sağlandı. Diğer {6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}10 luk sorgularda rapor sorguları olduğundan ekstra query tuning istemkete idi.

 

Arşivleme ile sistemlerinizde ayni active data larınızın olduğu yerlerde eski datalarınızı farklı ortamlara ya da farklı db lere taşıyarak ana sistemlerinizin yükünü büyük oranda iyileştirebilirsiniz ki bizim örneğimizde bu o şekilde gerçekleşti. Arşivleme ile tablolarınız üzerinde  ki Index lerinizin içerisinde ki data size larını ufaltıp daha az page lere dağılmasını ve herhangi bir okumada gelen işlemin daha az page okuyarak IO değerlerinin düşmesini aynı zamanda daha az data içerisine gireceğinden CPU cost unu yüklü miktarda düşürebileceğinizi bilmeniz gerekmekte.

 

O yüzden ne yapıyoruz ? Sistemlerinizde ki tüm tablolarınızı tarayıp arşivlenecek datalarınızın olup olmadığınız Development ekipleriniz ile hazırladığınız raporlar üzerinden belirleyerek periyodik olarak farklı ortamlara aktarılmasını sağlıyoruz.

 

Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *