简述

在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报告一样,生成文件永远是最简单的。能把生成的报告读的多透彻才是见功底的东西。在此。我只把生成报告的过程做个记录,至于怎么读,慢慢再说。

sql跟踪及tkprof使用的更多相关文章

  1. SQL 跟踪方法相关介绍

    oracle sql跟踪方法:1.sql_trace打开跟踪:alter session set sql_trace=true;为跟踪文件做标记:alter session set tracefile ...

  2. sql 跟踪

    目录 1 sql跟踪 1.1 alter session 1.2 DBMS_MONITOR 1.3 DBMS_SESSION 1.4 oradebug模式 1.5 触发器的模式启用sql 跟踪 1.6 ...

  3. 【SQL跟踪工具】SQL Profiler 跟踪器

    什么是SQL Profiler SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果. 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分 ...

  4. Oracle性能分析1:开启SQL跟踪和获取trace文件

    当Oracle查询出现效率问题时,我们往往须要了解问题所在,这样才干针对问题给出解决方式.Oracle提供了SQL运行的trace信息,当中包括了SQL语句的文本信息.一些运行统计,处理过程中的等待, ...

  5. SQL Server Profiler (SQl跟踪器)的简单使用

    一.工具介绍 在实际开发中,我们的数据库应用系统因为不可避免会存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等,所以会出现一系列问题,有问题不可怕,找对工具很重要.接下来我就介绍一款性能 ...

  6. PostgreSQL 慢查询SQL跟踪

    PostgreSQL 开启慢SQL捕获在排查问题时是个很有效的手段.根据慢SQL让我在工作中真正解决了实际问题,很有帮助. PostgreSQL 日志支持的输出格式有 stderr(默认).csvlo ...

  7. CLOUD SQL跟踪

    CLOUD会自动在后台执行一些sql语句,所以追踪起来比较麻烦,需要加入一些过滤条件. 比如关键的CLIENTPROCESSID,加入后 ,就能过滤是哪个客户度执行的数据. 过滤数据.

  8. 迷你sql profile,给缺少sql跟踪的朋友们

    如果你的数据库没有sqlprofile,看这里. 如果你没时间装sqlserver那一系列的东西,看看这里,也许能解决呢. 这是一个迷你版的sqlprofile ,在win7下测试,链接sqlserv ...

  9. 学习笔记:启动对特定用户的会话的sql跟踪

    学习 Oracle性能诊断艺术 制作一个role: CREATE ROLE sql_trace; 然后再作一个数据库登录级别的触发器: CREATE OR REPLACE TRIGGER enable ...

随机推荐

  1. assembly|reads to contig|contig to scaffold|coverage|depth| tandem repeats

    (组装方面):SOAPdenovo ,因为采用de Bruijn graph algorithm算法和stepwise strategy ,所以排错能力高,所以我们获得高质量数据. de Bruijn ...

  2. 事物的四大特性(acid)

    如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一 ...

  3. Java中的代理--proxy

    讲到代理,好像在之前的springMVC,还是spring中或者是hibernate中学习过,并没有特别在意,这次好好理解一下.(原来是在spring中的AOP,面向切面 Aspect Oriente ...

  4. 11scrapy

    一. Scrapy基础概念 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取.Scrapy 使用了 Twisted异步网络框架,可以加快我 ...

  5. MySQL数据库常见面试题

    什么是存储过程?有哪些优缺点? 存储过程简单来说就是为了以后使用而保存的一条或多条预编译SQL语句,这些语句块像一个方法一样执行一些功能. 优点: 类似于封装,简化操作: 不用反复建立一系列处理步骤, ...

  6. 文件默认权限umask掩码

    umask命令 作用:用于显示.设置文件的缺省权限 格式:umask   [-S] -S表示以rwx形式显示新建文件缺省权限 系统的默认掩码是0022 文件创建时的默认权限 = 0666 - umas ...

  7. 条款30:透彻了解inline的里里外外(understand the ins and outs of inlining)

    NOTE: 1.将大多数inline限制在小型 被频繁调用的函数身上.这可使日后的调试过程和二进制升级(binary upgradability)更容易,也可使潜在的代码膨胀问题最小化, 使程序的速度 ...

  8. Python之队列

    Python之队列 队列:先进先出 队列与线程有关. 在多线程编程时,会起到作用. 作用:确保信息安全的进行交换. 有get 和 put 方法. ''' 创建一个“队列”对象 import Queue ...

  9. 【HDU 6008】Worried School(模拟)

    Problem Description You may already know that how the World Finals slots are distributed in EC sub-r ...

  10. SpringMVC(8) - 处理器映射

    在以前的Spring版本中,用户需要在Web应用程序上下文中定义一个或多个HandlerMapping bean,以将传入的Web请求映射到适当的处理器.通过引入带注解的控制器,就不需要像之前那样定义 ...