2. 共享池(Shared Pool) 2.1 共享池工作机制详细举例 1. 重做日志缓冲区(Redo Log Buffer) 1.1 概述 重做日志缓冲区是Oracle数据库中用于存储用户对数据库所作修改的临时区域。在用户执行数据操作语言(DML)或数据定义语言(DDL)命令时,如INSERT、UPDATE、DELETE,或者CREATE、DROP、ALTER等操作,数据库首先会将这些操...
前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取 基本参数请看如下链接:http://www.zhaibibei.cn/oralce/oracle-parameter/ 如无特殊说明数据库版本为11.2 shared_pool_size 该参数指定shared pool的大小 代码语言:javascript 复制 1.参数类型:整型 2.语法:SHARED_POOL_SIZE=integer[K|...
在第二个案例中,由于shared pool设置过小还导致了shared pool latch处于top wait event中的第二名。Sharedpool latch是用来干嘛的呢?Shared pool latch用来保护共享池的结构,在分配,释放共享池空间的时候就会获得该latch,那么在这个案例中,由于共享池太小,在对一个新的SQL进行硬解析的时候需要老化某些对象,为新对象...
shared_pool_size 指定了共享池的内存大小,该内存用于缓存SQL和PL/SQL语句的执行计划、数据字典信息以及其他控制结构。 重要性:合理设置 shared_pool_size 可以显著提高数据库的性能,减少硬解析的开销,提高SQL语句的执行效率。2. 确定Oracle数据库的版本和当前 shared_pool_size 的设置 首先,需要确定Oracle数据库的...
共享池(Shared pool)是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据字典缓存组成。其中库缓存的作用是存 放频繁使用的sql,pl/sql代码以及执行计划。数据字段缓存用于缓存数据字典。在内存空间有限的容量下,数据库系统根据一定的算法决定何 ...
本文中,我们将讨论共享池(Shared Pool)中的各种内存保护结构,即Latches,Locks,Pins和Mutexes。 1. Lathes 当在库缓冲(Libraray Cache)中创建新对象而没有足够的自由内存(没有足够大的单个自由内存块(Chunk of Free Memory))时,Oracle就会用LRU算法从相应哈希链表上分离(Delink)已有对象,并将新对象加入哈希链表上...
26.5 优化共享池(Shared Pool)在 Oracle数据库系统架构中,共享池由两部分组成:库高速缓存和数据字典高速缓存。其中库高速缓存存放 SQL语句的正文、编译后的代码以及最终的执行计划,而数据字典高速缓存存放与 SQL语句操作相关的数据库对象,如表、索引、列以及其他对象的定义和权限信息。对于库高速缓存而言,重用 SQL语句...
Shared Pool主要由两部分组成,一部分是库缓存(Library Cahce),另一部分是数据字典缓存(Data Dictionary Cache)。Library Cache主要用于存储SQL语句、SQL语句相关的解析树、执行计划、PL/SQL程序块(包括匿名程序块、存储过程、包、函数等)以及它们转换后能够被Oracle执行的代码等,这部分信息可以通过v$librarycache视图查询...
shared pool中容易出问题的是free和library cache; 1.free(shared pool中空闲的内存部分) Q:何时需要从free中找chunk呢? A:在硬解析的时候。 注意:如果硬解析失败,会报一个非常经典的错误Ora-4031。 产生这个错误的原因:①系统产生大量的硬解析;②大量的硬解析产生了大量碎片,此时又来一个大的sql需要解析,而fr...
Oracle数据库统计信息_执行计划_sharedpool等的知识梳理 背景 最近有项目出现了年底业务量增加时卡顿的情况. 同事多次发现执行SQL缓慢. 但是重新执行统计信息更新后问题就优化的现象. 12月份上半月解决测试环境的SQLServer卡顿时基本上也是这个套路 重建索引, 添加必要索引的方式进行优化. ...