powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PL/SQL блог
25 сообщений из 26, страница 1 из 2
PL/SQL блог
    #39730790
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, коллеги.

Не подскажите, есть ли возможность как то проверить что за запрос выполняется на данный момент внутри pl/sql блока, вернее не совсем так. Приведу пример, что я имею ввиду:

Предположим я вижу, что на данный момент сессия делает следующее:
=======================================
BEGIN
ALEX.MAKEREPORT(:1, :2, :3);
END;
/
=======================================

Процедура выполняется дольше обычного, как утверждает пользователь. Однако, как мне понять что происходит "внутри"? Какие запросы выполняются внутри данной процедуры?

Мне это необходимо выяснить, что проверить почему она долго выполняется ... может план поменялся у какого-то запроса или что другое.

Есть ли способ это выяснить, что конкретно сейчас выполняется данной процедурой в БД?

Спасибо.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730818
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. Oracle,

Ну так открой процедуру и посмотри .
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730830
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. Oracleя вижу, что на данный момент сессия делает следующееГде видишь?
Dr. OracleКакие запросы выполняются внутри данной процедуры?Текущий запрос отражен в v$session.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730831
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. Oracle,

OEM есть? Если есть то там все с картинками :). Если нет, то GV$SESSION, GV$SQL, GV$SQL_PLAN, ...

SY.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730853
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже заглядывал в v$session. Собственно информация о том, что выполняется pl/sql блок и взята оттуда. OEM, к сожелению, нет. Сама процедура +5000 строк. Писал ее не я естественно, запросов несколько десятков, а на каком конкретно тормозить начало мне и нужно выяснить. Активных сессий в базе несколько сотен, моя конкретно выполняет эту процедуру, повторюсь инфа из v$session.

Может у кого то есть конкретный селект, который поможет мне отыскать проблемный запрос?

Благодарю.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730856
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,
Текущий запрос не отражен в v$session, там как раз написано только, что выполняется pl/sql блок, который я написал в первом посте.

А мне как раз и нужно понять какой запрос внутри процедуры сейчас бежит ...
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730857
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maverick2104,

Вы видимо не совсем понимаете в чем мой вопрос. В процедуре несколько десятков селектов и всего прочего. Писал ее не я, так что это можно сказать невозможно просто глядя на код, что то определить.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730877
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. OracleПисал ее не я,Чудак, а чего тема так пафосно называется? Ты ничего не попутал? Уверен, что сможешь потянуть целый "блог"?
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730879
sqr_khv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr. Oracle, возьми, запусти на тестовой базе (если нельзя проверить на бою) и посмотри время выполнения построчно (в девелопере есть для этого Test Window, profiler). На какой строке зависает надолго, будет видно. В чем проблема? Я так всегда делаю, перед накатом на бой, если что-то не так.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730889
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sqr_khv,

Дело в том, что на тесте данную проблему не воспроизвести. Эта, как и любая перфоманс задача, специфична для данного инстанса.

Мне нужно иметь инструмент, в идеале сиквел запрос, с помощью которого можно найти что бежит сейчас внутри pl/sql блока данной мне сессии.

Неужели никто не сталкивался с такой проблемой, когда тебе звонят и просят заробраться почему сегодня эта штука бежит на час дольше обычного?

Благодарю.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730895
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

Дружище, это банальная опечатка. Возможности подкорректировать не нашел.

Не лень же тебе было это писать.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730899
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если есть модераторы - исправьте, пожалуйста, "блог" на "блок", а то людей путаю почему зря.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730900
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. Oracle,

вам русским языком сказали - смотрите v$session.sql_id. если сессия выполняет запрос - он будет там. если сессия выполняет plsql (бесконечный цикл и т.п.) - тогда вы увидите вызов процедуры.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730906
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей,

Вы не понимаете, читаете предыдущие посты или просто свои пять копеек вставить? Я проверил v$session, данная сессия выполняет pl/sql, но выполняется он дольше обычного, причина в каком то из десятков селектов которые бегут в данной процедуре.

