发布新日志

  • oracle打印trace文件以及分析trace文件方法(使用tkprof工具)

    2010-12-08 10:51:45

    我们性能测试工程师一般在执行性能测试过程中,难免要监控后台数据库等,比如oracle数据库。不会监控的性能测试工程师不是一个称职的测试工程师,很多性能问题都是在监控后台应用以及后台数据库过程中发现的,一部分是在业务逻辑上发现的。其中大部分问题都出在后台应用和后台数据库方面。所以掌握好正确的有效的监控方法是有必要的。

    当我们在通过quest公司的spotlight on oracle工具监控到某个sql语句执行的比较慢或者其他这样那样的问题时,我们就可以查看这个sql的trace文件来分析这个sql语句。当然oracle中sql trace设置的开关默认是FALSE的,这需要我们手动打开(TRUE)。

    1、登陆sqlplus /nolog,然后conn /as sysdba;

    2、show parameter sql_trace;查看sql_trace参数是否为true(检查是否有人打开过)

    3、如果sql_trace=false,则执行alter session set sql_trace=true; 打开sql trace设置

    4、然后执行相应的有问题的SQL语句

    5、show parameter user_dump_dest;查看新生成的trace文件位置

    6、alter session set sql_trace=false;然后关闭sql trace设置,如果不关闭的话,会对oracle性能有响应,具体多大影响我没有研究过,想想就知道啦。

    7、exit;退出sqlplus

    6、cd 新生成的trace文件位置,找到这个trc文件,但是这个trc文件中有很多二进制的东西,我们根本看不懂,除非天才测试人员。所以我使用tkprof工具编译这个新生成的trc文件。具体语法如下:

    [oracle@localhost udump]$ tkprof qctest_ora_6242.trc wangyong3.txt

    TKPROF: Release 10.2.0.1.0 - Production on Wed Dec 8 02:28:06 2010

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.


    [oracle@localhost udump]$ ls -lrt
    total 724
    -rw-r--r--  1 oracle oinstall   1113 Dec  7 02:59 1.prf
    -rw-r--r--  1 oracle oinstall   1113 Dec  7 03:02 wangyong.txt
    -rw-r--r--  1 oracle oinstall   1113 Dec  7 03:04 wangyong1.txt
    -rw-r-----  1 oracle oinstall    656 Dec  7 05:06 qctest_ora_6216.trc
    -rw-r-----  1 oracle oinstall    685 Dec  7 05:06 qctest_ora_6243.trc
    -rw-r-----  1 oracle oinstall   1880 Dec  7 05:06 qctest_ora_6244.trc
    -rw-r-----  1 oracle oinstall    656 Dec  7 09:33 qctest_ora_6357.trc
    -rw-r-----  1 oracle oinstall    685 Dec  7 09:33 qctest_ora_6384.trc
    -rw-r-----  1 oracle oinstall   1898 Dec  7 09:33 qctest_ora_6385.trc
    -rw-r--r--  1 oracle oinstall  36867 Dec  7 09:36 wangyong2.txt
    -rw-r-----  1 oracle oinstall 190542 Dec  7 09:38 qctest_ora_6404.trc
    -rw-r-----  1 oracle oinstall    628 Dec  8 01:57 qctest_ora_6182.trc
    -rw-r-----  1 oracle oinstall    685 Dec  8 01:57 qctest_ora_6209.trc
    -rw-r-----  1 oracle oinstall   1886 Dec  8 01:57 qctest_ora_6210.trc
    -rw-r-----  1 oracle oinstall 306871 Dec  8 02:27 qctest_ora_6242.trc
    -rw-r--r--  1 oracle oinstall  71240 Dec  8 02:28 wangyong3.txt
    [oracle@localhost udump]$

    然后ftp这个wangyong3.txt文件到我的本地,使用UE打开,查看这个sql语句的执行效率等等。

    额外补充知识要点(可要可不要):

    初始化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;
     
    启动sql trace 之后收集的信息包括
     
          1.解析、执行、返回数据的次数
          2.cpu和执行命令的时间
          3.物理读和逻辑读的次数
          4.系统处理的记录数
          5.库缓冲区错误
     
    sql trace 的输出结果
     
             count:提供OCI过程的执行次数
             CPU:  提供执行CPU所花的时间单位是秒
             Elapsed:提供了执行时所花的时间。单位是秒。这个参数值等于用户响应时间
             Disk:提供缓存区从磁盘读取的次数
             Query:以一致性模式从缓存区获得数据的次数
             Current:以当前模式从缓存区获得数据的次数
             ROWs: 返回调用或执行调用时,处理的数据行的数量。
     
    TKPROF的使用
     
         tkprof 的目的是将sql trace 生成的跟踪文件转换成用户可以理解的格式
        格式
          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  按返回数据时处理的数据数量排序
     
  • WinSCP—客户端与服务器端之间的文件传输工具

    2008-09-03 11:11:35

  • 连接服务器的专用工具—SecureCRT

    2008-09-03 11:11:35

  • 最新积累的经典服务器系统监控工具

    2008-09-03 11:11:35

  • "Automation 服务器不能创建对象"解决办法

    2008-09-03 11:11:35

       这段时间测试了一个办公自动化系统,由于新安装了win 2000的系统,以前的设置全部恢复系统初始化,郁闷。

       把这个自动化系统的地址加入“可信任站点”后,能够打开这个办公自动化系统的登陆界面,但...

    Link URL: http://www.51testing.com?77492/action_viewspace_itemid_81128.html

  • TUXEDO监视系统运行

    2008-09-03 11:11:35

    TUXEDO监视系统运行

    启动tmadmin
    tmboot  -y

    1查看服务信息psr
    (1) 命令: printserver 简写 psr
    (2)  psr [-m machine] [-g groupname] [-i srvid] [-q qaddress]
    ...

    Link URL: http://www.51testing.com?77492/action_viewspace_itemid_85805.html

  • $ vmstat 1 1000

    2008-09-03 11:11:35

     

     

    在众多的服务器(HP、AIX)资源监控工具中glance、nmon、topas、sar、iostat、mpstat、vmstat,我很相信vmstat的监控结果,topas、sar次之。


    $ vmstat 1 1000
     
    System configuration: lcpu=2 mem=3920MB
    &...

    Link URL: http://www.51testing.com?77492/action_viewspace_itemid_91520.html

Open Toolbar