如何获取绑定变量

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
做如下实验来演示如何获取 绑定变量。
sys@ORACL> var  bid number;
sys@ORACL> var eid number;
sys@ORACL> exec :bid :=dbms_workload_repository.create_snapshot;

PL/SQL 过程已成功完成。

sys@ORACL> var b1 number;
sys@ORACL> var b2 number;
sys@ORACL> var b3 varchar2(1);

sys@ORACL> begin
  2  :b1 :=1;
  3  :b2 :=2000;
  4  :b3 :='s';
  5  end;
  6  /

PL/SQL 过程已成功完成。
sys@ORACL> update yang.t set object_name= :b3 where object_id between :b1 and :b2;
已更新119680行。
sys@ORACL> commit;
提交完成。
sys@ORACL> exec :eid :=dbms_workload_repository.create_snapshot;
PL/SQL 过程已成功完成。

sys@ORACL> var sqlid varchar2(100);

sys@ORACL> begin
  2  select sql_id into :sqlid
  3  from dba_hist_sqltext
  4  where sql_text like 'update yang.t%';
  5  end;
  6  /

PL/SQL 过程已成功完成。

sys@ORACL> print sqlid;

SQLID
--------------------
1bgn2wm9nad9j

sys@ORACL> col name for a10
sys@ORACL> col postion for a99
sys@ORACL> col value_string for a20

sys@ORACL> select snap_id,name,position,value_string,last_captured
  2  from dba_hist_sqlbind
  3  where sql_id=:sqlid
  4  order by snap_id desc;

   SNAP_ID NAME      POSITION VALUE_STRING         LAST_CAPTURED
---------- ---------- ---------- -------------------- --------------
       105 :B3                 1
       105 :B2                 3                2000                 10-3月 -11
       105 :B1                 2                 1                    10-3月 -11

时间: 2024-10-13 13:19:06

如何获取绑定变量的相关文章

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

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

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字句

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        

浅析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

oracel中sql语句和pl/sql语句使用绑定变量

关于绑定变量的用法: 之前的文章介绍了绑定变量对于系统的重要性,这里对绑定变量的使用做进一步的分析和说明. 1)在sql语句中如何带入bind value SQL> variable x number; SQL> exec :x:=100; PL/SQL procedure successfully completed. SQL> select * from t where id=:x; no rows selected SQL> exec :x:=101; SQL> sel

控制- 怎么在<%%>中获取绑定的数据源的某个字段的值

问题描述 怎么在<%%>中获取绑定的数据源的某个字段的值 我后台页面上给前台的一个DataList 绑定了数据源 前台用DataList 循环了一个列表 现在我想做一个根据每次循环出来的一个字段 来控制列表中每次都循环的一些Html代码是否显示 现在遇到的问题是 我申明了变量来接收这个字段的值,但是不知道用什么方式来取出这个值(我的变量赋值是写在<%%>里面的),有没有什么更好的解决方法呢? 解决方案 参考这个案例: http://blog.csdn.net/wang4978/ar

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

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

php 如何获取一个变量的名字

PHP中,所有的变量都存储在"符号表"的HastTable结构中,符号的作用域是与活动符号表相关联的.因此,同一时间,只有一个活动符号表. 我们要获取到当前活动符号表可以通过 get_defined_vars 方法来获取. get_defined_vars // 返回所有已定义的变量所组成的数组 根据变量的值查找变量名字,但要注意,有可能有相同值的变量存在. 因此先将当前变量的值保存到一个临时变量中,然后再对原变量赋唯一值,以便查找出变量的名字,找到名字后,将临时变量的值重新赋值到原变

如何在OLTP OR OLAP上绑定变量

我在这里不会介绍OLTP和OLAP的概念,这些入行的DBA都是必懂的.今天的话题是绑定变量为什么适合在OLTP系统而不宜于OLAP系统.从某种角度上我们可以这样看待OLTP和OLAP系统,OLTP系统小查询多而OLAP系统基本都是大查询,而它们致命的区别就是执行时间上(结果集有很大的区别),所以我们也可以说OLTP系统适合短查询.OLAP系统则适合长查询.不管怎样,在OLTP系统,我们需要注重小查询的快速执行,为此而能够做的优化操作之一就是提高SQL命中率.使用索引(索引访问小结果集),而绑定变