Топ-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"