简述

在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. freemarker特殊字符输出

    期望输出: #{fefefefwewrerwerwrrrre}${fffqqqwwwwwwwwwwwwwwww} 但是以上解析ftl时候会报错!!!!!!!!!!!! 解决办法: 方法1:使用${r& ...

  2. Linux OOM-killer 内存不足时kill高内存进程的策略

    OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味 在kernel 2.6,内存不足将唤醒oom_killer,挑出/proc/<pid> ...

  3. Vue之过滤器的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. spring注解开发-声明式事务(源码)

    1. 环境搭建与测试 1)导入相关依赖 数据源.数据库驱动.Spring-jdbc模块 <dependency> <groupId>org.springframework< ...

  5. 洛谷P1421 小玉买文具

    这道题其实就是编程最基础的逻辑,没什么好讲的输入,输出就完了,非常简单! code: #include<cstdio> #include<iostream> using nam ...

  6. windows中彻底卸载mysql

    1)停止MySQL服务 打开控制面板→管理工具→服务(找到MySQL) 2)卸掉mysql server 打开控制面板→程序与功能→找到mysql server然后卸载 3)将mysql目录下的安装文 ...

  7. 04 Beautiful Soup

    Beautiful Soup 简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: ''' Beautiful Soup提供一些简单的.py ...

  8. centos7 ftp 500 OOPS: cannot change directory:/var/ftp/xutong/

    在设置多用户登录的时候 该指定的用户xutong对于上级目录/var/ftp 没有访问权限 修改一下上级目录的权限 chmod /var/ftp 对于ftp多用户访问的配置修改也做一个记录 以是设置F ...

  9. JavaScript中变量、作用域和内存问题(JavaScript高级程序设计第4章)

    一.变量 (1)ECMAScript变量肯能包含两种不同的数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,引用类型值指那些可能由多个值构成的对象. (2)基本数据类型是按值访问,可 ...

  10. 大数据学习——mapreduce汇总手机号上行流量下行流量总流量

    时间戳 手机号 MAC地址 ip 域名 上行流量包个数 下行 上行流量 下行流量 http状态码 1363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 12 ...