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.
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