发现了一个隐含参数_disable_cursor_sharing可以用来禁止游标的共享,不过这个隐含参数没有什么意义,
违背了ORACLE尽量游标共享的理念。
下面看一下这个参数的作用:
SQL> show parameter disable_cursor_sharing
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_disable_cursor_sharing boolean TRUE
SQL> variable id number
SQL> exec :id:=1;
PL/SQL procedure successfully completed.
SQL> select * from t where id=:id;
no rows selected
SQL> select sql_text,executions from v$sql where sql_text='select * from t where id=:id';
SQL_TEXT EXECUTIONS
------------------------------ ----------
select * from t where id=:id 1
SQL> exec :id:=2;
PL/SQL procedure successfully completed.
SQL> select * from t where id=:id;
no rows selected
SQL> select sql_text,executions from v$sql where sql_text='select * from t where id=:id';
SQL_TEXT EXECUTIONS
------------------------------ ----------
select * from t where id=:id 1
select * from t where id=:id 1
仅供参考。
阅读(1421) | 评论(0) | 转发(0) |
博客介绍了Oracle数据库中隐藏参数:disable_cursor_sharing的使用,指出该参数用于禁止游标共享,但这样做并不符合Oracle提倡的游标共享理念。通过示例展示了当该参数为TRUE时,相同SQL语句的不同执行不会被合并,导致v$sql视图中记录数增加,影响性能。
1188

被折叠的 条评论
为什么被折叠?



