Genelde bana "Oracle BI'da performansı iyileştirmek için neler yapılabileceği" soruluyor. Bunun için genelde verdiğim cevap aynı "modele odaklanmak". Çünkü birçok kötü performans gösteren uygulamanın, yanlış ya da eksik modelleme sebebiyle olduğunu gördüm.
Bunun yanında Oracle BI'ın bellek yönetimiyle ilgili bazı ayarlarını değiştirerek de performansı etkilemek mümkün. Aşağıda bazılarını listelediğim parametrelerin hepsi "NQSConfig.ini" dosyası içerisinde bulunmaktadır.
Aşağıda listelenen parametrelerle ilgili detaylı bilgi, Oracle BI'ın dokümantasyonunda yer almaktadır.
SORT_MEMORY_SIZE
Bu parametre, OBI'nin sıralama işlemleri için ne kadar bellek kullanması gerektiğini belirtir. Aynı anda bağlanan her kullanıcı (concurrent) için, burada belirtilen miktarda sıralama bellek alanı ayrılır. Yani burada 10MB belirtildiğinde ve 100 kullanıcı bağlandığında, ayrılan bellek alanı 1GB olacaktır. Bu parametre değeri belirlenirken, aynı anda bağlana kullanıcı sayısı ve makina üzerindeki bellek miktarı göz önünde bulundurulmalıdır. Peki bu parametreye göre OBI'nin çalışması nasıl olacaktır? Örneğin bu parametre 2MB olarak ayarlanmış olsun. Bir kullanıcı 10MB'lik bir veriyi sıralamak istediğinde, OBI bunları 2MB'lik parçalara ayırır ve sıralama işlemini gerçekleştirir. Kullanmadığı her parçayı, diske yazar. En sonunda da parçaları sıralayarak tüm 10 MB'nin sıralama işlemi tamamlanmış olur.
Sonuç: Bu parametreyi yüksek tutmak performans getirisi sağlayacaktır ama optimum değeri aşmamak gerekir.
SORT_BUFFER_INCREMENT_SIZE
Bu parametre de yukarıda anlatılan maksimum bellek değerine ne kadar artımla ulaşılacağını belirtir. Yukarıda anlatılan parametre 2 MB'ye ayarlandığında ve bu parametre 256 KB'ye ayarlandığında, önce bellekten sıralama için 256 KB yer alınır. Yetmediği anda 256 KB daha alınır. Bu işlem SORT_MEMORY_SIZE'a ulaşıncaya kadar sürer.
Sonuç: Bu parameternin değeri genelde SORT_MEMORY_SIZE'ın %5-%10'u kadar belirlenir.
VIRTUAL_TABLE_PAGE_SIZE
Oracle BI, sıralama ya da join işlemleri sırasında bellek yeterli olmadığında diske yazma operasyonunu gerçekleştirir. VIRTUAL_TABLE_PAGE_SIZE parametresi, diske yazılan miktarların ne büyüklükte olacaklarını belirtir. Bunu büyük tutmak, I/O işlemlerini daha az sayıda yapmaya yardımcı olacaktır ama birçok parametrede olduğu gibi bunun da optimum değeri bulunmaktadır. Windows sunucuların sayfalama değeri 64KB'dir. Bunu göz önünde tutarak, Oracle BI'ın resmi dokümantasyonunda VIRTULA_TABLE_PAGE_SIZE'i 256KB'den daha büyük bir değere ayarlamak önerilmemektedir.
Sonuç: Dokümantasyona uymakta fayda var. En fazla 256 KB..