SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
Hansı sessiya daha çox redo log generasiya edir
Bugün hansı SQL sorğusu daha çox redo log generasiya edir, onu tapmağa çalışacayıq.

Öncəlikə aşağıdakı sorğu vasitəsi ilə hansı sessiya və sessiyaların redo generasiya etdiyini müəyyən edək:

SELECT
      s.sid, s.serial#, s.username, s.program, i.block_changes
FROM v$session s, v$sess_io i
WHERE s.sid = i.sid AND i.block_changes > 0
ORDER BY 5 DESC, 1;

block_changes sütunu bizə sessiyada blokun nə qədər dəyişdiyini göstərir.

Qeyd: Siz block_changes > 0 şərtini yuxarıdakı sorğudan yiğışdıraraq tam nəticəyə baxa bilərsiniz.

Lakin əgər siz transaksiyadakı undo qeydin və undo bloklarının miqdarını görmək istəsəz?
Bunun üçün:

SELECT
      s.sid, s.serial#, s.username, s.program, s.machine, t.used_ublk, t.used_urec
FROM v$session s, v$transaction t
WHERE s.taddr = t.addr
ORDER BY 6, 7 desc;

Aşağıdakı sorğu vasitəsi ilə (müəyyən perioda) dəyişilmiş obyektlərin blokların qeyd listəsini görmək olar:

SELECT
      dhso.object_name, object_type, SUM (db_block_changes_delta)
FROM dba_hist_seg_stat dhss, dba_hist_seg_stat_obj dhso, dba_hist_snapshot dhs
WHERE dhs.snap_id = dhss.snap_id
AND dhs.instance_number = dhss.instance_number
AND dhss.obj# = dhso.obj#
AND dhss.dataobj# = dhso.dataobj#
AND begin_interval_time BETWEEN TO_DATE ('20-12-2012 00:00:00', 'DD-MM-YYYY HH24:mi:ss')
AND TO_DATE ('20-12-201223:59:59', 'DD-MM-YYYY HH24:mi:ss')
GROUP BY dhso.object_name, object_type
HAVING SUM (db_block_changes_delta) > 0
ORDER BY 2, SUM (db_block_changes_delta) DESC

Hansı SQL sorğu (sql text) görmək istədikdə:

SELECT
      distinct dbms_lob.substr(sql_text,4000,1), optimizer_mode, module
FROM dba_hist_sqlstat dhss, dba_hist_snapshot dhs, dba_hist_sqltext dhst
WHERE upper(dhst.sql_text) LIKE '%AZ_PAY%'
AND dhss.snap_id=dhs.snap_id
AND dhss.instance_Number=dhs.instance_number
AND dhss.sql_id = dhst.sql_id --and rownum<2;

Qeyd: Siz əlavə sütunlarıda sorğuda qeyd ederək daha ətraflı məlumatlar əldə edə bilərsiniz, belə ki:
dba_hist_sqlstat dyanmic görünüşündən (view) bu sütunları : cpu_time_total, cpu_time_delta, elapsed_time_total,
elapsed_time_delta, iowait_total, disk_reads_total və s əlavə edə bilərsiniz.

Sonda top 10 ən çox redo generasiya edən sessiyaları aşağıdakı sorğu ilə müəyyənləşdirmək olar:

select
         b.inst_id, b.SID, b.serial# sid_serial, b.username, machine, b.osuser, b.status, a.redo_mb MB
