Топ-100
 
CerebroSQL

История активных сессий (ASH)

 

Oracle session longops


В окне отображается информация о сессия в СУБД Oracle выполняющихся более 6 секунд.

Для сбора информации о времени выполнения запросов должны быть выполнены 2 условия:

  • включены параметры СУБД TIMED_STATISTICS или SQL_TRACE (TIMED_STATISTICS=TRUE или SQL_TRACE=TRUE)

  • имеется статистика по таблицам

CerebroSQL - oracle session longops.jpg

Session list - список сессий выполняющихся длительное время

->Запрос для извлечения данных<-

select distinct( sl.serial#),
       'EXECUTE' AS STATUS,
       SL.TIME_REMAINING||' c.' as REMAIN,
       SL.ELAPSED_SECONDS||' c.' AS ELAPSED,
       SL.START_TIME "TIME",
       SL.SQL_ID,
       S.SQL_TEXT,
       se.sid,
       sl.opname,
       sl.SOFAR,
       sl.TOTALWORK,
       round((sl.SOFAR/sl.TOTALWORK)*100,2) as "%",
       sl.MESSAGE,
       se.USERNAME,
       se.OSUSER,
       se.MACHINE,
       se.PROGRAM,
       SE.EVENT,
       SE.SECONDS_IN_WAIT
  from V$SESSION SE, V$SESSION_LONGOPS SL, V$SQL S
where SE.SID=SL.SID
   AND SE.SERIAL#=SL.SERIAL#
   AND SE.SQL_ID=S.SQL_ID
   AND SE.USERNAME IS NOT NULL
   AND SL.TIME_REMAINING<>'0'
  group by sl.serial#,SL.TIME_REMAINING,SL.ELAPSED_SECONDS,SL.START_TIME,SL.SQL_ID, S.SQL_TEXT, se.sid,
  sl.opname, sl.SOFAR, sl.TOTALWORK, sl.MESSAGE, se.USERNAME, se.OSUSER, se.MACHINE, se.PROGRAM,SE.EVENT, SE.SECONDS_IN_WAIT
  order by se.sid,sl.serial# 

-----

При выделении строки подробная информация отображается в блоке Details. В поле "SQL text" - выводится текст выполняемого запроса, а так же имя таблицы чьи блоки сканируются в данный момент времени и прогресс выполнения в абсолютных величинах.

При переключении на вкладку "SQL plan" отображается план выполнения запроса

->Запрос для извлечения данных<-

select * from TABLE(DBMS_XPLAN.DISPLAY_CURSOR('<sql_id>')) 

-----

Кнопки управления

  • Обновить данные в "Session list"

  • Подогнать размер сетки "Session list" под данные  в ней

 

Oracle ASH viewer

История активных сессий в разрезе классов ожиданий говорит о текущей нагрузке в СУБД Oracle, а так же помогает найти узкие места в коде благодаря оценки работы sql запросов в разрезе ожиданий

В программе реализовано 2 механизма получения данных о истории работы сессий:

  • Режим реального времени - программа собирает информацию о работе сессий самостоятельно, не обращаясь к представлениям пакета diagnostics pack. Рекомендованный режим работы, поддерживает редакцию Standard edition

  • Данные из представлений  diagnostics pack

 

Oracle SQL monitor

Окно SQL Monitoring позволяет отлеживать работу длительных SQL запросов, формировать рекомендации встроенного оптимизатора запросов, а так же применять рекомендации в реальном времени. 

Запрос считается длительным и подлежит автоматическому отслеживанию в случаи если потребляет более 5 секунд времени процессора или ввода/вывода. 

Oracle SQL Monitor.jpg

Список запросов попавших в мониторинг

->Запрос для извлечения данных<-

select * from v$sql_monitor order by sql_exec_start desc 

-----

Формирование отчета и применение рекомендаций

В списке Query выбрать SQL запрос для формирования отчета или вставить SQL_ID запроса в поле Analysis of the query by SQL_ID