分析描述:
    使用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. Linux基础入门之网络属性配置

    Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...

  2. arcgis10.2 serverstyle 制作工具位置 小计

    跟9.3时候的套路还是一样的,只是工具已经放到了arcgis desktop的安装目录的bin文件夹下面. engine和developerkit都不附带该工具. 但是engine会附带一组默认的转换 ...

  3. Idea 快捷键大全【转】

    IntelliJ Idea 常用快捷键列表 Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Sh ...

  4. Ubuntu桌面显示超大,现在显示不全

    按住alt可以自由拖动窗口或者滚动鼠标滚动轮,整体放大缩小桌面把窗口拖动到显示设置然后调整菜单和标题栏缩放比例

  5. Java实例---简单的上课管理系统

    源码分析 Course.java package com.ftl.many2many; import java.util.*; public class Course { private int cr ...

  6. C#/Entity Frame Core 使用Linq 进行分页 .Skip() .Take() 的使用方法

    一般使用格式为 int pagesize = 分页大小(每一页大小)int pageindex = 第几页(一般这个变量是随循环递增的) 使用方法.Skip(pagesize*pageindex).T ...

  7. 沉淀再出发:如何在eclipse中查看java的核心代码

    沉淀再出发:如何在eclipse中查看java的核心代码 一.前言   很多时候我们在eclipse中按F3键打算查看某一个系统类的定义的时候,总是弹出找不到类这样的界面,这里我们把核心对应的代码加进 ...

  8. LVS跨网段DR模式并使用ldirectord实现RS高可用性

    DR模型的工作过程: Client向VIP发起请求,请求被路由器接收到,转发给不同网段的Director的VIP,Director再通过私有网络转给RS服务器,RS服务器处理请求并通过自身配置的VIP ...

  9. Linux 系统性能监控命令详解

    Linux 系统性能监控命令详解 CPU MEMORY IO NETWORK LINUX进程内存占用查看方法 系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(pag ...

  10. CentOS7.X安装Redis-4.0.8以及Redis集群搭建

    安装redis 安装前的准备 yum install \ vim \ wget \ make \ gcc \ gcc-c++ \ automake \ autoconf \ -y \ 下载解压并安装 ...