Как построить статистику выполнения процедур в oracle 12.2? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть ~ 2300 линейных пакетов, которые разбиты на множество процедур и функций. Он работает медленнее, чем хотелось бы. Много лет go в предыдущей версии Oracle (9i или 11g) у меня была похожая проблема, и я смог построить иерархическую структуру, которая содержала все, что было выполнено в процедуре / пакете, и сколько времени было потрачено. по каждому пункту.

Я не могу найти учебник / блог, который показывает, как это сделать sh. Вероятно, это делается с помощью пакета DBMS_STATS, но я считаю, что документация Oracle не подходит для решения задач, ориентированных на задачи. Было бы здорово, если вы хотите узнать все, что нужно знать о предмете, но в целом все, что мне нужно знать, это как решить проблему, над которой я сейчас работаю.

В любом случае, кто-то может указать мне как получить статистику выполнения процедуры Oracle?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Существует две опции:

  1. dbms_profiler - записывает время выполнения каждого оператора. docs
  2. dbms_hpof - аналогично, но собирает статистику по иерархии вызовов pl / sql docs

Любой метод потребует некоторые настройки с использованием доступа SYS (dba). Инструкции по настройке для dbms_profiler

0 голосов
/ 13 апреля 2020

Вы пробовали метод dbms_utility.get_time, как описано в ЭТОТ пост.

Ссылка на оригинальный вопрос, который почти совпадает с вашим вопросом.

https://www.quora.com/How-can-I-log-the-execution-time-of-a-stored-procedures-in-a-table-in-Oracle-database

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...