Вам нужна «задача» из запуска SQL Tuning Advisor (STA), чтобы получить отчет STA. Код для выполнения одной задачи:
SELECT DBMS_SQLTUNE.report_tuning_task(:task_name) AS recommendations FROM dual;
Не должно быть так сложно получить отчет STA для нескольких задач, например, используя SQL* Plus:
-- Once the tuning task has executed successfully the recommendations can be displayed using the REPORT_TUNING_TASK function.
set linesize 210
set pagesize 9999
set long 10000000
set time on
set timing on
SET SERVEROUTPUT ON
-- width of output should not need more than 200
column recommendations format a200
spool c:\temp\STA_reports.txt
SELECT DBMS_SQLTUNE.report_tuning_task('68vm8dtty867d_1340348426_AWR') AS recommendations FROM dual ;
prompt =================================================================
SELECT DBMS_SQLTUNE.report_tuning_task('69w2tux85a9x7_814599999_AWR') AS recommendations FROM dual ;
rem ...
spool off
Итак, в основном вам нужно запустить STA для top- SQL, а затем сгенерировать отчеты в виде одного файла.
Я не использую OEM регулярно, так как нашел этот инструмент чтобы не охватывать случаи использования, с которыми я часто сталкиваюсь, скорее, я сгенерирую список Top- SQL непосредственно из DBA_HIST_SQLSTAT *. Одна из причин этого заключается в том, что я могу выделить SQL, который не относится к заявленной проблеме производительности; Кроме того, я могу заказать Top- SQL по разным показателям (например, прошедшее время, время процессора, буферизованное получение,…). Когда у меня есть SQL_ID для SQL, представляющих интерес, я запускаю их все через SQL Tuning Advisor. Вместо того, чтобы изучать отчеты SQL Tuning Advisor, я собираю постоянные результаты непосредственно из таблиц DBA_ADVISOR%. С помощью этих запросов я извлекаю код для реализации рекомендаций (например, SQL для сбора статистики, создания индексов, принятия SQL профилей) непосредственно из таблиц DBA_ADVISOR%. Я говорил об этом на многих Oracle конференциях, но это решение выходит далеко за рамки прямого ответа на вопрос.
* Сценарий DBA_HIST_SQLSTAT можно найти в ответе на вопрос " сколько ЦП использование сеанса в данный момент времени в oracle "