2. 共享池(Shared Pool) 2.1 共享池工作机制详细举例 1. 重做日志缓冲区(Redo Log Buffer) 1.1 概述 重做日志缓冲区是Oracle数据库中用于存储用户对数据库所作修改的临时区域。在用户执行数据操作语言(DML)或数据定义语言(DDL)命令时,如INSERT、UPDATE、DELETE,或者CREATE、DROP、ALTER等操作,数据库首先会将这些操...
2)也被称为解析(Parse)Locks的库缓冲Locks用于维护对象及其依赖对象的依赖机制。 5. 为什么需要库缓冲Pins(KGL Pins)? 当一个对象被实际使用时,KGL Pin才会发挥作用。虽然KGL Locks将持有内存中的对象(PGA中的游标指向共享池中的对象),但如果系统上内存压力较大,对象的某些动态创建部分(例如:SQL语句的执行计划)也...
内存结构包括:SGA和PGA(共享和进程) SGA:系统全局区System Global Area/Shared Global Area 由所有服务器进程(前台进程)和后台进程共享 SGA包括六大pool(池) (1) Shared Pool 共享池 (2) Database Bufffer cache 数据库缓冲区 高速缓存 (3) Redulog Buffer 重做日志缓冲区 (4) Streams池 (5) 大型池(Large...
Oracle Shared Pool之Library Cache 1. Shared Pool组成 Shared Pool由许多区间(Extent)组成,这些区间又由多个连续的内存块(Chunk)组成,这些内存块大小不一。从逻辑功能角度,Shared pool主要包含三个部分:Library Cache,Dictionary Cache和Control Structure。而这里,我们主要介绍其中的Library Cache。 2. Library Cache L...
要查看Oracle数据库中Shared Pool的大小及使用情况,可以通过执行一些特定的SQL查询来实现。以下是如何执行这些查询的步骤: 1. 连接到Oracle数据库 首先,你需要通过Oracle的客户端工具(如SQL*Plus、SQL Developer等)连接到你的Oracle数据库。确保你有足够的权限来执行这些查询。 2. 执行SQL查询以查看Shared Pool的大小...
共享池(Shared pool)是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据字典缓存组成。其中库缓存的作用是存 放频繁使用的sql,pl/sql代码以及执行计划。数据字段缓存用于缓存数据字典。在内存空间有限的容量下,数据库系统根据一定的算法决定何 ...
26.5 优化共享池(Shared Pool)在 Oracle数据库系统架构中,共享池由两部分组成:库高速缓存和数据字典高速缓存。其中库高速缓存存放 SQL语句的正文、编译后的代码以及最终的执行计划,而数据字典高速缓存存放与 SQL语句操作相关的数据库对象,如表、索引、列以及其他对象的定义和权限信息。对于库高速缓存而言,重用 SQL语句...
shared_pool_size 该参数指定shared pool的大小 代码语言:javascript 复制 1.参数类型:整型 2.语法:SHARED_POOL_SIZE=integer[K|M|G] 3.默认值:见下面介绍 4.是否可修改:ALTERSYSTEM修改 5.取值范围:最小granule大小 最大 操作系统限制 6.是否为基本参数:否 ...
Shared Pool是利用堆内存管理方式管理的(KGH:Kernel Generic Heap).从Oracle 9i开始,可以有多个最高级堆(TOP-LEVLE HEAP),最高级堆可以分成多个副堆,副堆下面还拥有子堆。堆和副对结构基本相同。从物理上讲,一个堆由多个内存区已link list的形式连接组成。一个内存区物理上使用一个Granule,一个内存区由多个chun...
本文中,我们将讨论共享池(Shared Pool)中的各种内存保护结构,即Latches,Locks,Pins和Mutexes。 1. Lathes 当在库缓冲(Libraray Cache)中创建新对象而没有足够的自由内存(没有足够大的单个自由内存块(Chunk of Free Memory))时,Oracle就会用LRU算法从相应哈希链表上分离(Delink)已有对象,并将新对象加入哈希链表上...