10046跟踪绑定变量具体值

1.建立测试表

SQL>  create table t (x varchar2(12));

Table created.

SQL> desc t

Name                                      Null?    Type

----------------------------------------- -------- ----------------------------

X                                                  VARCHAR2(12)

2.使用绑定变量插入数据

SQL> declare

2    v_bindvalue char(8) := 'hfmgdcng' ;

3  begin

4    insert into t values (v_bindvalue);

5  end;

6  /

PL/SQL procedure successfully completed.

SQL>

SQL> select * from t;

X

------------

hfmgdcng

3.10046时间跟踪设置

alter session set events '10046 trace name context forever, level 4';

SQL> alter session set events '10046 trace name context forever, level 4';

Session altered.

4.继续使用绑定变量插入数据

SQL> declare

2    v_bindvalue char(12) := 'hfmgdcng' ;

3  begin

4    insert into t values (v_bindvalue);

5  end;

6  /

PL/SQL procedure successfully completed.

SQL> select * from t;

X

------------

hfmgdcng

hfmgdcng

5.查看相关的trace文件

[root@oradb udump]# more orcl_ora_3324.trc

/oracle/admin/orcl/udump/orcl_ora_3324.trc

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

ORACLE_HOME = /oracle/product/10.2

System name:    Linux

Node name:      oradb

Release:        2.6.18-308.el5

Version:        #1 SMP Tue Feb 21 20:05:41 EST 2012

Machine:        i686

Instance name: orcl

Redo thread mounted by this instance: 1

Oracle process number: 15

Unix process pid: 3324, image: oracle@oradb (TNS V1-V3)

*** 2013-08-20 17:45:46.932

*** ACTION NAME:() 2013-08-20 17:45:46.932

*** MODULE NAME:(SQL*Plus) 2013-08-20 17:45:46.932

*** SERVICE NAME:(SYS$USERS) 2013-08-20 17:45:46.932

*** SESSION ID:(159.5) 2013-08-20 17:45:46.932

=====================

PARSING IN CURSOR #2 len=68 dep=0 uid=56 oct=42 lid=56 tim=1344718698176309 hv=1896049376 ad='2995d71c'

alter session set events '10046 trace name context forever, level 4'

END OF STMT

EXEC #2:c=0,e=2,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=1344718698176307

=====================

PARSING IN CURSOR #8 len=95 dep=0 uid=56 oct=47 lid=56 tim=1344718702594931 hv=3237834723 ad='2995ddd8'

declare

v_bindvalue char(12) := 'hfmgdcng' ;

begin

insert into t values (v_bindvalue);

end;

END OF STMT

PARSE #8:c=0,e=124,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1344718702594919

BINDS #8:

=====================

PARSING IN CURSOR #1 len=27 dep=1 uid=56 oct=2 lid=56 tim=1344718702595808 hv=3116513188 ad='2995dadc'

INSERT INTO T VALUES (:B1 )

END OF STMT

PARSE #1:c=1000,e=791,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,tim=1344718702595798

BINDS #1:

kkscoacd

Bind#0

oacdty=96 mxl=32(12) mxlc=00 mal=00 scl=00 pre=00

oacflg=13 fl2=206001 frm=01 csi=852 siz=32 off=0

kxsbbbfp=b7f64730  bln=32  avl=12  flg=09

value="hfmgdcng    "

EXEC #1:c=1000,e=670,p=0,cr=1,cu=3,mis=1,r=1,dep=1,og=1,tim=1344718702596881

EXEC #8:c=2000,e=2005,p=0,cr=1,cu=3,mis=0,r=1,dep=0,og=1,tim=1344718702596968

4.分析其中的文件

Bind#0

oacdty=96 mxl=32(12) mxlc=00 mal=00 scl=00 pre=00

oacflg=13 fl2=206001 frm=01 csi=852 siz=32 off=0

kxsbbbfp=b7f64730  bln=32  avl=12  flg=09

value="hfmgdcng    "

EXEC #1:c=1000,e=670,p=0,cr=1,cu=3,mis=1,r=1,dep=1,og=1,tim=1344718702596881

EXEC #8:c=2000,e=2005,p=0,cr=1,cu=3,mis=0,r=1,dep=0,og=1,tim=1344718702596968

可以看到 value="hfmgdcng    "  长度为12

继续往后

SQL> variable x char(5)

SQL> exec :x := 'hfmgd';

PL/SQL procedure successfully completed.

SQL> alter session set events '10046 trace name context forever, level 4';

Session altered.

SQL> select * from t where x=:x;

X

------------

hfmgd

variable x char(5)

exec :x := 'hfmgd';

alter session set sql_trace = true

select * from t where x=:x

alter session set sql_trace = flase

PARSE #3:c=1000,e=308,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,tim=1344719449388107

BINDS #3:

kkscoacd

Bind#0

oacdty=96 mxl=32(05) mxlc=00 mal=00 scl=00 pre=00

oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0

kxsbbbfp=b7efd780  bln=32  avl=05  flg=05

value="hfmgd"

EXEC #3:c=1000,e=810,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,tim=1344719449389582

FETCH #3:c=1999,e=1478,p=5,cr=7,cu=0,mis=0,r=1,dep=1,og=1,tim=1344719449391060

STAT #3 id=1 cnt=1 pid=0 pos=1 obj=0 op='SORT AGGREGATE (cr=7 pr=5 pw=0 time=1469 us)'

STAT #3 id=2 cnt=3 pid=1 pos=1 obj=51576 op='TABLE ACCESS FULL T (cr=7 pr=5 pw=0 time=1440 us)'

