SQL Server Günlüğü: Sorunları donanım ekleyerek sadece bir yere kadar ötelersiniz
Çalıştığımız ortamlardan birinde 3 senedir arşivleme yapılmıyordu ve canlı ortamda devreye girmiş ve henüz kontrolden geçmemiş bazı kodlar vardı.
En son gösterilecek şeyi en önce göstereyim:
CPU kullanım grafiği
Yukarıda grafiğini gördüğünüz şey, bahsini ettiğim bu şirket için en kritik olan veritabanı sunucusuna ait CPU kullanım grafiği.
Tabii bu grafiği CPU kullanım ortalaması zaten düşükmüş olarak yorumlamayın hemen. CPU kullanım oranının ortalama %20-25'lerde görünmesinin nedeni, yoğun ortalamanın bu seviyede oluşu. Yani kısa süreli de olsa çok daha yoğun kullanımlar oluyordu, fakat yukarıdaki grafiği oluşturmak için kullanılan verinin çokluğu ve ortalamanın %20-25'lerde olması nedeniyle grafikte ortalama bu seviyelerde görünüyor. Yani eğer birkaç ay geriye dönük değil de daha kısa zaman dilimlerinde bakılırsa ortalama daha yüksek gözükür.
Bununla birlikte dikkat edilirse ya işlenmesi gereken verinin gitgide artmış olmasından, ya bazı yeni kodların devreye girmesinden vb. CPU kullanımının zamanla yükseldiği de görülüyor. Yani müdahale edilmediğinde ortalama değer daha da artacaktı. Arşivleme ve performansiyileştirme işleri de 28 Temmuz tarihinde başlatıldı.
Bu ortamda arşivlenebilecek 3 senelik veriyi arşivledim ve bazı SP'leri elden geçirdik. Sadece bu çalışmalardan sonra CPU kullanımının yoğunluklu ortalaması %30'lardan %5'lere düştü.
Bunları anlatarak vermek istediğim mesajı daha da netleştirmek gerekirse, canlı sisteminizde olması şart olmayan veya canlı ortamda sadece zaman zaman ulaşılması gereken verilerinizi arşivleyin. Gereksiz veriler için indeks ve istatistik bakımları yapmayın, tablo/index tarama işlemleri yapmayın, sorgulanan veriyi işlemek için hafıza, disk, ağ ve işlemci gibi kaynaklarınızı boşa harcamayın.
Verilerinizi ihtiyacınıza göre ılık şekilde veya soğuk şekilde arşivleyin. Misal sürekli ana veritabanınızda olması gerekmeyen veriyi ayrı bir veritabanına aktarın, gerekirse disk altyapısını da disk/sistem yönetimi takımlarıyla planlayıp ayırın ve ihtiyaca göre tasarlayın. Bu ılık veriyi sadece gereken sorgularda/SP'lerde sorgulatın. Eğer verinin soğuk olarak arşivlenmesi gerekiyorsa planlamanızı yapın ve veriyi örneğin senelere, aylara bölün, sıkıştırarak yedekleyip canlı veritabanından silin. Tabii tüm bu çalışmaların iş bölümüyle, ilgili yazılım bölümleriyle ve yöneticilerle planlanıp uygulanması gerekiyor.
Gönderen Ekrem Önsoy zaman: 15:29
Etiketler: Arşivleme, Performans iyileştirme
Bir Azure SQL Database'i yerel bir Instance'a taşı...
Sorunları donanım ekleyerek sadece bir yere kadar ...
Bir Fulltext Index tecrübesi