简述

在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. Java sleep方法的作用(sleep())

    sleep() 方法的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行).这个“正在执行的线程”是指 this.currentThread() 返回的线程. 例 1 下面通过一个案例来理解 ...

  2. 退役选手ZlycerQan的强大的的高精度

    #include <cstdio> #include <iostream> #include <vector> #include <iomanip> # ...

  3. 2019天梯赛练习题(L1专项练习)

    7-1 水仙花数 (20 分) 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身.例如:1. 本题要求编写程序,计算所有N位水仙花数. 输入样例: 3 输出样例: 153 ...

  4. mac 监控文件变化并重启php

    自己撸一个框架,需要监控代码变化 安装fswatch brew install fswatch shell重启PHP脚本reload.sh #!/bin/sh do ps -ef | grep php ...

  5. logging日志模块配置

    logging日志模块 日志级别 日志一共分成5个等级,从低到高分别是: 1)DEBUG 2)INFO 3)WARNING 4)ERROR 5)CRITICAL 说明: DEBUG:详细的信息,通常只 ...

  6. LeetCode(22)Generate Parentheses

    题目 Given n pairs of parentheses, write a function to generate all combinations of well-formed parent ...

  7. LeetCode(31) Next Permutation

    题目 Implement next permutation, which rearranges numbers into the lexicographically next greater perm ...

  8. DEV Express

    记录在使用DEV Express中遇到的所有问题及解决方案 问题1:将Dev11升级到Dev14 解决方案:将解决方案中原有Dev引用删除,重新添加必须的Dev14引用,问题解决: 问题2:LC.ex ...

  9. 调试jz2440生成特定后缀的命令

    生成dis命令: arm-linux-objdump -D u-boot> u-boot.dis 版权声明:本文为博主原创文章,未经博主允许不得转载.

  10. 404 Not Found 由来

    404 NOT FOUND! 抱歉,沒有找到您需要的文章!! 什么是 404 Not Found 404页面是网站必备的一个页面,它承载着用户体验与SEO优化的重任.404页面通常为用户访问了网站上不 ...