20 Temmuz 2007 Cuma

Blok Tampon Önbelleği (Block Buffer Cache)

Oracle, veritabanı bloklarını diske yazmadan önce ve diskten okuduktan sonra burada depolar. Bu bölüm küçük olursa sorgular çok uzun sürer, büyük olursa diğer işleçler (process) görev yapamaz hale gelir.

Üzerine veri yazılmış bloğa ‘kirli’ blok, henüz üzerine veri yazılmamış yani boş olan bloğa da ‘temiz’ blok denir. Kirli bloklar ayrı bir listede, temiz bloklar ayrı bir listede tutulur. Kirli bloklar Veritabanı Blok Yazıcısı (Database Block Writer, DBWn) tarafından yazılır.

Oracle, her bir blok için ‘dokunma sayısı’ (touch count) şeması tutar. Önbellekteki blok hit aldıkça sayacı bir artırılır. X$BH tablosu, Blok Tampon Önbelleğindeki (BTÖ) bloklar hakkında bilgi verir.

Oracle 8.0’dan itibaren BTÖ’ye çoklu tampon havuzları özelliği eklenmiştir. Bu özellik sayesinde BTÖ’de belirli miktarda bir alan özel segmentler için ayrılabilir (örneğin lookup tabloları için). Bu ayırdığımız alandaki blokların ilgisiz bloklar tarafından yaşlandırılmasını (age out) engeller. Yaşlanmaya dayalı saklamaya, saklama havuzu (KEEP pool) denir.

Geri dönüşüm havuzlarında (RECYCLE pool) ise blok, ihtiyaç duyulmaz hale gelir gelmez yaşlandırılır.

Hiç yorum yok: