分析描述:
    使用DBMS_SYSTEM分析SQL语句执行,并且获取SQL会话中的绑定变量、等待事件、消耗资源和执行计划等等。
环境介绍:
    Oracle 11.2.0.4.0
    Linux 5.8平台
    工具:
        alter system set events 'sql_trace [sql:&&SQL_ID] bind=true,wait=true'; 开启绑定变量的捕获
        DBMS_SYSTEM.set_sql_trace_in_session(sid,serial#,ture|false);记录trace文件
 
 
执行带变量的SQL语句:
    
    alter system flush shared_pool;--首先清空共享池
 
    首先不开启绑定变量的捕获 ,查看trace文件。
 
variable B1 varchar2(30);
variable B2 varchar2(30);
variable B3 varchar2(20);
variable B4 varchar2(20);
exec :B1:='CHKKP_NEW'
exec :B2:='CHKKP_NEW'
exec :B3:='CHKKP_NEW'
exec :B4:='CHKKP_NEW'
 
set serveroutput on
 
declare
v_count number;
begin
    for i in 1..100 loop
        SELECT count(*) into v_count FROM CHKRULE_D WHERE RULETYPE=:B4 AND NVL(ITEM, :B3 ) = :B3 AND NVL(MODEL, :B2 ) = :B2 AND NVL(CUSTITEM, :B1 ) = :B1 ORDER BY RULESEQ DESC;
        dbms_output.put_line('Total ROws: ' || v_count);
    end loop;
end;
/
 
 
select sid,serial# from v$session where sid in (select sys_context('USERENV','SID') from dual);
 

 
 
SYS会话监控
    17:26:26 SQL> exec dbms_system.set_sql_trace_in_session(314,43729,true);
    已順利完成 PL/SQL 程序.
  

    操作系统查看trace文件
  [oracle@xxxxx trace]$ ls -ltr|grep trc|grep _ora_
  -rw-r----- 1 oracle dba   103524 May 10 17:31 xxxxx0_ora_5156.trc
   

         
SYS监控会话
        --关闭捕获到trace
17:38:45 SQL>     exec dbms_system.set_sql_trace_in_session(314,43729,false);
已順利完成 PL/SQL 程序.
 
 
 查询出执行SQL语句的SQL_ID
 
    col sql_id format a30
    col sql_text format a40
    select sql_id,sql_text from v$sqlarea where sql_text like '%SELECT count(*) into v_count %' and sql_text not like '%v$sqlarea %';
 
 

    
 
    开启绑定变量的捕获
 
alter system set events 'sql_trace [sql:3jw2927kh51wb] bind=true,wait=true';
alter system set events 'sql_trace [sql:0zsvnxk40mbft] bind=true,wait=true';
 
[oracle@xxxxxx trace]$ ls -ltr|grep trc|grep _ora_
-rw-r----- 1 oracle dba   154002 May 10 17:48 xxxxxx_ora_7977.trc
[oracle@xxxxxxx trace]$ less xxxxx_ora_7977.trc
 
    关闭捕获到trace
        
 
 
exec dbms_system.set_sql_trace_in_session(314,43729,false);
exec dbms_system.set_sql_trace_in_session(197,46871,false);
 
alter system set events 'sql_trace [sql:3jw2927kh51wb] bind=false,wait=true';
alter system set events 'sql_trace [sql:0zsvnxk40mbft] bind=false,wait=true
 

(Oracle)DBMS_SYSTEM工具-01[20180510]的更多相关文章

  1. oracle tkprof 工具详解

    oracle  tkprof 工具详解 今天是2013-09-26,进行tkprof工具使用学习,在此记录一下笔记: 一)查看需要跟踪会话信息: select s.sid,s.serial#,s.us ...

  2. Oracle TRCA 工具(转)

    本篇文章主要介绍了"Oracle TRCA 工具 说明 ",主要涉及到Oracle TRCA 工具 说明 方面的内容,对于Oracle TRCA 工具 说明 感兴趣的同学可以参考一 ...

  3. Oracle TRCA 工具 说明 10046

    本篇文章主要介绍了"Oracle TRCA 工具 说明 ",主要涉及到Oracle TRCA 工具 说明 方面的内容,对于Oracle TRCA 工具 说明 感兴趣的同学可以参考一 ...

  4. Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法

    Oracle客户端工具出现"Cannot access NLS data files or invalid environment specified"错误的解决办法 方法一:参考 ...

  5. 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具

    Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老手,有时候安装起来也觉得挺烦.而工作中,通常服务器上面安装oracle就可以了,我们本地电脑 ...

  6. 客户视角:Oracle ETL工具ODI

    客户视角:Oracle ETL工具ODI 数据集成已成为企业在追求市场份额中的关键技术组件,与依靠手工编码的方式不同,越来越多的企业选择完整的数据集成解决方案来支持其IT战略,从大数据分析到云平台的集 ...

  7. Oracle客户端工具安装

    Oracle简易客户端登录工具安装 @[Database|Oracle|客户端工具] [TOC] 引言 Oracle服务的安装是一件的繁琐的事情,我们往往喜欢在本地不安装oracle数据库的方式来访问 ...

  8. oracle12c:通过oracle客户端工具配置tns,并使用sqlldr进行批量导入数据

    通过oracle客户端工具配置tns: 进入oracle配置工具“Net Configuration Assistant”-> 点击“下一步”,完成tns配置. 测试是否tns可用 命令:tns ...

  9. 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具 【转载】

    http://www.cnblogs.com/jiekzou/p/5047850.html Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老 ...

随机推荐

  1. python 反射 动态导入模块 类attr属性

    1.反射 hasattr getattr delattr setattr 优点:事先定义好接口,接口只有在被完成后才能真正执行,这实现了即插即用,这其实是一种“后期绑定”,即先定义好接口, 然后是再去 ...

  2. Python3 中日语料分句实现

    0. 背景 因为最近在看平行语料句对齐.词对齐的缘故,想做对齐的话需要先做一个分句. 一开始利用正则和引号开关标志写了一种方法,中间想到一个小技巧,写出来比较简单通用,想把这一小段代码分享一下. 1. ...

  3. AutoMapper6扩展

    简介 很多时候我们使用AutoMapper的时候,都需要进行一个配置才可以使用Mapper.Map<Source,Target>(entity);.如果不进行配置则会报错. 如果实体过多, ...

  4. JS字面量创建方式的优缺点

    http://www.cnblogs.com/wuyaxing/p/6416441.html

  5. Azure 中快速搭建 FTPS 服务

    FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...

  6. java获取文件大小的方法

    目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的ava ...

  7. jquery遍历之children()与find()的区别

    hildren(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选. .find(selector)方法是返回匹配元 ...

  8. Java实例---简单的投票系统

    代码分析  InputData.java package vote; import java.io.BufferedReader; import java.io.IOException; import ...

  9. Linux下中间人攻击利用框架bettercap测试

    0x01简介 bettercap可用来实现各种中间人攻击,模块化,便携.易扩展 0x02特点 提到中间人攻击,最知名的莫过于ettercap,而开发bettercap的目的不是为了追赶它,而是替代它 ...

  10. Python的优雅写法

    枚举 之前我们这样操作:           Python   1 2 3 4 i = 0 for item in iterable:     print i, item     i += 1 现在我 ...