Servet.Karabas

j-Platform ile veri aktarımlarımlarında kullanılacak sorguların performansı hk.

  j-Platform/LPT

Yoğun veri ve aktarımlarında sorgu(Query) cache'lemek mümkün müdür?

 


cache query


Servet.Karabas

cache mekanizmasını kullanılacak proje çok iyi test edilmelidir.

Doğru yerde kullanılırsa performans artışı sağlar.

Aşağıdaki gibi kullanarabilirsiniz. Aynı şekilde disableCache mekanizması da vardır.

public Object ServerSide_queryCacheTest(IServerContext context){
  context.enableCache();
}
  • Cache mekanizması sadece aynı thread içindeki işlemler için geçerlidir. Aynı query aynı parametrelerle bile olsa başka bir thread içinden çalıştırılırsa farklı bir hash ile cachelenecektir.
  • Threadler sonlanınca tutulan cachelerde sonlanır.
  • 100 kayıt fazlası dönen sorgular cachelenmezler
  • Cacheler sürelidir 2 dk sonrası aynı thread içerisinde dolaşılıyorsa cache dikkate alınmaz.
  • DisableCache denirse tutulmuş olan cache kayıtları olsa bile dikkate alınmaz.
  • Cache custom query, ürün sorgu cümleleri ve onlardan türetilmiş tüm sorgu nesneleri için çalışmaktadır. (String sorgu çekilmemelidir)
  • Server bazlı tutulduğu için bir kere çalıştırmak yeterlidir. Veri tabanı bağlantısının sonlanması ile cache mekanizması da sonlandırılır.

Önemli NOT : Bu kullanımı heryerde standart olarak kullanmamak gerekir. Kısaca bazı yerde hayat kurtarır ama genelde kullanım bir çok içinden çıkılmaz sorun doğurur. İyi test edip kullanıma alınması gerekir.


30/03/15 10:48

Cevap vermek için giriş yapmanız gerekmektedir.