读书笔记整理八:智能基础结构增强功能11g

来源:互联网 发布:淘宝改版中国质造 编辑:程序博客网 时间:2024/05/18 00:37
读书笔记整理八:智能基础结构增强功能11g
Oracle DB 的重要I/O 度量
我们先简要总结一下Oracle DB 进程发出的I/O 类型。
数据库I/O 工作量一般分为小型随机I/O 和大型顺序I/O。小型随机I/O 在OLTP 应用环境
中比较常用;在这种环境中,各个前台将数据块读入缓冲区高速缓存以进行更新,dbwr
进程成批写入更改的块。大型顺序I/O 在OLAP 应用环境中比较常见。OLTP 应用程序的
性能取决于小型I/O 的处理速度,而该速度又取决于磁盘的旋转速度和查找数据的速度。
大型I/O 性能取决于连接服务器与存储数组的I/O 通道的容量;通道的容量越大,大型
I/O 吞吐量就越大。
IOPS(每秒I/O 数):此度量表示在一秒的时间内可以处理的小型随机I/O 数。IOPS 速
率主要取决于磁盘介质的旋转速度。通过增加更多的磁盘驱动器或者使用RPM 速率(每
分钟转数)更高的磁盘驱动器,可以提高存储数组的IOPS 速率。
MBPS(MB/秒):计算服务器节点与存储数组之间可达到的数据传输速率取决于用于传
输数据的I/O 通道的容量。通道越宽,可传输的数据就越多。

Oracle DB 的重要I/O 度量(续)
流数据应用程序的吞吐量取决于可达到的数据传输速度。吞吐量是使用MBPS 度量测量
的。
即使对于可传输的顺序数据量磁盘本身存在上限,但限制系统整体吞吐量的通常是通道容
量。例如,通过GigE 交换机连接到NAS 服务器的主机就受限于128 MBPS 的传输容量。
NAS 中通常有多个磁盘,这些磁盘总共可以提供超过128 MBPS 的传输容量。通道资源成
为起限制作用的资源。
I/O 等待时间:等待时间是在测量I/O 子系统的性能时用到的另一个重要度量。通常,等待
时间只是磁盘访问磁盘上的特定扇区所用的时间。但是,从数据库的角度来看,等待时间
表示的是存储系统处理提交的I/O 请求所花费的全部时间。换而言之,它表示的是在提交
了I/O 请求之后第一个传输字节到达之前的开销。等待时间值常用于优化系统时的小型随
机I/O。如果排队等待磁盘进行处理的I/O 请求太多,则等待时间会随队列中的等待时间的
增加而增加。为了减少I/O 请求的等待时间,数据通常在多个主轴中呈条带状分布,这样
对一个文件的所有I/O 请求会在不同的磁盘中得到处理。较长的等待时间通常意味着系统
超负荷。
除了上面提到的主要资源以外,还有一些存储数组组件会影响I/O 性能。磁盘数组供应商
提供了一些高速缓存机制来提高读取吞吐量,但这些机制在数据库环境中的真实优势是不
确定的,因为Oracle DB 使用高速缓存和预读机制,可直接从RAM 而不是从磁盘中读取
数据。

Oracle Database 11g 中的ADDM 增强
RAC 的自动数据库诊断监视器
* 确定整个RAC 集群数据库的最重要的性能问题
* 在生成AWR 快照时自动运行(默认设置)
* 在数据库范围内对以下项进行分析:
– 全局资源(例如,I/O 和全局锁)
– 高负载SQL 和热块
– 全局高速缓存互联通信量
– 网络等待时间问题
– 实例响应时间的偏差
* DBA 用来分析集群性能

Oracle Database 10g SGA 参数
* 使用ASMM,可以自动优化五个重要的SGA 组件(SHARED_POOL_SIZE,DB_CACHE_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE,STREAMS_POOL_SIZE)。
* 不会自动优化特殊的缓冲区池。
* 日志缓冲区是一个静态组件,但是有一个合适的默认值

可自动优化的参数:
SHARED_POOL_SIZE,DB_CACHE_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE,STREAMS_POOL_SIZE

可手动修改的动态参数:
DB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
DB_nK_CACHE_SIZE
SGA_TARGET

