DBAtlas · Veritabanı operasyon atlası

Cluster genelinde bekleme olaylarını (gc waits) GV$ ile instance bazında analiz et

OracleRAC & Grid

Komut

-- Instance bazinda Cluster sinifi beklemeler (baslangictan beri):
SELECT inst_id, event, total_waits,
       ROUND(time_waited_micro/1e6) AS time_waited_s,
       ROUND(time_waited_micro/NULLIF(total_waits,0)/1000, 2) AS avg_ms
FROM   gv$system_event
WHERE  wait_class = 'Cluster'
ORDER  BY time_waited_micro DESC
FETCH FIRST 15 ROWS ONLY;

-- Su an bekleyen oturumlar, instance ve olaya gore:
SELECT inst_id, event, COUNT(*) AS sessions
FROM   gv$session
WHERE  wait_class <> 'Idle' AND state = 'WAITING'
GROUP  BY inst_id, event
ORDER  BY sessions DESC;

-- Son 15 dakikada ASH: hangi instance gc beklemesinde
SELECT inst_id, event, COUNT(*) AS samples
FROM   gv$active_session_history
WHERE  sample_time > SYSTIMESTAMP - INTERVAL '15' MINUTE
  AND  wait_class = 'Cluster'
GROUP  BY inst_id, event
ORDER  BY samples DESC
FETCH FIRST 10 ROWS ONLY;

Ne yapar?

GV$ view'larıyla tüm instance'lardaki Cluster sınıfı beklemeleri (gc cr/current block 2-way/3-way, gc buffer busy, gc cr request) ve ortalama gecikmeyi tek sorguda gösterir.

Ne zaman kullanılır?

RAC'ta yavaşlık şikayetinde sorunun interconnect/global cache kaynaklı olup olmadığını ve hangi instance'ta yoğunlaştığını anlamak için.

Dikkat

gv$active_session_history Diagnostics Pack lisansı gerektirir. avg_ms birkaç ms'nin üzerindeyse önce interconnect'i (MTU, packet loss, netstat -s) ve LMS CPU'sunu kontrol et; gc buffer busy genelde uygulama hot block'u (sequence, right-hand index) işaretidir.

DBAtlas'ta aç →

İlgili