zoukankan      html  css  js  c++  java
  • sql跟踪及tkprof使用

    简述

    在oracle数据库中,awr是关于数据库系统总体的负载情况和运行情况的报告。而当系统负载都显示正常,而client运行某些动作响应非常慢,或者某些终端连接的会话运行缓慢或异常时,就须要用到会话级别的跟踪了。

    常见方法概述

    Session级别跟踪的方法有很多。比方当前会话的跟踪,能够运行命令

    Alter session set sql_trace=true;

    Alter session set sql_trace=false;

    或者使用10046事件

    Alter session set events ‘10046 trace name context forever,level 12’;

    Alter session set events ‘10046 trace name context off’

    当中level 12是可选级别。

    Level 1是指标准的sql跟踪。与设置sql_trace效果同样。

    Level 4是指在标准的基础上添加绑定变量信息。

    Level 8是指在标准的基础上添加等待事件信息。

    Level 12是指在标准的基础上同一时候添加绑定变量信息和等待事件信息。

    以上样例是在session级别进行跟踪。若环境中须要在整个实例级别进行跟踪,则直接将以上命令中的session更改为system就可以实现。

    但系统级别的跟踪将消耗大量的系统资源,因此,若非性能诊断须要。不要开启在系统级别的sql_trace。

    我们要用的方法

    方法有非常多。会用一种即可。以下我们说下我推荐的一种方法。

    首先,能够设置trace文件标志。使我们的trace文件更easy找出来。

    Alter session set tracefile_identifier=’wjf’;

    之后打开计时

    Alter system set timed_statistics=true;

    然后查找到要跟踪会话的sid与serial#,

    Select sid,serial#,osuser,machine from v$session;

    找到sid与serial#后,就能够运行跟踪了。比方sid=22,serial#=22;

    运行下面命令

    Exec dbms_monitor.session_trace_enable(22,22,waits=>true,binds=>true);

    Exec dbms_monitor.session_trace_disable(22,22);

    当中waits=>true跟binds=>true想必也不用解释了。

    追踪文件处理(tkprof)

    追踪后的trc文件能够在DIAGNOSTIC_DEST文件夹下找到。可是直接追踪产生的trc文件可读性并不好,须要借助一个oracle提供的工具处理下面。这个工具就是tkprof。

    比如我们此处生成trc文件名为orcl_ora_1234_wjf.trc.

    则我们须要在系统级别。即退出sqlplus。在shell或cmd下运行下面命令

    Shell>tkprof d:/app/administrator/diag/rdbms/orcl/orcl/trace/orcl_ora_1234_wjf.trcd:/wjf_2222.txt

    这样就能生成可读性较强的追踪文件进行分析了。Tkprof工具必须输入的两个參数也就是一个输入文件。一个输出文件而已。

    但tkprof另一些其它參数,非常多时候须要利用其它參数来生成文件,从而更方便找出问题。

    Tkprof工具的标准语法

    tkprof filename1filename2 [waits=yes|no] [sort=option] [print=n]

        [aggregate=yes|no] [insert=filename3] [sys=yes|no] [table=schema.table]

        [explain=user/password] [record=filename4] [width=n]

    Tkprof參数介绍

    介绍几个自我感觉比較经常使用的參数

    Waits=yes|no:是否包括等待事件信息。

    Print=n:设置显示多少行sql。比方你设置了排序信息,能够仅仅查看top 10的sql,就能够设置print=10了。

    Sys=yes|no:设置是否包括sys用户所公布的sql。主要是为了启动或禁止显示用户为运行自己的sql所产生的递归sql。默觉得yes。

    Sort=option:设置生成sql依据指定选项进行排序。

    prscnt  number oftimes parse was called

     prscpu  cpu timeparsing

      prsela  elapsedtime parsing

      prsdsk  numberof disk reads during parse

      prsqry  numberof buffers for consistent read during parse

       prscu   numberof buffers for current read during parse

       prsmis  numberof misses in library cache during parse

     

        execnt  numberof execute was called

        execpu  cputime spent executing

        exeela  elapsedtime executing

        exedsk  numberof disk reads during execute

        exeqry  numberof buffers for consistent read during execute

        execu   numberof buffers for current read during execute

        exerow  numberof rows processed during execute

        exemis  numberof library cache misses during execute

     

        fchcnt  numberof times fetch was called

        fchcpu  cputime spent fetching

        fchela  elapsedtime fetching

        fchdsk  numberof disk reads during fetch

        fchqry  numberof buffers for consistent read during fetch

        fchcu   numberof buffers for current read during fetch

        fchrow  numberof rows fetched

        userid  useridof user that parsed the cursor

    其它另一些參数。详细能够查看联机文档中的performance tunning guide。

    Tkprof举例

    所以。一个比較正常的tkprof语句可能是这个样子的

    tkprof d:/app/administrator/diag/rdbms/orcl/orcl/trace/orcl_ora_1234_wjf.trcd:/wjf_2222.txt waits=no  sys=no  sort=(prscpu,execpu,fchcpu) print=10;

    就这样了。就像生成awr报告一样,生成文件永远是最简单的。能把生成的报告读的多透彻才是见功底的东西。在此。我只把生成报告的过程做个记录,至于怎么读,慢慢再说。

  • 相关阅读:
    3090显卡(CUDA11.1)安装Pytorch
    ros环境搭建
    github设置仓库可见性 私人仓库设置他人协作/可见
    安全可靠国产系统下的应用怎么搭建?
    燕山大学操作系统课程设计计划书
    flink 1.9.0 编译:flink-fs-hadoop-shaded 找不到
    产品经理面试——简历填写
    什么是可串行化MVCC
    fatal: early EOF fatal: index-pack failed
    Maven 初学+http://mvnrepository.com/
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6867969.html
Copyright © 2011-2022 走看看