alter system set session_cached_cursors = 0 scope=spfile; System altered.
重启
22:23:42 SQL> show parameter session_cached_cursor; NAME TYPE VALUE ------------------------------ ----------- ------------------------------ session_cached_cursors integer 0
conn scott/tiger 22:25:37 SQL> select * from test where owner='SCOTT';
再在32会话执行3遍以上cursor_type还是open的,说明session_cached_cursor设置为0不cached cursor
再在36会话执行sql open了cursor。
然后绑定变量方式执行
var b1 varchar2(20); exec :b1 :='SYS'; select * from test where owner =:b1
然后在绑定b1=scot
t,新回话35,会发现有两条记录都是open的,是软解析
以上说明open cursor在发生sql解析的时候,就要open 不同会话相同的sql语句(在执行不超过3次)也要open多次。上面的实验我在同一个会话执行相同的sql有超过3次以上,但是session_cached_cursor为0, cursor_type都是open的,没有被cached的,下面将这个参数设置为100.
设置参数重启
在sid 32上多次执行sql,结果cursor 被cached了。当
相同的会话
,再有相同的sql过来,便不解析了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29990276/viewspace-1659596/ ,如需转载,请注明出处,否则将追究法律责任。