怎么看sql trace report

SQLTraceReport分析技巧
本文介绍了如何通过SQLTraceReport中的关键指标评估SQL语句的执行效率。这些指标包括平均每行所需的block数量、parsecount与executecount的比例、磁盘IO比例等。通过对这些指标的分析,可以有效地定位SQL执行过程中的瓶颈。

怎么看sql trace report

1)query+current/rows:平均每行所需要的block数。太大的话(超过20),说明SQL语句的执行效率低下。

2)parse count/execute count:parse count应尽量接近1,如果太高,SQL会进行不必要的reparse.

3)disk/query+current:磁盘IO所占逻辑IO的比例,太大的话有可能是db_buffer_size过小。

4)rows Fetch/Fetch:Fetch Array 的大小,太小的话就没有充分利用批量Fetch的功能,增加了数据在客户端和服务器之间的往返次数。

5)elapsed/cpu: 太大的话说明执行中花费了大量的时间在等待资源。

6)cpu or elapsed:太大显示执行时间太长,或是消耗了大量的CPU时间。应该考虑优化执行计划中的rows.

7)执行计划中的Rows:表示在该处理阶段所访问的行数。要尽量减少。

参考资源链接:[Oracle 11g性能优化指南](https://wenku.youkuaiyun.com/doc/b1p5w85q6w?utm_source=wenku_answer2doc_content) 在Oracle Database 11g中,监控和分析SQL性能是性能调优过程中的关键步骤。AWR(Automatic Workload Repository)和SQL Trace是两个非常重要的工具,它们帮助数据库管理员收集关于系统性能的数据,从而可以针对性地进行优化。 AWR是一个自动的性能监控工具,它定期收集数据库的统计信息,并将这些信息存储在历史数据仓库中。管理员可以通过数据库视图如DBA_HIST_>来查询这些统计信息。AWR报告可以通过Enterprise Manager或者DBA_HIST_REPORT视图生成,这些报告包含了如SQL执行次数、资源消耗情况和等待事件等关键性能指标。 为了使用AWR进行性能分析,管理员首先需要开启自动工作负载仓库捕获,通过以下步骤: 1. 确保数据库已经打开了自动的工作负载仓库捕获: ```sql ALTER SYSTEM SET workoad_repository_dest = '<repository destination>' SCOPE=BOTH; ALTER SYSTEM SET statistics_level = ALL SCOPE=BOTH; ``` 2. 查看当前的AWR捕获设置: ```sql SELECT * FROM dba_hist_wr_control; ``` 3. 根据需要调整AWR捕获间隔时间和历史保留时间: ```sql EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(); ``` 4. 收集数据后,生成AWR报告: ```sql SELECT dbid, instance_number, begin_time, end_time, top_sql_id, top_event_name, top_event_id FROM dba_hist_sqlstat ORDER BY dbid, instance_number, begin_time DESC; ``` SQL Trace是一个跟踪SQL语句执行的工具,它可以记录SQL语句的执行细节。管理员可以通过使用TKPROF工具来分析trace文件,从而得到SQL语句的执行时间和资源消耗等信息。使用SQL Trace的基本步骤如下: 1. 启动一个SQL Trace会话: ```sql ALTER SESSION SET sql_trace = TRUE; ``` 2. 执行需要分析的SQL语句。 3. 停止SQL Trace会话: ```sql ALTER SESSION SET sql_trace = FALSE; ``` 4. 导出trace文件: ```bash expdp system/password@db_name dumpfile=trace.dmp logfile=expdp.log directory=dir_name ``` 5. 使用TKPROF分析trace文件: ```bash tkprof tracefile outputfile=report.txt sys=n ``` 通过分析AWR报告和TKPROF输出,管理员可以识别出性能瓶颈,如慢SQL语句、锁争用、内存配置不当等问题。然后,可以采取相应的调优措施,比如优化SQL语句,创建或优化索引,调整初始化参数等。 在实际操作中,管理员需要综合使用这些工具和分析结果,不断测试和调整,以达到最优的数据库性能。此外,建议在进行性能分析和调优之前,备份数据库,以防止在调优过程中出现不可预见的问题。 《Oracle 11g性能优化指南》作为一份专业的学习资源,对于想要深入了解和实践Oracle 11g性能优化的用户来说是一份宝贵的资料。它不仅涉及了监控和诊断的技术细节,还提供了SQL优化、索引优化等多个方面的实战指导,帮助用户系统地掌握Oracle数据库的性能调优技术。 参考资源链接:[Oracle 11g性能优化指南](https://wenku.youkuaiyun.com/doc/b1p5w85q6w?utm_source=wenku_answer2doc_content)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值