Veritabanı Performansı Nelere Bağlıdır?

Veritabanı performansı yazılımsal ve donanımsal faktörlere bağlıdır. Bir veritabanı yönetim sistemi yüklü olduğu sunucunun kendisine verdiği kaynaklar doğrultusunda hareket etmesine karşın kendi içinde oluşan yapısal sorunlar yüzünden de performans sıkıntısı çekebilir.

Veritabanı yönetim sistemi bir sunucu üzerinde çalışmaktadır ve doğal olarak bu sunucunun kaynaklarından faydalanan başka yazılımlar da vardır. Donanımsal olarak baktığımız zaman en yavaş bileşen sabit disktir. Okuma ve yazma işlemleri sabit disk üzerinden gerçekleşir ve bu işlemlerin sıklığı arttıkça sunucu sabit diskte yoğunluk yüzünden yavaşlar. Örneğin, arka planda sürekli sabit diski meşgul eden bir yazılım varsa veritabanı da doğal olarak yavaşlayacaktır. Genellikle, yoğun veritabanları kendilerine ait özel bir sunucuya yüklenirler ve bu sayede donanımsal kaynaklar en yüksek ölçüde kullanılır.

Veritabanı Performansı ile İndeksleme Arasındaki İlişki

Donanımsal kaynaklarla ilgili bir sorunumuz yoksa veritabanın kendisine göz atmamız gereklidir. Performansı etkileyen en büyük faktör çalışan SQL sorgularıdır. Örneğin, bir tabloda milyonlarca kayıt varsa ve bu kayıtlar arasından çok spesifik bir şey aranıyorsa doğal olarak veritabanının bu sorguyu çalıştırması uzun sürecektir. Sorgu çalışırken de kaynaklar tükenecektir. Sorgu sayısı arttıkça da kitlenmeler olması gayet normaldir. Veritabanı uzmanlığı yapan kişiler genellikle sorguların optimize edilmesi için gerekli indeksleri yerleştirir veya sorguların yazılış biçimlerini değiştirirler. Tabloların hangi sütunlarına ne tür indeksler konulması gerektiğini bu kişiler iyi anlarlar.

Veritabanı Performansını Arttırmak İçin Yapılan Ayarlar

Her bir veritabanı yönetim sistemi (Oracle, SQL Server, mySQL) kendilerine has ayarlara sahiptirler. Bu ayarlardan genellikle en önemlisi belleğin veritabanı tarafından nasıl kullanılması gerektiği hakkındadır. Sonuç olarak bellek üzerinden yapılan işlemler sabit diske göre çok daha süratli çalışacağı için veritabanına yüksek hafıza ayırmak ve ayrılan hafızayı nasıl kullanacağını tanımlamak çok önemlidir.