v$sql_bind_capture 获取绑定变量信息

截取自

http://lzfhope.blog.163.com/blog/static/6363992200810206721744/

v$sql_bind_capture
       对于游标中定义的每一个绑定变量都会有视图中的一行对应。主要包含三个部分:指向父游标(hash_value, address)和子游标(hash_value, child_address)的信息,变量类型定义,变量的值(不包含复杂的值:LONG,LOB,和ADT类型)只有它们是位于where字句或者HAVING字句的时候才有捕捉。
       当初始化参数STATISTICS_LEVEL=BASIC的时候,不进行绑定捕捉。
       可以和V$SQLAREA on (HASH_VALUE, ADDRESS)  ,V$SQL on (HASH_VALUE, CHILD_ADDRESS),也就是指向父游标和子有效。
      举例如下:
      declare
         vname varchar2(30);
         vcount int;
         vsql varchar2(1000);
      begin
         VNAME:='EMPLOYEE';
         vsql:='select count(*) from tab where tname=:BVTEST';
         EXECUTE IMMEDIATE VSQL INTO VCOUNT USING VNAME;
         DBMS_OUTPUT.put_line(VCOUNT);
      end;         
      select * from v$sql_bind_capture  WHERE NAME=':BVTEST';  --可以看到值为EMPLOYEE
      SELECT * FROM V$SQLAREA WHERE SQL_ID='90d1g75d8gjph'  --可以更具SQL_ID查找共享池中SQL。
      select * from v$sqlarea where (hash_value,address)=
         (select hash_value,address from v$sql_bind_capture where NAME=':BVTEST') --可以查找到对应父游标
      select * from v$sql     where (hash_value,child_address)=
         (select hash_value,child_address from v$sql_bind_capture where NAME=':BVTEST') --可找到对应子游标。

      

时间: 2024-10-24 20:02:37

v$sql_bind_capture 获取绑定变量信息的相关文章

v$sql_bind_capture 获取绑定变量

SQL> connect sys/oracle@mytest172.16.14.29 as sysdba已连接.SQL> variable o varchar2(30)SQL> exec :o :='SYS' PL/SQL 过程已成功完成.SQL> select  * from v$mystat;        SID STATISTIC#      VALUE---------- ---------- ----------       309          0        

Oracle获取绑定变量的各种方法

Oracle获取绑定变量的各种方法 当Oracle解析和执行含有绑定变量的目标SQL时,如果满足如下两个条件之一,那么该SQL中的绑定变量的具体输入值就会被Oracle捕获: l 当含有绑定变量的目标SQL以硬解析的方式被执行时. l 当含有绑定变量的目标SQL以软解析或软软解析的方式重复执行时,Oracle在默认情况下至少得间隔15分钟才会捕获一次.这个15分钟受隐含参数"_CURSOR_BIND_CAPTURE_INTERVAL"控制,默认值为900秒,即15分钟. SYS@orc

如何获取绑定变量

oracle 在10g 时 可以捕获绑定变量并且存到AWR中,但是有诸多不便:        Captured periodically(_cursor_bind_capture_interval), not at real time.    Captured under maximum size(_cursor_bind_capture_area_size)    Only bind variables in WHERE clause are captured做如下实验来演示如何获取 绑定变量

浅析C#绑定变量和匿名块获取获取序列当前值

我们将谈到C#绑定变量和匿名块获取获取序列当前值,首先需要在Oracle中进行一系列的操作,接下来是C#绑定变量的具体操作. 1.在Oracle中建立表.序列.触发器: SQL> create table TESTTAB ( ID NUMBER, NAME VARCHAR2(10) ); 表被创建 SQL> create sequence TESTTABSEQ minvalue 1 maxvalue 999999999999999999999999999 start with 1 increm

钉钉手机端应用获取当前用户信息流程

先吐个槽,钉钉的"开发者中心"是直接对接的阿里云的后台,跳来跳去很容易懵圈,再加上钉钉的文档,它内容倒是有,但是组织方式不是按流程来的,而是按模块来的,这样的结果就是你要通过文档去了解某个完整的流程怎么处理,也要跳来跳去,转一圈下来看得都有点恶心了. 这里说的"获取当前用户信息",最有价值的一点,是获取手机端当前用户的在某企业的一个工号(至于到底是不是工号,或者其它的标识,那是管理员在后台自己维护的).有了这个用户标识,就可以实现"直接登录"等功

【云和恩墨大讲堂】复合索引与绑定变量

编辑手记:2016 Oracle 技术嘉年华活动已经结束,为了让更多的技术爱好者有机会获取大会干货资源,我们将不断邀请演讲嘉宾展开"2016 Oracle 线上嘉年华". 讲师简介 邓秋爽(小鱼) 云和恩墨专家,有超过5年超大型数据库专业服务经验,擅长oracle 数据库优化.SQL优化和troubleshooting 今晚的恩墨大讲堂将有我为大家分享SQL审核中的两个典型案例,如下: 1复合索引前导列选择 2绑定变量分享--某业务SQL性能问题分析 在介绍这两个case之前先对目前我

[20150812]关于抓取绑定变量.txt

[20150812]关于抓取绑定变量.txt --通过视图v$sql_bind_capture以及DBA_HIST_SQLBIND可以抓取到sql语句的绑定变量.受到一些参数的限制,曾经写过一篇: [20130410]v$sql_bind_capture和隐含参数_bind_capture_area_size.txt http://blog.itpub.net/267265/viewspace-758175/ SCOTT@test> @ver1 PORT_STRING              

通过runtime获取对象相关信息

通过runtime获取对象相关信息 在这里,本人给大家提供一个runtime关于NSObject的扩展,用来显示各种NSObject中的信息,这有助于你来分析类的组成:) 先准备以下类供测试: Model.h 与 Model.m // // Model.h // Runtime // // Copyright (c) 2014年 Y.X. All rights reserved. // #import <Foundation/Foundation.h> typedef enum : NSUIn

获取MYSQL表信息

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之