top of page
CerebroSQL

Oracle transaction stats

Информация о количестве выполненных транзакций позволяет быстро оценить нагрузку на систему. Спланировать выделение ресурсов CPU, IO

Oracle transaction count

Count transaction view

Page transaction count

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

  • 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

Транзакции по которым не удалось провести откат. Данные  из системной таблицы 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

Отображается информация по обработанным блокам транзакцией. При этом, если значение в столбце "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

Список сессий чьи изменения откатывает 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

bottom of page