Проверьте статус SQL запрос или процент - PullRequest
3 голосов
/ 25 января 2012

Кто-нибудь знает, есть ли способ проверить состояние работы, выполняемой в данный момент в базе данных, или статус того, сколько% фактически выполнено.

Я выполняю задание, но оно занимает много времени, поэтому я хотел бы проверить, сколько% было выполнено из запроса. Я выполняю запрос в Oracle sqldeveloper

Ответы [ 3 ]

3 голосов
/ 25 января 2012

Из-за основанной на множестве природы SQL и обработки базы данных вы не можете получить «% выполнения» запроса, поскольку движок оракула не знает наверняка. Вы можете попробовать посмотреть на представление v $ session_longops, чтобы увидеть, как далеко продвинулись части вашего SQL (здесь может отображаться большое хеш-соединение или полное сканирование таблицы). Взгляните на this Спросите Тома для получения дополнительной информации.

Если в вашей работе несколько операторов SQL, и вы пытаетесь отслеживать, как далеко вы продвинулись после каждого, вы можете добавить код для вставки обновлений состояния в управляющую таблицу после каждого оператора.

1 голос
/ 17 января 2018

Столбец output_rows в этом запросе может быть полезен, если ваш запрос не находится в v$session_longops.Проблема в том, что вы не знаете, что такое общее количество выходных строк.

select plan_operation, plan_options, plan_object_name, plan_object_type, plan_bytes, plan_time, plan_cpu_cost, plan_io_cost, output_rows, workarea_mem
from   v$sql_plan_monitor
where  sid = 2646
and    status = 'EXECUTING'
order  by plan_line_id
0 голосов
/ 10 февраля 2019

Вы можете проверить gv $ session_longops, где time_remaining> 0;

выберите sid, target_desc, (Sofar * 100) / totalwork как процент_комбинации из gv $ session_longops

даст вам процент

...