单卡12.8TB闪存卡到底怎么用?(2)
接着,在跟踪文件目录中找到最新生成的跟踪文件 PRDDB1_ora_10452.trc 包含 SQL ID c7452agj0s0t6.接着我们使用 orasrp 这个工具分析10046跟踪文件. orasrp 为 Oracle Session Resource Profiler,出自一位俄罗斯 DBA 的强大的10046分析工具,网址为:http://oracledba.ru/orasrp/
orasrp相对于 Oracle 自带的 tkprof,功能更加强大,其中一大优势是会生成会话的递归调用树.递归调用树(Session Call Graph)部分如下图,SQL hash value=3792438054 为 SQL c7452agj0s0t6,深度为2,顶级的 SQL hash value = 2036392974.
顶级 SQL 文本如下,原来 SQL c7452agj0s0t6 是由 dbms_sqltune.report_sql_monitor 这个生成 SQL Monitor 报告的函数递归调用的.确定是前几天新部署的监控 job,在后台定时抓取和保存新生成的 SQL monitor 报告,但是执行过于频繁.解决的方法为降低后台 job 的执行频率,对每次抓取 SQL monitor 的执行时间提高限制.
确定问题来源之后,删除 logon 触发器,避免过多的跟踪文件产生:
五、总结本文演示了如果在Oracle中分别使用SQLID和会话级别的10046跟踪,以确定递归SQL的调用源头来自PL/SQL函数dbms_sqltune.report_sql_monitor.现实工作中,使用类似的方法,可以对PL/SQL代码性能,Oracle解析时间过长等疑难杂症进行分析.对于DBA来说,使用orasrp对10046跟踪文件生成的递归调用树,也是研究应用负载特征的一个好手段. 文章出处:DBAplus社群(订阅号ID:dbaplus) (编辑:ASP站长网) |