oracle数据库性能

时间:2022-04-22
本文章向大家介绍oracle数据库性能,主要内容包括oracle使用SGA:、Oracle使用PGA:、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

性能视图V$开头

V$SYSTEM_EVENT 正在等待的资源的系统信息

V$SESSION_EVENT 会话累计发生的等待事件

V$SESSION_WAIT 会话正在等待或者曾经等待的详细时间信息

V$SESSION 正在等待或者曾经等待的会话信息

V$METRICNAME 查看高速缓存命中率

Oracle数据库IO规划原则:

1 利用磁盘分段技术将IO分散在多个轴中进行

2 利用表空间直接隔离和定位各种类型的IO

3 将redo日志及其镜像放置在两个最不忙的设备上

4 将系统开销均匀地分摊到可用的磁盘驱动器上

5 将归档文件和redo日志文件放在不同的设备中

RAID 廉价(独立)磁盘冗余阵列

RAID-0 不具有冗余磁盘阵列

RAID-1 数据的全拷贝

RAID-0+1 结合了RAID-1 一对一的映射与 RAID-0的磁盘列

RAID-3 通过阵列中的单个磁盘上保存奇偶信息来提供冗余特性。

RAID-5 使用奇偶信息提供冗余特性,但分散保存

巨型数据库VLDB

程序全局去 program global area PGA 

数据库中的并行:块-范围并行、基于分区的并行

在初始化时指定SGA或者其他的共享池的大小,实例一旦运行,就无法改变的。

oracle使用SGA:

1 对包含表和索引数据的数据块进行缓存,并放在数据库高速缓存中

2 对被解析和被优化的SQL语句,存储过程以及数据词典信息进行缓存,并放在共享内存池中

3 日志信息写入磁盘钱,缓存在日志缓冲器中

数据库高速缓存:

命中率:从缓存中请求到的数据块与从磁盘中请求到的数据块的百分比。(如果命中率低于90%,增加初始化DB_CACHE_SIZE可以提高性能)

共享内存池:

存储发送给数据库的SQL语句以及执行SQL语句所需的数据字典信息

redo日志缓存:

在一个事务提交后,或者当日志缓存被写满三分之一的时候。,日志缓存中的内容将被写入磁盘日志文件中。

查询结果缓存:

通过缓存数据块和索引避免磁盘读操作;

通过缓存SQL语句进行重复解析和优化的过程

Oracle使用PGA:

1 用于存储服务器进程临时变量等内容

2 存储正在执行的SQL信息的内存

3 作为SQL执行的一部分的排序记录所占用的内存

timesTen 内存数据库通过减少数据库获取操作的时延进而提供最佳性能