可手动修改的静态参数:
LOG_BUFFER
SGA_MAX_SIZE

Oracle Database 10g PGA 参数
* PGA_AGGREGATE_TARGET:
– 指定可用于实例的PGA 内存的目标总计数量
– 可在实例级别以动态方式进行修改
– 示例:100,000 KB、2,500 MB、50 GB
– 默认值:10 MB 或SGA 大小的20%(取两者中较大的
值)
* WORKAREA_SIZE_POLICY:
– 可选
– 可在实例级别或会话级别以动态方式进行修改
– 对特定会话退回到静态SQL 内存管理

PGA_AGGREGATE_TARGET 指定了可供与该实例关联的所有服务器进程使用的目标总
PGA 内存。
将PGA_AGGREGATE_TARGET 设置为非零值时,会自动将WORKAREA_SIZE_POLICY
参数设置为AUTO。这意味着会自动调整由占用大量内存的SQL 操作符使用的SQL 工作
区大小。非零值是此参数的默认值,因为除非另行指定,否则Oracle 会将其设置为SGA
大小的20% 或10 MB(取两者中的较大值)。
将PGA_AGGREGATE_TARGET 设置为0 时,也会自动将WORKAREA_SIZE_POLICY 参
数设置为MANUAL。这意味着可使用*_AREA_SIZE 参数来调整SQL 工作区的大小。
请记住,PGA_AGGREGATE_TARGET 不是一个固定值。它用于帮助系统更有效地管理
PGA 内存,但在必要的情况下,系统将超出该设置。可以根据每个数据库会话对
WORK_AREA_SIZE_POLICY 进行更改,这样便可以按需要根据每个会话进行手动内存管
理。例如,假定会话加载了大型导入文件,因此需要较大的sort_area_size。可以使
用登录触发器为正在执行导入操作的帐户设置WORK_AREA_SIZE_POLICY。如果
WORK_AREA_SIZE_POLICY 为AUTO,PGA_AGGREGATE_TARGET 设置为0,则在启动
时将引发外部错误ORA-04032。

注:在Oracle 9i Database 版本2 之前,PGA_AGGREGATE_TARGET 一直用于控制所有专
用服务器连接的工作区大小。但是,该参数对共享服务器连接没有影响;这种情况下优先
使用*_AREA_SIZE 参数。在Oracle Database 10g 中,PGA_AGGREGATE_TARGET 控制
由专用连接和共享连接分配的工作区。

* 缓冲区高速缓存建议(在9i R1 中引入):
– V$DB_CACHE_ADVICE
– 预测不同高速缓存大小的物理读取数和时间
* 共享池建议(在9i R2 中):
– V$SHARED_POOL_ADVICE
– 预测不同大小的共享池的解析时间
* Java 池建议(在9i R2 中):
– V$JAVA_POOL_ADVICE
– 预测Java 池大小的Java 类加载时间
* 流池建议(10g R2)
– V$STREAMS_POOL_ADVICE
– 预测不同大小的溢出和未溢出活动时间

为了帮助您调整最重要的SGA 组件的大小,Oracle Database 11g 中引入了幻灯片中的指
导:
* V$DB_CACHE_ADVICE 包含的行预测与每行对应的高速缓存大小的物理读取数和时
间。
* V$SHARED_POOL_ADVICE 显示有关不同池大小的共享池中估计分析时间的信息。
* V$JAVA_POOL_ADVICE 显示有关不同池大小的Java 池中估计类加载时间的信息。
* V$STREAMS_POOL_ADVICE 显示有关估计的溢出或未溢出消息数,以及用于不同流
池大小的溢出或未溢出活动的关联时间的信息。

Oracle Database 10g 内存指导
* SGA 目标建议(在10g R2 中引入):
– V$SGA_TARGET_ADVICE 视图
– 根据当前大小估计不同SGA 目标大小的DB 时间
* PGA 目标建议(在9i R1 中引入):
– V$PGA_TARGET_ADVICE 视图
– 预测不同PGA 大小的PGA 高速缓存命中率
– 11g R1 中添加了ESTD_TIME 时间列
* 对于所有指导,必须至少将STATISTICS_LEVEL 设置为TYPICAL。




原创粉丝点击