3)、FORCE:force是在任何情况下,无条件重用SQL。 备注:上面所说的SQL重用,仅仅是指谓词条件不同的SQL语句,实际上这样的SQL基本上都在执行同样的业务操作。 二、在Cursor_sharing参数值不同的时对SQL的影响: 2.1 创建实验环境: ---首先创建一张jack表--- 1 SQL>createtable jack (idint,namevarchar2(10));...
执行上述sql语句之后,使用select NAME,value from v$sysstat where name='parse count (hard)'查询,其硬解析的值依然是10207,这个就是将cursor_sharing的值为force 的作用,只要sql语句相同,不管谓词值是否相同,都会当成相同的sql,重用之前的cursor,不会进行硬解析。
Cursor_sharing参数有3个值可以设置: 1)、EXACT:通常来说,exact值是Oracle推荐的,也是默认的,它要求SQL语句在完全相同时才会重用,否则会被重新执行硬解析操作。 2)、SIMILAR:similar是在Oracle认为某条SQL语句的谓词条件可能会影响到它的执行计划时,才会被重新分析,否则将重用SQL。 3)、FORCE:force是在任何情况下,...
(4)If stored outlines were generated with CURSOR_SHARING set to EXACT, then the database does not use stored outlines generated with literals. To avoid this problem, generate outlines with CURSOR_SHARING set to FORCE or SIMILAR and use the CREATE_STORED_OUTLINES parameter. When deciding whether ...
ORACLE cursor_sharing参数导致函数索引失效 数据库版本为:11.2.0.4 当cursor_sharing为SIMILAR或者FORCE时候,将会导致函数索引失效; 表doc_order_header列有LASTSHIPMENTTIME得函数索引; 当时通过v$session视图发现,过滤条件to_char(h.lastshipmenttime,:"YYYY-MM-DD")=xxx被转换为...
oracle cursor_sharing 参数oracle cursor_sharing 在Oracle数据库中,`CURSOR_SHARING`是一个数据库参数,用于控制SQL语句中的字面值替换(Literal Replacement)策略。这个参数的值决定了Oracle是否尝试共享SQL语句中相似的SQL区块(SQL片段),以提高SQL语句的共享度,减少数据库资源的消耗。 `CURSOR_SHARING`参数有以下几个...
2.2 cursor_sharing=exact的情况: 复制代码 ---将cursor_sharing设置为exact--- SQL> alter session set cursor_sharing=exact; Session altered. SQL> alter session set sql_trace=true; Session altered. SQL> select * from weisi_t_exact where id=1; ID ...
从Oracle9i开始,CURSOR_SHARING的值增加了一个SIMILAR,Oracle推荐使用SIMILAR来代替FORCE,当参数设置为SIMILAR时,Oracle不会强制将全部的变量进行绑定,而是根据一些预定义的设置进行判断。 无论是FORCE参数还是改进后的SIMILAR参数,都是解决绑定变量的替代方式,这些方式都可能带来一些bug以及很多未知的东西。只有有可能就应该...
1.1 CURSOR_SHARING CURSOR_SHARING determines what kind of SQL statements can share the same cursors. Values: (1)FORCE Allows the creation of a new cursor if sharing an existing cursor, or if the cursor plan is not optimal. (2)SIMILAR ...
CURSOR_SHARING该参数决定在什么情况下可以使用共享游标,即 SQL 重用。它有三个值:EXACT, SIMILAR 和 FORCE.默认情况下, oracle 将该参数值是 EXACT. 意思是 SQL 必须绝对一样才能共享游标,否则将作为新的 SQL 语句处理。这种设置的意义在于, 从 Oracle 层面来看,通过精确地匹配每个 SQL 语句,就可以保证只有语句...