Топ-100
 
CerebroSQL

Oracle transaction stats

Информация по транзакциям в БД Oracle, их количестве по времени, статусам, откату

Count transaction view
Count transaction view.jpg

Информация по количеству транзакций в разрезе год, месяц, день

  • For the year - Статистика по годам

SELECT TO_CHAR(FIRST_TIME,'YYYY') INTERVAL,  

       round(SUM(NEXT_CHANGE#-FIRST_CHANGE#)/1000) "COUNT"         FROM V$LOG_HISTORY

GROUP BY TO_CHAR(FIRST_TIME,'YYYY')

ORDER BY 1

  • Monthly - Статистика по месяцам текущего года

SELECT TO_CHAR(FIRST_TIME,'MM') INTERVAL, 
       round(SUM(NEXT_CHANGE#-FIRST_CHANGE#)/1000) "COUNT" 
  FROM V$LOG_HISTORY

 where to_char(first_time,'yyyy')=$$CURRENT_YEAR
GROUP BY TO_CHAR(FIRST_TIME,'MM')
  ORDER BY 1

  • For days - Статистика по дням текущего года

SELECT TO_CHAR(FIRST_TIME,'MM-dd') INTERVAL, 
       round(SUM(NEXT_CHANGE#-FIRST_CHANGE#)/1000) "COUNT" 
  FROM V$LOG_HISTORY

 where to_char(first_time,'yyyy')=$$CURRENT_YEAR
GROUP BY TO_CHAR(FIRST_TIME,'MM-dd')
  ORDER BY 1

Dead transaction
Dead transaction.jpg

Транзакции по которым не удалось провести откат. Данные  из системной таблицы x$ktuxe

select ktuxeusn,
       ktuxeslt,
       ktuxesqn,
       ktuxesta,
       ktuxesiz
  from x$ktuxe
where ktuxesta <> 'INACTIVE'

   and ktuxecfl like 'ÞAD%'

order by ktuxesiz asc

Rollback progress
Rollback progress.jpg

Отображается информация по обработанным блокам транзакцией. При этом, если значение в столбце "used_ublk" уменьшается, это сигнализирует об откате измененных данных.

select ses.username,

       ses.sid,
       substr(ses.program, 1, 19) command,
       tra.used_ublk
  from v$session ses,

       v$transaction tra
where ses.saddr = tra.ses_addr

Transaction recovery by SMON
Transaction recovery by SMON.jpg

Список сессий чьи изменения откатывает SMON (сессия была завершена в ОС)

select usn,       

       state,       

       undoblockstotal "Total",       

       undoblocksdone "Done",       

       undoblockstotal-undoblocksdone "ToDo",                                                       decode(cputime,0, 'unknown',

              sysdate+(((undoblockstotal-undoblocksdone)/(undoblocksdone/cputime))/86400)) "Estimated" 

  from v$fast_start_transactions