PGA
这是一种在服务进程启动时由 Oracle 创建的非共享的内存区。只有服务进程才能访问属于它的 PGA
PGA 所包含:
私有 SQL 区
私有 SQL 区中包含绑定信息及运行时内存结构等数据。每个提交了 SQL 语句的会话都有一个私有 SQL 区。每个提交了相同 SQL 语句的用户都有自己的私有 SQL
区,但它们使用同一个共享 SQL 区。即多个私有 SQL 区可以和同一个共享 SQL 区相联系。
游标的私有 SQL 区又可以被分为两个区域,这两部分的生命周期有所不同:
游标
当一个游标被关闭(或语句句柄被释放)后,相应的私有 SQL 区才会被清除。
会话内存
用于存储会话的变量(登录信息)及其他与会话有关的信息。对于共享服务器而言,会话内存是共享的而非为某个会话所私有。
SQL 工作区
show parameter workarea
NAME TYPE VALUE
workarea_size_policy string AUTO
分为自动(AUTO)和手动(MANUAL)两种方式管理 PGA
手动管理需单独配置 BITMAP_MERGE_AREA_SIZE、CREATE_BITMAP_AREA_SIZE、HASH_AREA_SIZE、SORT_AREA_SIZE 等参数
show parameter pga
NAME TYPE VALUE
pga_aggregate_target big integer 100M
PGA 大小设置值
V$SQL_WORKAREA(SQL 区的使用)和 V$SQL_WORKAREA_ACTIVE(当前 SQL 区的使用)
专用服务器与共享服务器区别:
内存区 专用服务器 共享服务器
会话内存 私有的 共享的
持续数据区位置 PGA SGA
SELECT 语句的运行时区 PGA PGA
DML/DDL 语句的运行时区的位置 PGA PGA
select name,case unit when 'bytes' then round(value/1024/1024,2) else value end case,
case unit when 'bytes' then 'MB' else unit end case
from v$pgastat;
NAME CASE CASE
aggregate PGA target parameter 100 MB
aggregate PGA auto target 65.81 MB
global memory bound 20 MB
total PGA inuse 26.95 MB
total PGA allocated 51.16 MB
maximum PGA allocated 85.91 MB
total freeable PGA memory 0 MB
process count 30
max processes count 34
PGA memory freed back to OS 0 MB
total PGA used for auto workareas 0 MB
NAME CASE CASE
maximum PGA used for auto workareas 3.61 MB
total PGA used for manual workareas 0 MB
maximum PGA used for manual workareas 0 MB
over allocation count 0
bytes processed 534.1 MB
extra bytes read/written 0 MB
cache hit percentage 100 percent
recompute count (total) 1183
aggregate PGA target parameter PGA_AGGREGATE_TARGET 参数值
aggregate PGA auto target 可被自动管理的大小
total PGA inuse 正在使用的大小
total PGA allocated 已经被分配的大小
total freeable PGA memory 空闲的大小
over allocation count 超越目标值的次数
cache hit percentage 使用内存空间与临时空间的比例
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞3
添加新评论0 条评论