Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

11

主题
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一次解析,多次执行
  1. SQL> create table t (id number);

  2. Table created.

  3. SQL> select * from t
  4.       2  /

  5. no rows selected

  6. SQL> select parse_calls,executions from v$sql where sql_text='select * from t';

  7. PARSE_CALLS EXECUTIONS
  8. ----------- ----------
  9.           1          1
复制代码
......连续执行6次
  1. SQL>  select parse_calls,executions from v$sql where sql_text='select * from t';

  2. PARSE_CALLS EXECUTIONS
  3. ----------- ----------
  4.           6          6
复制代码
此时,解析的次数和执行次数是相同的,并没有预想的使用软软解析,一次解析,多次执行的目的


此时查看这个cursor的状态
  1. SQL> select sql_text, cursor_type
  2.   2    from v$open_cursor
  3.   3   where sql_text='select * from t'
  4.   4  /

  5. SQL_TEXT             CURSOR_TYPE
  6. -------------------- ------------------------------
  7. select * from t      SESSION CURSOR CACHED
复制代码
此时cursor是SESSION CURSOR CACHED类型,已经具备了成为session_cached_cursors的资格,那为什么同一个session去执行这行的时候,在v$sql里的parse_calls依然要增加

请各位老师帮忙解答一下
2#
发表于 2013-12-1 10:33:19

回复 只看该作者 道具 举报

3#
发表于 2013-12-2 16:31:21
谢谢刘大,看了以后明白了

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-5-19 17:32 , Processed in 0.058402 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569