BINDS #2:

kkscoacd

Bind#0

oacdty=96 mxl=32(10) mxlc=00 mal=00 scl=00 pre=00

oacflg=03 fl2=1000000 frm=01 csi=852 siz=32 off=0

kxsbbbfp=b7ee28d8  bln=32  avl=05  flg=05

value="hfmgd" EXEC #2:c=6999,e=6419,p=6,cr=10,cu=0,mis=0,r=0,dep=0,og=1,tim=1344719449391778 FETCH #2:c=0,e=55,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=1344719449392148 FETCH #2:c=0,e=43,p=0,cr=4,cu=0,mis=0,r=0,dep=0,og=1,tim=1344719449393130 STAT #2 id=1 cnt=1 pid=0 pos=1 obj=51576 op='TABLE ACCESS FULL T (cr=7 pr=0 pw=0 time=46 us)'

oracle 10046跟踪自己,Oracle 10046事件跟踪绑定变量具体值相关推荐

  1. Oracle --获取绑定变量的值.

    SELECT * FROM DBA_HIST_SQLBIND WHERE SNAP_ID>67073 AND SNAP_ID<=67079 AND SQL_ID='3DR3410F086P ...

  2. oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介

    最近在看<基于Oracle的SQL优化一书>,并做了笔记,作者的个人博客:http://www.dbsnake.net/ @ 一.SQL执行过程简介 继上一篇博客Oracle的cursor ...

  3. oracle中带有in查询的子查询绑定变量方式

    前情提要: 在sql中我们经常会使用到带有in的子查询,例如:where id in(1,2,3),如果语句在数据库中出现,将会引起数据库的大量硬解析与共享池SQL碎片(简而言之就是影响数据库性能): ...

  4. oracle 自动表分析,其实 Oracle 直方图自动统计算法存在这些缺陷!

    原标题:其实 Oracle 直方图自动统计算法存在这些缺陷! 科技细分领域TOP10影响力内容第一季度入选作品 来源 | CSDN 作者 | 吴海存 在某些场景下,表中某一列的数据分布会比较崎岖,使得 ...

  5. oracle pga的作用,Oracle PGA作用

    专有模式下ORACLE会给每个连接分配一个服务进程(Server Process),这个服务进程将为这个连接服务.为这个服务进程分配的内存叫做PGA.PGA不需要Latch也不需要Lock,永远不会发 ...

  6. Oracle中如何查找未使用绑定变量的SQL语句?

    Oracle中如何查找未使用绑定变量的SQL语句? 利用V$SQL 视图的 FORCE_MATCHING_SIGNATURE 字段可以识别可能从绑定变量或 CURSOR_SHARING 获益的 SQL ...

  7. oracle绑定变量写法,关于Oracle绑定变量的个人理解及使用场景

    关于Oracle绑定变量 摘自--Oracle 11g concept 中英文对照版 使用了绑定变量能提高性能主要是因为这样做可以尽量避免不必要的硬解析而节约了时间,同时节约了大量的CPU资源. 绑定 ...

  8. oracle 10046事件查看,使用oracle的10046事件跟踪SQL语句

    使用oracle的10046事件跟踪SQL语句 我们在分析应用程序性能问题的时候,更多地需要关注其中SQL语句 的执行情况,因为通常应用程序的性能瓶颈会在数据库这边,因此数据库的sql语句是我们优化的 ...

  9. oracle 10046详解,Oracle 10046事件详解

    10046事件说明10046事件是Oracle提供的内部事件,是对SQL_TRACE的增强. 10046事件可以设置以下四个级别: 1 - 启用标准的SQL_TRACE功能,等价于sql_trace ...

最新文章

  1. 搞科研不如当老师香?南科大助理教授“跳槽”深圳中学当老师
  2. 2022年:机器人技术的重大革命
  3. 雄关漫步真如铁 而今迈步从头越
  4. IDRLnet: 基于内嵌物理知识神经网络的开源求解框架
  5. android 设置 媒体服务器,第三讲:如何掌握媒体服务器的运行情况
  6. 数据结构(六)---队列的链式存储的实现---java版
  7. leetcode42 --- trap
  8. java引擎组件_Java 脚本引擎入门
  9. 简记Ubuntu下载 Android源码
  10. java 复写hashcode_java 重写equals()和hashCode()
  11. Bug:Google Analytics例子未使用example.com
  12. PAT 乙级 1017. A除以B (20) Java版
  13. ActiveMQ学习-Network connectors JAVA代码实现
  14. jio tomcat_透过Jio Glass看
  15. 【目标检测】57、Dual Weighting Label Assignment | 专为目标检测设计的双权重标签分配
  16. ChainZ Arena攻略+全红卡评分
  17. 秘笈大公开 | 魏泓手把手教你利用无菌动物,提高国自然中标率!
  18. 阿里云域名配置和https证书(ssl证书)配置内容
  19. JS阻止默认行为和Vue阻止默认行为
  20. git-lfs使用笔记

热门文章

  1. C# 处理WMZ文件,转换为WMF或者JPG/PNG等
  2. java面向对象特征
  3. Qt | 事件系统 QEvent
  4. 网站被植入Webshell的解决方案
  5. 【PyTorch】教程:torch.nn.ELU
  6. 《明朝那些事儿》 - 走入那段或辉煌或荒唐的岁月
  7. vue H5、uniapp小程序的文件下载
  8. git stash用法总结
  9. Mysql如何对用户授权
  10. 编译器32位和64位数据类型区别