from    (select n.inst_id, sid, round(value/1024/1024) redo_mb
         from gv$statname n, gv$sesstat s
         where n.inst_id=s.inst_id and n.name = 'redo size' and s.statistic# = n.statistic# order by value desc ) a,
         gv$session b
where b.inst_id=a.inst_id
and a.sid = b.sid
and rownum <= 10;

Cəm olaraq nə qədər redo generaiya edilməsini isə aşağıdakı sorğu ilə müəyyən etmək olar:

select
        sum(round(gb)) total_redo_count from (select b.inst_id, b.SID, b.serial# sid_serial, b.username,
        machine, b.osuser, b.status, a.redo_gb GB
from    (select n.inst_id, sid, round(value/1024/1024/1024) redo_gb from gv$statname n, gv$sesstat s
        where n.inst_id=s.inst_id and n.statistic#=134 and s.statistic# = n.statistic# order by value desc ) a,
        gv$session b
where b.inst_id=a.inst_id
and a.sid = b.sid)

Qeyd: n.statistic#=134 bu elə v$statname view dan (name sutununun dəyəridir : name = 'redo size')

Mais conteúdo relacionado

Destaque

Destaque (8)

Original_draft_file
Original_draft_fileOriginal_draft_file
Original_draft_file
 
Atv poster
Atv posterAtv poster
Atv poster
 
Trabajo de educación artístic1
Trabajo de educación artístic1Trabajo de educación artístic1
Trabajo de educación artístic1
 
GKIHS Certificate
GKIHS CertificateGKIHS Certificate
GKIHS Certificate
 
Artigos de interesse 3 dna consulting
Artigos de interesse 3  dna consulting Artigos de interesse 3  dna consulting
Artigos de interesse 3 dna consulting
 
Presentacion
PresentacionPresentacion
Presentacion
 
Official Resume
Official ResumeOfficial Resume
Official Resume
 
SAJ EARCOS TEDA APRIL 2016
SAJ EARCOS TEDA APRIL 2016SAJ EARCOS TEDA APRIL 2016
SAJ EARCOS TEDA APRIL 2016
 

Hansi sessiya daha cox redo generasiya edir

  • 1. Hansı sessiya daha çox redo log generasiya edir Bugün hansı SQL sorğusu daha çox redo log generasiya edir, onu tapmağa çalışacayıq. Öncəlikə aşağıdakı sorğu vasitəsi ilə hansı sessiya və sessiyaların redo generasiya etdiyini müəyyən edək: SELECT s.sid, s.serial#, s.username, s.program, i.block_changes FROM v$session s, v$sess_io i WHERE s.sid = i.sid AND i.block_changes > 0 ORDER BY 5 DESC, 1; block_changes sütunu bizə sessiyada blokun nə qədər dəyişdiyini göstərir. Qeyd: Siz block_changes > 0 şərtini yuxarıdakı sorğudan yiğışdıraraq tam nəticəyə baxa bilərsiniz. Lakin əgər siz transaksiyadakı undo qeydin və undo bloklarının miqdarını görmək istəsəz? Bunun üçün: SELECT s.sid, s.serial#, s.username, s.program, s.machine, t.used_ublk, t.used_urec FROM v$session s, v$transaction t WHERE s.taddr = t.addr ORDER BY 6, 7 desc; Aşağıdakı sorğu vasitəsi ilə (müəyyən perioda) dəyişilmiş obyektlərin blokların qeyd listəsini görmək olar: SELECT dhso.object_name, object_type, SUM (db_block_changes_delta) FROM dba_hist_seg_stat dhss, dba_hist_seg_stat_obj dhso, dba_hist_snapshot dhs WHERE dhs.snap_id = dhss.snap_id AND dhs.instance_number = dhss.instance_number AND dhss.obj# = dhso.obj# AND dhss.dataobj# = dhso.dataobj# AND begin_interval_time BETWEEN TO_DATE ('20-12-2012 00:00:00', 'DD-MM-YYYY HH24:mi:ss') AND TO_DATE ('20-12-201223:59:59', 'DD-MM-YYYY HH24:mi:ss') GROUP BY dhso.object_name, object_type HAVING SUM (db_block_changes_delta) > 0 ORDER BY 2, SUM (db_block_changes_delta) DESC Hansı SQL sorğu (sql text) görmək istədikdə: SELECT distinct dbms_lob.substr(sql_text,4000,1), optimizer_mode, module FROM dba_hist_sqlstat dhss, dba_hist_snapshot dhs, dba_hist_sqltext dhst WHERE upper(dhst.sql_text) LIKE '%AZ_PAY%' AND dhss.snap_id=dhs.snap_id AND dhss.instance_Number=dhs.instance_number AND dhss.sql_id = dhst.sql_id --and rownum<2; Qeyd: Siz əlavə sütunlarıda sorğuda qeyd ederək daha ətraflı məlumatlar əldə edə bilərsiniz, belə ki:
  • 2. dba_hist_sqlstat dyanmic görünüşündən (view) bu sütunları : cpu_time_total, cpu_time_delta, elapsed_time_total, elapsed_time_delta, iowait_total, disk_reads_total və s əlavə edə bilərsiniz. Sonda top 10 ən çox redo generasiya edən sessiyaları aşağıdakı sorğu ilə müəyyənləşdirmək olar: select b.inst_id, b.SID, b.serial# sid_serial, b.username, machine, b.osuser, b.status, a.redo_mb MB from (select n.inst_id, sid, round(value/1024/1024) redo_mb from gv$statname n, gv$sesstat s where n.inst_id=s.inst_id and n.name = 'redo size' and s.statistic# = n.statistic# order by value desc ) a, gv$session b where b.inst_id=a.inst_id and a.sid = b.sid and rownum <= 10; Cəm olaraq nə qədər redo generaiya edilməsini isə aşağıdakı sorğu ilə müəyyən etmək olar: select sum(round(gb)) total_redo_count from (select b.inst_id, b.SID, b.serial# sid_serial, b.username, machine, b.osuser, b.status, a.redo_gb GB from (select n.inst_id, sid, round(value/1024/1024/1024) redo_gb from gv$statname n, gv$sesstat s where n.inst_id=s.inst_id and n.statistic#=134 and s.statistic# = n.statistic# order by value desc ) a, gv$session b where b.inst_id=a.inst_id and a.sid = b.sid) Qeyd: n.statistic#=134 bu elə v$statname view dan (name sutununun dəyəridir : name = 'redo size')