首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle中顶级查询的自动SQL调优顾问报告

问oracle中顶级查询的自动SQL调优顾问报告
EN

Stack Overflow用户
提问于 2020-01-14 13:00:54
回答 1查看 343关注 0票数 0

我使用OEM查看调优顾问报告,该报告作为日常维护工作的一部分运行,以进行特定的查询。现在,我的要求是获得一个文件(text/html),其中包含AWR报告前10/20的调优顾问报告。有人能帮我按要求得到报告吗。

数据库版本: 12.1.0.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 16:16:19

需要运行SQL调优顾问( STA )中的“任务”才能获得STA报告。为单个任务执行此操作的代码如下:

代码语言:javascript
复制
SELECT DBMS_SQLTUNE.report_tuning_task(:task_name) AS recommendations FROM dual;

获得多个任务的STA报告不应该那么困难,例如使用SQL*Plus:

代码语言:javascript
复制
-- 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

因此,基本上,您需要为top-SQL运行STA,然后将报告生成为一个文件。

我不定期使用OEM,因为我发现这个工具不涵盖我经常遇到的用例,而是直接从DBA_HIST_SQLSTAT生成一个Top清单。原因之一是我可以将不适用于报告的性能问题的SQL子集出来;此外,我还可以根据各种指标(例如经过的时间、cpu时间、缓冲的gets、…)对Top进行排序。。一旦有了感兴趣的SQL的SQL _ID,我就会通过来运行它们。我不检查报告,而是直接从DBA_ADVISOR%表聚合持久化结果。通过这些查询,我直接从DBA_ADVISOR%表提取代码来实现建议(例如,用于收集统计数据、创建索引、接受SQL )的建议。我曾在许多甲骨文会议上介绍过这一点,但这个解决方案远远超出了直接回答这个问题的范围。

*DBA_HIST_SQLSTAT脚本可以在问题"how much CPU a session consuming at a given time in oracle“的答案中找到

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59734306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档