Я делаю много такого рода работ, и я нахожу, что иметь хороший инструмент каротажа - это путь. Неизменно проблема будет состоять из одного или нескольких операторов SQL DML, особенно UPDATES и DELETES. Если вы создаете простую процедуру ведения журнала, которая записывает в таблицу (используя AUTONOMOUS_TRANSACTION) с столбцом timestamp и завершает вызовы по всему SQL, вы очень быстро определяете, где ваше время идет. Я разработал зрелый и сложный пакет специально для инструментального кода PL/SQL, подобного этому, и для мониторинга производственного кода в реальном времени - вернитесь ко мне, если вы хотите получить копию.
К сожалению, большинство разработчиков, похоже, считают, что DBMS_OUTPUT решит проблему - может делать, но не очень эффективно ... или довольно.
Другие инструменты отслеживания Oracle, безусловно, помогают, но немного сложнее в использовании.
И наконец - используйте диспетчер предприятия и проанализируйте моментальный снимок за определенный промежуток времени.Посмотрите на 10 лучших SQL-запросов - и если вам нравится использовать советник SQL.
Надеюсь, что это поможет ...
Какая версия Oracle? –