关系型数据库的性能指标
一、数据库性能指标
数据库性能一般用两个方面的指标来衡量:响应时间和吞吐量。响应越快,吞吐量越大,数据库性能越好。
1. 操作系统有关的指标:CPU平均利用率、内存平均占用率、硬盘占用率、I/O数量、网络时延
2. 数据库有关的指标:I/Owait、Mem平均使用率、cpu平均使用率、在一次I/O操作中所读的最大BLOCKS数、Log的增长情况、数据库的访问速度、数据库能支持的最大用户数、数据库CACHE命中率、不同数据库参数下的性能情况、锁的处理
二、Oracle
注:以下指标取自Oracle的性能分析工具Statspack所提供的性能分析指标。
1.关于实例效率(Instance Efficiency Percentages)的性能指标
(1)缓冲区未等待率(Buffer Nowait %)
指在缓冲区中获取Buffer的未等待比率。该指标的值应接近100%,如果该值较低,则可能要增大buffer cache。
(2)Redo缓冲区未等待率(Redo NoWait %)
指在Redo缓冲区获取Buffer的未等待比率。该指标的值应接近100%,如果该值较低,则有2种可能的情况:
1.online redo log没有足够的空间;
2.log切换速度较慢。
(3)缓冲区命中率(Buffer Hit %)
指数据块在数据缓冲区中的命中率。
(4)内存排序率(In-memory Sort %)
指排序操作在内存中进行的比率。当查询需要排序的时候,数据库会话首先选择在内存中进行排序,当内存大小不足的时候,将使用临时表空间进行磁盘排序,但磁盘排序效率和内存排序效率相差好几个数量级。
(5)共享区命中率(Library Hit%)
该指标主要代表sql在共享区的命中率。
(6)软解析的百分比(Soft Parse %)
该指标是指Oracle对sql的解析过程中,软解析所占的百分比。软解析(soft parse)是指当Oracle接到Client提交的Sql后会首先在共享池(Shared Pool)里面去查是否有之前已经解析好的与刚接到的这一个Sql完全相同的Sql。当发现有相同的Sql就直接用之前解析好的结果,这就节约了解析时间以及解析时候消耗的CPU资源。
(7)闩命中率(Latch Hit%)
指获得Latch的次数与请求Latch的次数的比率。
(8)SQL语句执行与解析的比率(Execute to Parse %)
关系型数据库系统有哪些指SQL语句执行与解析的比率。SQL语句一次解析后执行的次数越多,该比率越高,说明SQL语句的重用性很好。
(9)共享池内存使用率(Memory Usage %)
该指标是指在采集点时刻,共享池(share pool)内存被使用的比例。
2.关于等待事件(Wait events)的性能指标
(1)文件分散读取(db file scattered read(cs))
该等待事件通常与全表扫描有关。因为全表扫描是被放入内存中进行的进行的,通常情况下它不可能被放入连续的缓冲区中,所以就散布在缓冲区的缓存中。
(2)文件顺序读取(db file sequential read(cs))
该等待事件通常与单个数据块相关的读取操作有关。
(3)缓冲区忙(buffer busy(cs))
当一个会话想要访问缓存中的某个块,而这个块正在被其它会话使用时,将会产生该等待事件。这时候,其它会话可能正在从数据文件向缓存中的这个块写入信息,或正在对这个块进行修改。
(4)enqueue(cs)
enqueue是一种保护共享资源的锁定机制。该锁定机制保护共享资源,如记录中的数据,以避免两个人在同一时间更新同一数据。enqueue包括一个排队机制,即FIFO(先进先出)排队机制。注意:Oracle的latch机制不是FIFO。Enqueue等待通常指的是ST enqueue、HW enqueue、TX4 enqueue和TM enqueue。
(5)闩释放(latch free(cs))
该等待事件意味着进程正在等待其他进程已持有的latch。
latch是一种低级排队机制(它们被准确地称为相互排斥机制),用于保护系统全局区域(SGA)中
共享内存结构。latch就像是一种快速地被获取和释放的内存锁。latch用于防止共享内存结构被多个用户同时访问。
(6)日志文件同步(log file sync(cs))
这个等待事件是指当一个会话完成一个事务(提交或者回滚数据)时,必须等待LGWR进程将会话的redo信息从日志缓冲区写到日志文件后,才能继续执行下去。
三、数据库性能监控的主要指标
SGA-system global area
数据库系统全局区的大小(Oracle中的SGA)。SGA存放的是数据库中所有用户的
共同信息,SGA的大小会严重影响数据库的性能
Logical I/O
每秒逻辑读/写的次数。当我们向数据库做任何的操作时,Oracle都会先到SGA中查有没有
我们所需要的数据,如有就即时返回,没有再通过Physical I/O来向data file读数据,从而减少Physical I/O的读写。
Buffer cache Hit Ratio
共享池的命中率。这是衡量Logical I/O 的一个指标,如果命中率低,表明Physical I/O的读写次数必然增多,数据库性能必然下降。一般命中率都在95%以上,低于这个比率说明缓存区的设置太小。
DBWR(N)
数据库磁盘写进程的数目,当并发写多数据的时候,如果DBWR的数据不足以应付,DBWR写进程耗时必然多,容易产生等待时间或锁的时间。
Buffer Cache
数据共享区的大小。如果Buffer Cache太小,会造成Physical I/O过多
LGWR(N)
重做日志文件写进程的数目,磁盘I/O过多是会严重影响数据库性能
Redo Buffer Cache
重做日志缓存区的大小,这个缓存区的大小会影响到LGWR(N)的读/写次数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论