请注意,本文编写于 497 天前,最后修改于 497 天前,其中某些信息可能已经过时。
SGA包括:
1 数据结构部分 fixed size
2 数据块缓冲区 database buffers
3 redo log缓冲区 redo buffers
4 共享池 variable size
永久使用的共享内存:进程信息数据、会话信息数据、特殊用途的内存段
随着共享池碎片化加剧:产生ORA-4031错误
1 加大初始的分配值
2 每次扩展一个组
共享池内部结构:
1 PERMANENT
2 FREEABLE
3 RECERATEABLE
4 FREEABLE WITH MARK
通过内部视图 X$KSMSP监控共享池碎片的情况
较大的共享池会带来一定的系统开销
共享池闩锁竞争也会增加
定期刷新共享池会有助于保持共享池性能的稳定
共享池相关闩锁的平均等待时间、超时的次数---判断共享池碎片化程度
游标:一个父游标,多个子游标
用户的不同,通过一个SQL得到的结果就不同,因此不能共享;执行计划不同,也不可以共享
共享池2
硬解析:执行SQL时,SQL已经不再共享池中,会产生硬解析。首先分配共享池空间,创建父游标,创建子游标
软软解析:父游标存在,子游标也存在
软解析:父游标存在,子游标不可共享
游标共享技术ACS
游标不会马上关闭,会先放在游标缓存中,等待回话完成后,在关闭
OPEN_CURSORS会话打开的游标数量
SESSION_CACHED_CURSORS回话缓冲,主要功能:将会话中的常用的SQL放入UGA中的会话缓冲区中,以便下次调用
CURSOR_SPACE_FOR_TIME 当父游标被打开的时候,所有子游标及其相关联的对象全部被锁住,从而确保游标相关的信息都是一致的