Oracle9i 动态SGA,PGA特性探索(4)
来源:asp之家 时间:2009-04-24 12:39:00
SGA的阀值摘要
由下面的表一可以看到,在监视SGA的内存使用时,有几个明显的阀值可以利用。我们可以写一些脚本并在其中集成一些智能,这样就可以在处理的需求变化时重新设置SGA。
RAM Area Too-small Condition Too-Large Condition
Shared pool Library cache misses No misses
Data buffer cache Hit ratio < 90% Hit ratio > 95%
PGA aggregate high multi-pass executions 100% optimal executions
表1:SGA中的异常条件指示
查看SGA内存区域的负载
Oracle9i使用了一些新的内部视图或者在现有的视图中加入新的列来帮助查看Oracle9i中的内部内存分配情况。以下的新V$视图可以帮助监视Oracle9i连接的内存使用。
V$PROCESS -在Oracle9i中加入了三个新的列以监视PGA内存的使用,新列的名字是pga_used_mem, pga_alloc_mem 和pga_max_mem。
V$SYSSTAT -加入了很多新的统计行,包括有area statistics for optimal, one-pass和multi-pass。
V$PGASTAT -该新视图展示了全部后台进程和专用连接的PGA内存使用
V$SQL_PLAN--这个新视图包含了全部当前执行的SQL的执行计划信息。对于需要最优化的SQL语句的性能调整专家来说这是非常吸引人的。
V$WORKAREA -这个新视图提供了Oracle9i连接的累积内存统计的详细信息。
V$WORKAREA_ACTIVE - 这个新的视图提供了当前全部正在执行的SQL语句的内部内存使用信息。
它们的目的是通过这些V$视图来监视SGA中的内存使用,然后根据Oracle实例的处理要求,通过ALTER SYSTEM命令重新分配内存。我们以下来看一些这些新的Oracle9i特性和脚本,它可以帮助我们查看详细的内存使用。
当然我们不可能在这里详述所有的技术,以下就让我们看一个简单的例子,它通过使用V$SYSSTAT视图来决定何时重新设置PGA_AGGREGATE_TARGET参数。
以下的查询可以得到自数据库实例启动后work areas被执行的全部数目和百分比。
work_area.sql
select
name profile,
cnt,
decode(total, 0, 0, round(cnt*100/total)) percentage
from
(
select
name,
value cnt,
(sum(value) over ()) total
from
v$sysstat
where
name like 'workarea exec%'
);
这个查询的输出可能如下:
PROFILE CNT PERCENTAGE
----------------------------------- ---------- ----------
workarea executions - optimal 5395 95
workarea executions - onepass 284 5
workarea executions - multipass 0 0
这个查询的输出是用来告诉DBA何时动态调整PGA_AGGREGATE_TARGET参数。在通常的情况下,如果multi-pass的执行大于0,就需要增加PGA_AGGREGATE_TARGET的值,并且在optimal executions是100%时减少它的值。
标签:Oracle9i,动态,SGA,PGA
0
投稿
猜你喜欢
python生成器的使用方法
2021-12-03 22:40:49
在keras中对单一输入图像进行预测并返回预测结果操作
2023-03-10 10:07:04
关于最新IDEA2020.2.1,2.2,3以上破解,激活失效,重新激活的问题
2023-11-26 00:32:37
解决图片撑大问题
2009-09-22 14:51:00
python实现简单flappy bird
2022-08-03 12:06:33
Python内存管理方式和垃圾回收算法解析
2022-09-10 17:49:11
python3.6.4安装opencv3.4.2的实现
2021-08-07 22:48:56
FckEditor 配置手册中文教程详细说明
2023-06-18 20:35:59
Pandas数据分析固定时间点和时间差
2022-03-05 20:24:07
keras模型保存为tensorflow的二进制模型方式
2022-12-21 07:20:08
OpenCV-Python实现图像梯度与Sobel滤波器
2021-04-07 05:23:20
python+pygame实现简易五子棋小游戏的三种方式
2023-09-26 06:01:43
基于Django框架的rest_framework的身份验证和权限解析
2021-02-21 23:42:58
关于python的第三方库下载与更改方式
2021-02-28 10:32:55
在PyCharm导航区中打开多个Project的关闭方法
2022-08-11 01:39:11
Python使用pyshp库读取shapefile信息的方法
2023-07-27 04:56:36
从多个tfrecord文件中无限读取文件的例子
2023-10-23 13:29:19
python3中的类继承你真的了解吗
2021-06-18 11:23:53
Django REST Swagger实现指定api参数
2023-03-10 05:48:58
关于Python函数对象的名称空间和作用域
2023-08-15 02:00:42