暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
05.MemoryManagement
576
63页
2次
2019-09-19
10墨值下载
5
5
内存管理
内存管理
Oracle 数据库实例启动,就 ,启 如何分配和设置共享内
存参数,对于 Oracle 来说非常重要的。不当的内存分配轻则影响性能,重则导致数据库故
障,在生产实际中不容忽视。
Oracle 数据库所使用的内存主要涉及两个方面:PGA SGA。本 Oracle 的内存管理
问题进行探讨。
5.1 PGA 管理
PGA 指的是程序全局区(Program Global Area), Server Process)使用的
一块包含数据和控制信息的内存区域PGA 是非共享的内存,在服务器进程启动或创建时分
配(在系统运行时,排序、连接等操作也可能需要进一步的 PGA 分配),并为 Server Process
排他访问,所以 PGA 中的数据结构不需要通过 Latch 来保护
5.2.1 什么是 PGA
进程的创建通常有两种模式:专用服务器模式(Dedicated Server)及共享服务器模式
Shared Server)。 Oracle 会为每个会话启动一个 Oracle 进程;而在共享
服务器模式下,通常在服务器端启动一定数量的服务器进程,然后由多个客户端请求共享同一
Oracle 服务进程。通常数据库都应当运行在专用服务器模式下。PGA 的内容依专用模式和
共享服务器模式而有所不同但是通常来说PGA 中包含私有 SQL (存放绑定信息、运行时
内存结构等)Session 信息等内容。
从内存分配与使用上 PGA 可以被区分为两个区域:
! 固定 PGAFixed PGA- 固定 PGA 和固定 SGA 类似,包含了大量原子变量、小的
数据结构和指向可变 PGA 的指针,这些变量在源码中定义,在编译时分配,可以被
认为是 PGA 的保留内存。
! 可变 PGAVariable PGA- 可变 PGA 通过具体的内存 Heap 分配来实现,其空间分
配与使用时可以变化的,通过内部视图 X$KSMPP[K]ernel [S]ervice [M]emory [P]GA
hea[P])可以查询可变 PGA 内存的分配和使用情况。PGA 的可变区中主要包含会话
内存私有 SQL 区等。
下图简要说明了 PGA 的创建过程,当客户端向服务器发送连接请求,服务器监听到客户
端请求,在专用服务器模式下,会在服务器端衍生一个 Server Process 来代理用户的请求,服
务器进程进而向实例发起连接,创建会话(CREATE SESSION), PGA 就为 Server Proces
所分配和使用:
书名书名书名书名书名书名书名书名书名书名书名书名书名书名
·2·
可变 PGA 部分实际上是我们最为关注的 PGA 部分。虽然 PGA 的内容对于专用和共享模
式会有所不同,但是通常来说,可变 PGA 又进一步的由以下两部分组成:
! 会话内存 - Session Memory:用 ,对
服务器模式,这部分内存是共享而非私有的。
! 私有的 SQL - Private SQL AreaPrivate SQL Area 包含绑定变量信息、查询执行
状态信息以及查询工作区等。每个发出 SQL 查询的会话都拥有一块私有 SQL 区,
于专用服务器模式,这部分内存在 PGA 中分配,对于共享服务器模式,这部分内存
SGA 中分配。
在这里还需要了解的一个概念是游标(CursorOracle 的应用程序或用户的应用程序执
行时,都可能显示或隐式的打开游标(Open Cursor)来进行任务处理,打开游标就需要分配
SQL Area。管理私有 SQL 区是用户进程的责任,而分配和回收则依赖于具体的应用程序,
了防止过度的 SQL 工作区分配,Oracle 通过 OPEN_CURSORS 参数来限制每个用户进程能
同时打开的游标数量一个私有 SQL 区在 Cursor 打开时分配,当执行结束游标关闭时释放。
简单来说,用户进程的任务执行以及 Cursor 的使用是 PGA 内存的主要消耗者,也是我们
在进行数据库性能优化时最关心的内容,实际上数据库的活动主要就是 Cursor 的活动
进一步的,私有 SQL 区又由以下两部分组成:
! 永久区域 - Persistent Area:这个区域包含绑定变量等信息,这部分内存只有在游标
被关闭时才会被释放。
! 运行时区域Runtime Area:这个区域存放了 SQL 语句运行时所需要的信息,在执
行请求时首先创建,其中包含了查询执行的状态信息(如对于全表扫描,则记录全
表扫描的进度)、 SQL work areas(这部分区域在内存密集型请求下分配,如 Sort
或者 Hash-Join 等,对于 DML 语句来说,SQL 语句执行完毕就释放该区域,对于查
询语句则是在记录返回后或查询取消时释放)
下图简要说明了 PGA 的整体结构,图示中包含了固有 SGA 部分,也包含了游标运行时
示意:
of 63
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