zoukankan      html  css  js  c++  java
  • oracle性能调优之trace文件跟踪

    oracle笔记整理15——性能调优之trace文件跟踪
    thinkpadshi 2016-01-16 23:09:50 1738 收藏
    展开
    1) sql_trace方式

    a) show parameter sql_trace;–查看trace状态,默认为false

    b) alter session set sql_trace=true;–修改为true

    c) exec sql;–运行sql语句

    d) alter session set sql_trace=false;–恢复回false状态

    e) show parameter dump_dest;–trace类型

    f) select value from v$parameter where name = ‘user_dump_dest’;–生成的trace文件所在地址

    g) 动态性能视图查找生成的trace文件

    select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
    p.spid || '.trc' trace_file_name
    from (select p.spid
    from v$mystat m, v$session s, v$process p
    where m.statistic# = 1
    and s.sid = m.sid
    and p.addr = s.paddr) p,
    (select t.instance
    from v$thread t, v$parameter v
    where v.name = 'thread'
    and (v.value = 0 or t.thread# = to_number(v.value))) i,
    (select value from v$parameter where name = 'user_dump_dest') d;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    这里写图片描述
    h) 转换trace文件cmd窗口中tkprof命令

    --tkprof trace文件 output=输出文件;
    C:UsersAdministrator>tkprof e:appadministratordiag dbmsorclorcl raceor
    cl_ora_47912.trc output=d:aa.txt sys=no explain=账号/密码;

    1
    2
    3

    这里写图片描述
    这里写图片描述

    i) 对于每一条SQL语句,都包含3个步骤:
    Parse:SQL的分析阶段.
    Execute:SQL的执行阶段.
    Fetch:数据提取阶段.(对于一次SQL操作,Fetch可能多次)

    j) 横向的标题头为:
    count = number of times OCI procedure was executed
    cpu = cpu time in seconds executing
    elapsed = elapsed time in seconds executing
    disk = number of physical reads of buffers from disk
    query = number of buffers gotten for consistent read
    current = number of buffers gotten in current mode (usually for update)
    rows=number of rows processed by the fetch or execute call
    count:当前的操作执行的次数.
    cpu:当前操作消耗的CPU时间(秒).
    elapsed:当前操作消耗的时间(CPU时间加等待时间).
    disk:磁盘的IO次数.
    query:当前操作的一致性读取的数据块数.
    current:前操作的current读取的数据块数(通常在update操作时发生).
    rows:处理的记录行数.

    k) Misses in library cache during parse
    是指是不是重用了执行计划,如果同一条SQL语句第二次执行,其值为零,这里是1,表示在共享池里没有这一条SQL的执行计划,发生了一次硬解析.
    Optimizer:优化器模式.
    Parsing user id:分析的用户ID.

    l) Row Source Operation部分包含的实际消耗的资源.
    cr:一致性读取的数据块,相当于Fetch的query.
    pr:物理读, 相当于Fetch的disk.
    pw:物理写.
    time:当前操作的执行时间.
    2) 10046事件

    10046事件按照收集的信息内容,分为4个级别
    level1: 等同于前面介绍的sql_trace;
    level4: 在level1的基础上增加绑定变量的收集;
    level8: 在level1的基础上增加等待事件的收集;
    level12: 等同于level4+level8(所以这个级别用的最普遍);

    a) 开启当前会话,级别为12的10046事件

    ALTER SESSION SET EVENTS'10046 trace name context forever, level 12';

    1

    b) 关闭当前会话,任何级别的10046事件

    ALTER SESSION SET EVENTS'10046 trace name context off';

    c) 执行sql语句,并使用动态sql查找生成的trace文件;

    d) 转换trace文件cmd窗口中tkprof命令

    --tkprof trace文件 output=输出文件;
    C:UsersAdministrator>tkprof e:appadministratordiag dbmsorclorcl raceor
    cl_ora_6488.trc output=d:10046.txt sys=no explain=账号/密码;

    ————————————————
    版权声明:本文为CSDN博主「thinkpadshi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/thinkpadshi/java/article/details/50530179

  • 相关阅读:
    深入理解javascript原型和闭包(1)——一切都是对象
    深入理解javascript原型和闭包(2)——函数与对象的关系
    js 的function为什么可以添加属性
    Nodejs入门
    js数组的比较
    对Array.prototype.slice.call()方法的理解
    elementUI el-select 多选情况下包含全部选项,及获得选中项的label
    JS对象,获取key和value
    elementUI实现前端分页
    JavaScript(js)处理的HTML事件、键盘事件、鼠标事件
  • 原文地址:https://www.cnblogs.com/p81023c/p/12923161.html
Copyright © 2011-2022 走看看