Топ-100
 

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

-----