powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / можно ли подсмотреть callstack произвольной сессии?
5 сообщений из 5, страница 1 из 1
можно ли подсмотреть callstack произвольной сессии?
    #40012979
Фотография Shredder2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача:
ненормально долго работающая сессия.
В мониторе сессий видно проблемный current statement.
Однако в какой из кучи вызываемых функций-процедур-пакетов он запускается, непонятно.
Кроме current statement, хотелось бы видеть ещё и callstack, чтобы понять, где он запускается.
Возможно ли это как-то подсмотреть для произвольной сессии?
...
Рейтинг: 0 / 0
можно ли подсмотреть callstack произвольной сессии?
    #40012990
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В V$SQL есть поля PROGRAM_ID, PROGRAM_LINE#
Не стек, но в каком именно хранимом коде находится оператор выяснить помогает

PS. Вот как-то ни разу не нарвался на такой случай: оператор ведь может быть один и тот же (особенно в PL/SQL, там приводится к одному виду, регистр, пробелы и т.п.), что там будет показываться, если таких одинаковых операторов множество. Точнее, как определить какой именно в данный момент указан в V$SQL.
...
Рейтинг: 0 / 0
можно ли подсмотреть callstack произвольной сессии?
    #40013180
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
В V$SQL есть поля PROGRAM_ID, PROGRAM_LINE#
Не стек, но в каком именно хранимом коде находится оператор выяснить помогает

PS. Вот как-то ни разу не нарвался на такой случай: оператор ведь может быть один и тот же (особенно в PL/SQL, там приводится к одному виду, регистр, пробелы и т.п.), что там будет показываться, если таких одинаковых операторов множество. Точнее, как определить какой именно в данный момент указан в V$SQL.


где курсор распарсился та и будет показана

по сабжу - UTL_CALL_STACK
...
Рейтинг: 0 / 0
можно ли подсмотреть callstack произвольной сессии?
    #40013323
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА
UTL_CALL_STACK
это для текущей сессии, а не для чужой
...
Рейтинг: 0 / 0
можно ли подсмотреть callstack произвольной сессии?
    #40013839
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shredder2003
Задача:
ненормально долго работающая сессия.
В мониторе сессий видно проблемный current statement.
Однако в какой из кучи вызываемых функций-процедур-пакетов он запускается, непонятно.
Кроме current statement, хотелось бы видеть ещё и callstack, чтобы понять, где он запускается.
Возможно ли это как-то подсмотреть для произвольной сессии?
Я делал что-то похожее. У меня был проект, существовавший больше 10 лет, в котором кто только чего ни кодил (и никто никак не документировал). По окончании разового запуска процедуры в лог таблицу записывалось 30К+ строк, общее число использовавшихся процедур было около 100. Нужно было срочно выяснить, в каком именно месте шла запись в определенную таблицу (там был MERGE). Я сделал триггер на апдейт или инсерт, который в автономной транзакции писал в лог-таблицу стек вызовов (который брал из DBMS_UTILITY.FORMAT_CALL_STACK).

Не уверен, что это сработает для сессии, которая уже работает, но если можно ту сессию убить, а потом запустить тот же процесс еще раз - должно помочь.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / можно ли подсмотреть callstack произвольной сессии?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]