Трассировка Oracle SQL с переменными привязки

Как получить полный оператор SQL с заменой переменных связывания из файла трассировки?

При установке

ALTER SESSION SET EVENTS '10046 trace name context forever, level 4';
ALTER SESSION SET sql_trace = true;

итоговый файл трассировки содержит запрос SQL с переменными связывания и разрешение переменных связывания в отдельном разделе «BINDS». Это нормально, если есть пара переменных связывания. Это не очень полезно, когда у меня более 100 переменных привязки.

Tkprof обрабатывает файл трассировки, но не поддерживает переменные привязки.

Можно ли получить полные операторы SQL с замененными переменными связывания, чтобы я мог легко скопировать-вставить и повторно выполнить его? Может быть, есть бесплатный инструмент, который обработает мой файл трассировки и выведет полные операторы SQL?

Я также был бы признателен за решение без трассировки SQL с использованием вместо этого v $ sql и друзей.


person gabor    schedule 05.07.2010    source источник
comment
Да, я знаю, что более 100 переменных связывания - это безумие, не заставляйте меня начинать с этого. Это гигантская таблица, а фактический SQL - это оператор вставки, сгенерированный спящим режимом.   -  person gabor    schedule 06.07.2010


Ответы (1)


Вам необходимо использовать анализатор трассировки Oracle вместо tkprof для извлечения фактических значений переменных связывания. http://www.rampant-books.com/art_moore_oracle_trace_analyzer_trcanlzr_sql.htm

В будущем анализатор трассировки собирается заменить tkprof.

person jsampath    schedule 05.07.2010
comment
Я не знал анализатора трассировки. +1, так как это хороший инструмент, который позволяет мне сделать еще один шаг вперед, потому что он перечисляет фактические значения переменных связывания более доступным образом. Но переменные связывания по-прежнему находятся в отдельном разделе и не подставляются в оператор SQL. То есть повторное выполнение оператора SQL потребует ручной замены переменных связывания. - person gabor; 06.07.2010