设为首页 收藏本站
查看: 634|回复: 0

[经验分享] [转载]ORACLE中SQL TRACE和TKPROF的使用

[复制链接]

尚未签到

发表于 2016-8-6 06:58:58 | 显示全部楼层 |阅读模式
  [转载]ORACLE中SQL TRACE和TKPROF的使用
分类: 甲骨文Oracle
原文地址:http://blog.iyunv.com/u/21174/showart_364608.h
 
SQL TRACE 和 tkprof sql语句分析工具
 
一 SQL TRACE 使用方法:
  1.初始化sql trace
    参数:
      timed_statistics=true  允许sql trace 和其他的一些动态性能视图收集与时间有关的参数、
      SQL>alter session set titimed_statistics=true
      max_dump_file_size=500 指定跟踪文件的大小
      SQL> alter system set max_dump_file_size=500;
      user_dump_dest  指定跟踪文件的路径
      SQL> alter system set user_dump_dest=/oracle/oracle/diag/rdbms/orcl/orcl/trace;
   
  2.为一个session 启动sql trace
    
     2.1命令方式
      alter session set sql_trace=true
     2.2 通过存储过程启动sqltrace
       select sid,serial#,osuser from v$session;
       SID    SERIAL# OSUSER
       168         1  oracle
 
       execute rdbms_system.set_sql_trace_in_session (168 ,1,true);
  3.停止一个sql trace 会话
      3.1 命令方式
       alter session set sql_trace=false
      3.2 储存过程的方式
        execute rdbms_system.set_sql_trace_in_session (168 ,1,false);
  4. 为整个实例启动SQL trace (一般消耗系统性能较高,不会用)
       alter system set sql_trace=true scope=spfile
     从新启动数据库
  5. 停止一个实例的sql trace
       alter system set sql_trace=flase scope=spfile
 
    启动sql trace 之后收集的信息包括
      1.解析、执行、返回数据的次数
      2.cpu和执行命令的时间
      3.物理读和逻辑读的次数
      4.系统处理的记录数
      5.库缓冲区错误
二 TKPROF的使用
     tkprof 的目的是将sql trace 生成的跟踪文件转换成用户可以理解的格式
    1. 格式
      tkprof inputfile outputfile [optional | parameters ]
    参数和选项:
     explain=user/password 执行explain命令将结果放在SQL trace的输出文件中
     table=schema.table 指定tkprof处理sql trace文件时临时表的模式名和表名
     insert=scriptfile 创建一个文件名为scriptfile的文件,包含了tkprof存放的输出sql语句
     sys=[yes/no] 确定系统是否列出由sys用户产生或重调的sql语句
     print=number 将仅生成排序后的第一条sql语句的输出结果
     record=recordfile 这个选项创建一个名为recorderfile的文件,包含了所有重调用的sql语句
     sort=sort_option 按照指定的方法对sql trace的输出文件进行降序排序
             sort_option 选项
                prscnt  按解析次数排序
                prscpu  按解析所花cpu时间排序
                prsela  按解析所经历的时间排序
                prsdsk  按解析时物理的读操作的次数排序
                prsqry  按解析时以一致模式读取数据块的次数排序
                prscu   按解析时以当前读取数据块的次数进行排序
                execnt  按执行次数排序
                execpu  按执行时花的cpu时间排序
                exeela  按执行所经历的时间排序
                exedsk  按执行时物理读操作的次数排序
                exeqry  按执行时以一致模式读取数据块的次数排序
                execu   按执行时以当前模式读取数据块的次数排序
                exerow  按执行时处理的记录的次数进行排序
                exemis  按执行时库缓冲区的错误排序
                fchcnt  按返回数据的次数进行排序
                fchcpu  按返回数据cpu所花时间排序
                fchela  按返回数据所经历的时间排序
                fchdsk  按返回数据时的物理读操作的次数排序
                fchqry  按返回数据时一致模式读取数据块的次数排序
                fchcu   按返回数据时当前模式读取数据块的次数排序
                fchrow  按返回数据时处理的数据数量排序
三 sql trace 的输出结果
         count:提供OCI过程的执行次数
         CPU:  提供执行CPU所花的时间单位是秒
         Elapsed:提供了执行时所花的时间。单位是秒。这个参数值等于用户响应时间
         Disk:提供缓存区从磁盘读取的次数
         Query:以一致性模式从缓存区获得数据的次数
         Current:以当前模式从缓存区获得数据的次数
         ROWs: 返回调用或执行调用时,处理的数据行的数量。
 
四:举例:
         sql>alter session set sql_trace=true               
         SQL>select * from dba_users;
         SQL>show parameter user_dump_dest
         user_dump_dest     string  /oracle/oracle/diag/rdbms/orcl/orcl/trace
         SQL>exit
         cd /oracle/oracle/diag/rdbms/orcl/orcl/trace
         tkprof orcl_ora_11066.trc /oracle/oracle/trace1.out sys=yes
         vi trace.out

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-253505-1-1.html 上篇帖子: 在Hibernate中实现Oracle的自动增长 下篇帖子: 九大Oracle性能优化基本方法详解(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表