Топ-100
 

Oracle open cursor

Просмотр информации о открытых курсорах сессиями в СУБД Oracle

 

Открытие окна
  • Меню Action - Open cursor

  • В основном окне кликнув по строке "open cursor"

CerebroSQL - open cursor.jpg

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

select a.value,
       s.username,
       nvl(s.OSUSER,'-')||' ('|| nvl(s.MACHINE,'-')||')' US,
       s.sid||':'||s.serial# SS,
       '300' MAX_OPEN
  from v$sesstat a,
       v$statname b,
       v$session s
where a.statistic# = b.statistic#
   and s.sid=a.sid
   and b.name = 'opened cursors current'
   and s.username is not null
order by a.value desc 

-----

 

Просмотр подробной информации

Выделить сессию в списке "List session"

CerebroSQL - open cursor details.jpg

Session information - информация о сессии из v$session

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

select status,schemaname,osuser,machine,program,logon_time from v$session where sid=$$SID

-----

Вкладка "Cursor" список всех курсоров сессии с их состоянием

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

select SQL_ID, SQL_TEXT, cursor_type from V$OPEN_CURSOR oc where oc.sid=$$SID

-----

 

Просмотр сведений о SQL запросах

В списке курсоров на вкладке "Cursor" дважды кликнуть по любой строке

CerebroSQL - open cursor details.jpg

Структура окна
  • Query text - текст SQL запроса

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

select SQL_FULLTEXT, HASH_VALUE from v$sql where sql_id='$$SQL_ID'

-----

  • Query plan execute - план выполнения SQL запроса

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

select * from TABLE(DBMS_XPLAN.DISPLAY_CURSOR('$$SQL_ID'))

-----

  • Event - ожидания сессий при выполнении запроса (данные за последние 10 минут). Информация извлекается из локальной базы данных. Данные собираются системой при включенном режиме Monitoring - Use mode "Real-time" в настройках программы

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

select count(*) "CountRW",
       c_event
  from  cer_ash_database c
where c_dbname = $$CONNECTALIAS
   and c_dbts>= datetime('now','-600 seconds','localtime')
   and c_dbts< datetime('now','-1 seconds','localtime')
   and c_sql_id="$$SQL_ID"
group by c_event

order by count(*) desc

-----

  • Session list - список сессий выполнивших запрос за последние 10 минут. Информация извлекается из локальной базы данных. Данные собираются системой при включенном режиме Monitoring - Use mode "Real-time" в настройках программы

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

select c_sid, c_serial, c_username||'@'||c_machine "hm"
  from cer_ash_database c
where c_dbname = "TESTDB2"
   and c_dbts>= datetime('now','-600 seconds','localtime')
   and c_dbts< datetime('now','-1 seconds','localtime')
   and c_sql_id="$$SQL_ID"
group by c_sid||':'||c_serial||' ['||c_username||'@'||c_machine||']'
order by c_sid

-----