ITPub博客

首页 > 数据库 > Oracle > open_cursor & session_cached_cursor实验

open_cursor & session_cached_cursor实验

原创 Oracle 作者:哎呀我的天呐 时间:2015-05-17 23:09:45 0 删除 编辑
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/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: over (partition by)
请登录后发表评论 登录
全部评论
https://cloud.tencent.com/developer/inventory/14362

注册时间:2014-10-30

  • 博文量
    403
  • 访问量
    2528725