Мне нужно выяснить, на каком идёт затык, если это возможно. Если это нельзя выяснить каким то способом помимо предложенного с помощью OEM или SQL Developer просто дайте знать.

Неужели я не ясно излагаю свою мысль?
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730908
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. Oracle,

ещё раз. поле sql_id изменяется в реальном времени в зависимости от того, что сессия делает ПРЯМО СЕЙЧАС. если она выполняет запрос - значит, там будет id запроса - не важно, вызываете вы его через 50 уровней вложенности plsql, или напрямую, нажав ctrl+enter в IDE.

если там нет запроса - значит, ваша сессия ПРЯМО СЕЙЧАС выполняет не запрос, а что-то ещё. как вариант - она выполняет мелкие запросы в цикле в огромном количестве, и вы не успеваете их увидеть. в этом случае вам нужен либо профайлер, либо трассировка.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730912
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей,

Ясно. Большое спасибо за ответ. Не уверен, что вы правы, вернее понимаете что я имею ввиду. Буду рад обсудить в личке или скайпе, если есть такая возможность.

Благодарю.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730917
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. Oracle,

я отвечал на заданный вами предельно конкретный вопрос.

вы хотите "проверить что за запрос выполняется на данный момент внутри pl/sql блока" (вероятно, исходя из предположения, что сломался один конкретный запрос, который "держит" всю процедуру)? v$session.sql_id, точка.

проблема в том что вы задали неправильный вопрос.

вам не нужно знать, какой запрос выполняется прямо сейчас. вам нужно знать, какой запрос/какая часть процедуры выполняется дольше всего. инструменты для этого я уже озвучил - DBMS_PROFILER, SQL Trace.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730926
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей,

Ещё раз большое спасибо за обратную связь. Воспозуюсь Вашими рекомендациями. Возможно, я не совсем корректно изложил вопрос, приношу свои извинения.

Спасибо.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39730970
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. OracleНе уверен, что вы правы, вернее понимаете что я имею ввиду.У тебя слишком большое самомнение.
А кроме sql_id, есть ещё и PLSQL_*_ID
...
Рейтинг: 0 / 0
PL/SQL блог
    #39731024
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотрите на AWR report в ваш проблематичный период времени. Можно прямо из SQL Developera смотреть
...
Рейтинг: 0 / 0
PL/SQL блог
    #39731064
Valergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gv$active_session_history / dba_hist_active_sess_history

спасет отца русской демократии - если есть. Там прекрасно видно какой sql_id дольше всего выполняется.
Если нет - видно top_level_sql_id.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39731065
Valergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valergradgv$active_session_history / dba_hist_active_sess_history

спасет отца русской демократии - если есть. Там прекрасно видно какой sql_id дольше всего выполняется.
Если нет - видно top_level_sql_id.

Сорри, запостилось раньше времени. Читать как:

Valergradgv$active_session_history / dba_hist_active_sess_history

спасет отца русской демократии - если есть. Там прекрасно видно какой sql_id/top_level_sql_id дольше всего выполняется.
Если нет - есть snapper
...
Рейтинг: 0 / 0
PL/SQL блог
    #39731067
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dr. Oracle,

Короче, сделай ashdump/ashrpti по этой сессии за период выполнения и выложи сюда - хоть будет от чего оттолкнуться.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39731102
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValergradТам прекрасно видно какой sql_id дольше всего выполняется.
Это если проблема в одном запросе, возможна ситуация когда просел не один запрос и возможна ситуация, когда небольшой и быстро выполняющийся запрос стал работать медленнее, допустим вместо 0.02 секунд стал отрабатывать за 0.6 секунд, если он находится в цикле на большое количество повторений, то общее время выполнения процедуры вырастет в десятки раз. Ловить что то в портянке на 5000 строк неблагодарное занятие.
...
Рейтинг: 0 / 0
PL/SQL блог
    #39733113
Деев И.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До кучи можно и про обычную трассировку сессии + TKPROF напомнить...
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PL/SQL блог
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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