Pages

22 Ocak 2011 Cumartesi

Ne zaman multiple buffer pool kullanılmalıdır?

Sistem performansını gözden geçirirken şemayı analiz etmeli ve multiple buffer  pool(çoklu tampon havuzu) kullanılıp kullanılmayacağıni belirlemelisiniz. Eğer hızlı cevap gerektiren küçük ve sık erişilen tablolar mevcutsa “keep” belleği değerlendirmeye alın. Rastgele I/O olan çok büyük tablolar için ise “recycle” bellek idealdir.
Belirli bir zamanda bireysel obje tarafından yüzdesel olarak ne kadar bellek kullanıldığını belirlemek için alttaki adımları uygulamanız yeterli olacaktır.

1. Segmentin Oracle dahili obje numarasını bulmak için;

 SELECT  data_object_id, object_type
 FROM    user_objects
 WHERE   object_name = ‘segment_name';


Farklı obje tipinde aynı isimde objeler yoksa objeyi belirlemek için OBJECT_TYPE kolonu kullanılabilir. Eğer obje başka bir kullanıcıya aitse bu durumda USER_OBJECTS yerine DBA_OBJECTS veya ALL_OBJECTS kullanılmalıdır.

2. Segment ismi için önbellekteki tampon sayısını bulun.

  SELECT count(*) buffers
 FROM    x$bh
 WHERE   obj = ‘data_object_id’;


*** data_object_id birinci adımda saptanan değerdir.
3. Instance içindeki toplam tampon sayısını bulun.

  SELECT  value "total buffers"
 FROM    v$parameter
 WHERE   name = 'db_cache_size';


4. Segment tarafından o anda kullanılan tampon yüzdesini elde etmek için tamponların oranını, toplam tampon miktarına bölün.

Segment tarafından kullanılan % cache(tampon) = buffers (adım 2) / toplam buffers (adım 3)

Not: Bu teknik sadece tekli segmentler için uygundur, partitionlu(bölümlendirilmiş) segmenler için sorguları her bir bölüm için ayrı ayrı çalıştırıp hesaplama yapın.

Eğer toplamdaki lokal blok sayısı, objeler ile ilgili işlemlerdeki  fiziksel okuma sayısına eşitse, bu objeler için sınırlı ve gereksiz bir önbellek tutulduğundan “recycle” tamponunu işleme sokmayı düşünün.

0 yorum:

Yorum Gönder