龙空技术网

oracle 优化笔记

RomMr 339

前言:

目前姐妹们对“oracle优化书籍”大概比较关心,你们都需要学习一些“oracle优化书籍”的相关资讯。那么小编在网上汇集了一些关于“oracle优化书籍””的相关知识,希望各位老铁们能喜欢,各位老铁们快快来学习一下吧!

大家好,我是RomMr,一个乐于分享的it男,今天和大家分享的是session_cached_cursors和open_cursors优化详解

1、session_cached_cursors和open_cursors优化

1.1、session_cached_cursors定义

session_cached_cursors参数是控制一个session可以缓存多少个cursor(默认值50),这样可以让后续的SQL不在打开游标,从而避免软解析的过程来提高性能。

oracle有session cursor cache(管理策略LRU)的概念,也就是在内存有有一块区域用来储存关闭了的cursor。当一个cursor关闭之后,oracle会检查这个cursor的request次数是否超过三次,如果超过了三次,就会被放入session cursor cache,这样下次parse的时候,就可以直接从session cursor cache找到这个statement了。session_cached_cursors就是控制session cursors cache的大小的参数,它定义了session cursor cache可以缓存的cursor的个数,值越大消耗内存就越多。

1.2、session_cached_cursors参数设置

正确设置session_cached_cursors参数要把握下面三个原则:

1、考虑数据库服务器内存大小

2、session_cached_cursors<open_cursors

open_cursors它是控制每个session最多能同时打开多少个cursor,如果设置太小则会系统性能有不小的影响,且可能会触发ORA-01000的错误,如果设置太大则会消耗系内存。open_cursors可以通过以下sql来查看是否设置合理:

MAX_OPEN_CUR是实际打开的cursors 的最大值,SET_OPEN_CUR是参数open_cursors的设定值,如果二者太接近,甚至触发eRA一01000错误,那么你就应该调大参数open_cursors的设定值。但是不能盲目增大open_cursors的值,你需要与应用沟通是够存在对应的应用程序在打开游标后,却始终没有进行关闭,可以使用下面的sql查询正在打开游标的会话:

3、使用相应sql查询session_cached_cursors使用率是否合理:

session cursor cache hits就是系统在内存找到相应cursors的次数,parse count(total)就是总的解析次数,二者比值越高,性能越好。如果比例比较低,并且有较多剩余内存的话,可以考虑加大该参数。

1.3、同时判断open_cursors和session_cached_cursors参数设置是否合理

如果参数使用率为100%则增大相应参数值。

今天分享就到这里,希望能对大家有所帮助,也希望大家多多支持,你们的关注,点赞,转发,收藏是我持续更新的动力!

标签: #oracle优化书籍