ora-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3562319
  • 博文数量: 725
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7865
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(725)

文章存档

2024年(10)

2023年(74)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2024-02-19 09:37:20

open_cursors 指定会话一次可以打开的最大游标数,看看参数说明:

专用sql区在哪?

图17-6说明如下
是pga中的一小部分


看图容易理解为服务器进程来管理private sql area。

session_cached_cursors 每个会话的缓存关闭游标的最大数目,参数说明如下:

两个参数之间无关,且可以将session_cached_cursors设置为高于 open_cursors
v$open_cursor 按会话显示缓存的游标,而不是当前打开的游标,应该如下:

  1. -- total cursors open, by session

  2. col username for a22
  3. col program for a35
  4. select a.value, s.username, s.sid, s.serial#, s.program
  5. from v$sesstat a, v$statname b, v$session s
  6. where a.statistic# = b.statistic# and s.sid=a.sid
  7. and b.name = 'opened cursors current' and a.value<>0 order by 1 ;

  8. -- total cursors open, by username & machine
  9. col machine for a32 trunc
  10. select sum(a.value) total_cur, avg(a.value) avg_cur, max(a.value) max_cur, s.username, s.machine
  11. from v$sesstat a, v$statname b, v$session s
  12. where a.statistic# = b.statistic# and s.sid=a.sid
  13. and b.name = 'opened cursors current'
  14. group by s.username, s.machine
  15. order by 1 desc;

  16. col max_open_cur for a20
  17. select max(a.value) as highest_open_cur, p.value as max_open_cur
  18. from v$sesstat a, v$statname b, v$parameter p
  19. where a.statistic# = b.statistic#
  20. and b.name = 'opened cursors current'
  21. and p.name= 'open_cursors'
  22. group by p.value;

  23. 要查看是否将open_cursors设置得足够高,请监视 v$sesstat 以获取当前打开的最大游标数。如果您的会话运行接近限制,则将值提高到 open_cursors

监视会话游标缓存 (session_cached_cursors) ,同样,依据stat信息
  1. --session cached cursors, by session
  2. select a.value, s.username, s.sid, s.serial#
  3. from v$sesstat a, v$statname b, v$session s
  4. where a.statistic# = b.statistic# and s.sid=a.sid
  5. and b.name = 'session cursor cache count' and a.value<>0 order by 1;
 
  col user_name for a22
  col sql_text for a80
  col sql_id for a13
  1. select c.user_name, c.sid, sql.sql_text,c.sql_id,c.hash_value
  2. from v$open_cursor c, v$sql sql
  3. where c.sql_id=sql.sql_id -- for 9i and earlier use: c.address=sql.address
  4. and c.sid=&sid;
调整会话游标缓存 (session_cached_cursors)
如果选择使用 session_cached_cursors 来帮助不断关闭和重新打开游标的应用程序,则可以通过 v$sesstat 中的另外两个统计信息来监视其有效性。统计信息“会话游标缓存命中数”反映了在会话游标缓存中找到会话发送用于解析的语句的次数,这意味着不必重新解析该语句,并且您的会话也不必在库缓存中搜索该语句。您可以将其与统计数据“parse count (total)”进行比较;从“parse count (total)”中减去“会话游标缓存命中数”,查看实际发生的解析次数。


  1. --确定特定会话中当前缓存的游标数
  2. col max_cached for a12
  3. select a.value curr_cached, p.value max_cached,
  4.  s.username, s.sid, s.serial#
  5.  from v$sesstat a, v$statname b, v$session s, v$parameter2 p
  6.  where a.statistic# = b.statistic# and s.sid=a.sid and a.sid=&sid
  7.  and p.name='session_cached_cursors'
  8.  and b.name = 'session cursor cache count' ;

 --查找在会话游标缓存中找到游标的解析调用的百分比
  1. select cach.value cache_hits, prs.value all_parses,round((cach.value/prs.value)*100,2) as "% found in cache"
  2. from v$sesstat cach, v$sesstat prs, v$statname nm1, v$statname nm2
  3. where cach.statistic# = nm1.statistic#
  4. and nm1.name = 'session cursor cache hits'
  5. and prs.statistic#=nm2.statistic#
  6. and nm2.name= 'parse count (total)'
  7. and cach.sid= &sid and prs.sid= cach.sid;
当以下陈述为真时,请考虑增加session_cursor_cache:
* 会话游标缓存计数接近最大值。
* 会话游标缓存命中率相对于总解析数的百分比较低。
* 应用程序重复对相同的查询进行分析调用。

如果会话游标缓存计数已达到最大值,与所有分析相比,session_cursor_cache_hits较低,并且您怀疑应用程序正在重新提交相同的查询以重复进行分析,则增加session_cursor_cache_count可能有助于解决闩锁争用问题,并略微提高性能。请注意,如果您的应用程序没有重新提交相同的查询以进行重复分析,则session_cursor_cache_hits将很低,并且会话游标缓存计数可能会达到最大值,但按会话缓存游标将根本无济于事。例如,如果应用程序使用大量不可共享的 sql,则提高此参数将无济于事。

参考:如何监视和调整打开和缓存的游标(文档 id 1430255.1)
阅读(50) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图