- 最后登录
- 2014-6-20
- 在线时间
- 91 小时
- 威望
- 0
- 金钱
- 352
- 注册时间
- 2013-5-20
- 阅读权限
- 10
- 帖子
- 34
- 精华
- 0
- 积分
- 0
- UID
- 1100
|
1#
发表于 2013-11-29 18:18:01
|
查看: 3671 |
回复: 2
OS:HP-UX
oracle:11.2.0.1.0
设置session_cached_cursors参数后,一个cursor可以被session cache 从而解析的时候可以变为软软解析,使一个cursor一次解析,多次执行- SQL> create table t (id number);
- Table created.
- SQL> select * from t
- 2 /
- no rows selected
- SQL> select parse_calls,executions from v$sql where sql_text='select * from t';
- PARSE_CALLS EXECUTIONS
- ----------- ----------
- 1 1
复制代码 ......连续执行6次- SQL> select parse_calls,executions from v$sql where sql_text='select * from t';
- PARSE_CALLS EXECUTIONS
- ----------- ----------
- 6 6
复制代码 此时,解析的次数和执行次数是相同的,并没有预想的使用软软解析,一次解析,多次执行的目的
此时查看这个cursor的状态- SQL> select sql_text, cursor_type
- 2 from v$open_cursor
- 3 where sql_text='select * from t'
- 4 /
- SQL_TEXT CURSOR_TYPE
- -------------------- ------------------------------
- select * from t SESSION CURSOR CACHED
复制代码 此时cursor是SESSION CURSOR CACHED类型,已经具备了成为session_cached_cursors的资格,那为什么同一个session去执行这行的时候,在v$sql里的parse_calls依然要增加
请各位老师帮忙解答一下 |
|