Альтернатива Oracle AUTOTRACE - PullRequest
       0

Альтернатива Oracle AUTOTRACE

2 голосов
/ 11 октября 2010

Мне нужно собрать статистику для моих длинных SQL-скриптов. Файлы сценариев, сгенерированные Java-приложением и выполняемые сторонним быстрым DB-драйвером.

Таким образом, я не могу использовать AUTOTRACE, потому что это не SQLPlus. Но по причинам производительности мне нужно знать статистическую информацию о каждом утверждении в скрипте.

Можете ли вы посоветовать подходы или лучшие практики?

Я смотрю в сторону STATSPACK и во вторую очередь tkproof. 1. STATSPACK выглядит как машина, которая ломает бабочку на колесе. Не так ли? 2. tkproof нужны какие-то привилегии, и я беспокоюсь, что у пользователя приложения Java нет таких привилегий.

Есть что-то еще?

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Единственная повышенная привилегия, которая необходима пользователю Oracle для создания файла трассировки, - это ALTER SESSION.Это может даже не потребоваться, если ваш пользователь выполнил выполнение на SYS.DBMS_MONITOR, так как SESSION_TRACE_ENABLE и SESSION_TRACE_DISABLE разрешают создание экземпляров трассировки.

С другой стороны, для получения файла трассировки требуется либо помощь администратора базы данных, либоАдминистратор баз данных должен выполнить настройку, чтобы файлы трассировки были общедоступными (плохая идея на производстве).У Дион Чо есть отличный пример того, как разрешить запросы файлов трассировки Oracle здесь.

1 голос
/ 11 октября 2010

Вы можете получить статистику из v $ sql:

SELECT q.*
FROM v$session s
, v$sql q
WHERE s.sql_address  = q.address
AND s.sql_hash_value = q.hash_value
AND s.sid            = :SID
;

Существует также v$session_longops, который показывает все операции, которые выполняются более 6 секунд.

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