分析描述:
    使用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. iOS中基于WebView的HTML网页离线访问技术的实现

    其实就是MVC模式,视图在在线.离线时可以共用,控制器在在线时是由服务器端实现的,而离线时则是由本地Obj-C代码实现.具体实现方式为采用Mongoose实现. 代码为: mongoose.h mon ...

  2. UIResponder NSSet UITouch UIEvent

    UIResponder: UIView的超类,用来响应handle(触屏.motion.响应者等)事件. NSSet:一系列的类集合(类似数组). UITouch:一个点击类.负责:点击的view,w ...

  3. sql查询学习和实践点滴积累

    https://blog.rjmetrics.com/2008/10/28/correlated-subqueries-in-mysql/ http://www.mysqltutorial.org/m ...

  4. 简说mvc路由

    首先我们通过在Global.asax中的Application_Start将路由信息注册到RouteTable的Routes静态属性中.如下代码所示: public class RouteTable ...

  5. Linux 下Discuz论坛的搭建

    Discuz论坛的搭建[基于LNMP环境搭建成功后] ##创建BBS数据库在本地/远程服务器 mysql -uroot -proot create database bbs; show databas ...

  6. 第八次作业——windows各种基本应用的命令处理方法

  7. Asp.Net MVC Identity 2.2.1 使用技巧(四)

    使用用户管理器之用户管理 一.建立模型 1.在Models文件夹上点右键 >添加>类     类的名称自定,我用AdminViewModels命名的. 2.更改模板自建的AdminView ...

  8. 获取当前模块句柄(dll、exe)

    HMODULE getCurrModuleHandle(){ MEMORY_BASIC_INFORMATION info; ::VirtualQuery((LPCVOID)(&getCurrM ...

  9. NJCTF2017 web getflag(详解)

    题目: url:http://218.2.197.235:23725/ writeup: 首先随便输入后查看源码: <imgsrc="data:image/png;base64,Y2F ...

  10. 关于javascript的单线程和异步的一些问题

    关于js单线程和异步方面突然就糊涂了,看别人的文章越看越糊涂,感觉这方面是个坑,跳进去就不好跳出来.再去看,看着看着感觉自己明白了一些东西,也不知道对不对,反正是暂时把自己说服了,这样理解能理解的通, ...