ZKX's LAB

绑定变量窥视 查询计划错误有哪些原因?

2020-10-05知识20

oracle子游标堆0放了什么信息 Oracle共享游标总结(关于游标、父游标、子游标和共享游标)首先,明确一个概念,这里讨论的游标主要是共享游标(shared cursor),跟SQL语句中定义的游标(session cursor)不是一个概念。共享游标是用户提交SQL或PL/SQL程序块到Oracle的share pool之后,在library cache中生成的一个可执行对象,这个对象我们称之为游标(cursor)。而SQL定义游标则是SELECT语句产生的多行结果集,需要声明、打开、提取、关闭。游标定义与分类游标包括shared cursor和session cursor:shared cursor即是共享游标,是SQL语句在游标解析阶段生成获得的,是位于library cache中的sql或匿名的pl/sql等。其元数据被在视图V$sqlarea与v$sql中具体化。如果library cache中的父游标与子游标能够被共享,此时则为共享游标。父游标能够共享即为共享的父游标,子游标能够共享即为共享的子游标。session cursor即系统为用户分配缓存区,用于存放SQL语句的执行结果。用户可以通过这个中间缓冲区逐条取出游标中的记录并对其处理,直到所有的游标记录被逐一处理完毕。session cursor指的跟这个session相对应的server process的PGA里(准确的说是UGA)的一块内存区域(或者说内存结构)即其主要特性。

绑定变量窥视 查询计划错误有哪些原因?

ORACLE绑定变量窥视有什么作用? 如果第一次的真实值恰好是比较特殊的值,那这将严重影响产生的执行计划和以后的执行效率.不过根据描述感觉oracle11g要实现这个效果对每个SQL的解析及内存都增加了,另外以后对于同样的SQL要增加直方图的判断,执行计划CUBE的判断,如果结果不一样那就优化了,但如果判断的结果一样,那等于重复做了这些工作,感觉实际应用中99.9%的结果是一样的,所以11g这样做增加内存增加每个SQL的判断时间值不值,特别是对于高并发的业务系统,大部份的SQL的执行时间都很小。对上都只是我的假想,不过感觉绑定变量窥视的作用的真的不明显,在OLTP系统中对于特殊值还是不用绑定变量更好,在OLAP中如果特殊值很多建议不要用绑定变量更好。11g的改进不太清楚效果,不过感觉成本比较高。

绑定变量窥视 查询计划错误有哪些原因?

如何关闭 oracle 绑定变量窥视 bind peeking 查看Oracle SQL绑定变量方法如下:alter session set nls_date_format='yyyy-mm-dd,hh24:mi:ss';set linesize 400col sql_Id format a20col name format a20col datatype_string format a14col value_string format a20这个sql从内存中读取绑定变量值信息,若是不在内存中,则使用下一个sqlselectsql_id,name,datatype_string,last_captured,value_string fromv$sql_bind_capture where sql_id='dxfcacn4t4ppw' order byLAST_CAPTURED,POSITION;这个sql从awr中读取绑定变量值信息selectinstance_number,sql_id,name,datatype_string,last_captured,value_string from dba_hist_sqlbind wheresql_id='fahv8x6ngrb50'order by LAST_CAPTURED,POSITION;

绑定变量窥视 查询计划错误有哪些原因?

如何评价2019年7月新番《君主 埃尔梅罗二世事件簿 魔眼收集列车 Grace note》?

Oracle绑定变量有哪些用法?

#oracle#变量#sql语言#游标#sql优化

随机阅读

qrcode
访问手机版