sql server oracle db2 各性能指标详述
oracle数据库监控指标

oracle数据库监控指标
1. 数据库连接数(Database Connections):监控数据库中当前的连接数,包括活动连接和空闲连接。
2. 缓冲区命中率(Buffer Cache Hit Ratio):监控数据库的缓冲区使用情况,即在缓冲区中找到所需数据的比例。
3. 表空间使用率(Tablespace Usage):监控数据库中各个表空间的使用情况,包括已用空间、剩余空间和总空间。
4. 锁等待(Lock Waits):监控数据库中的锁等待情况,包括导致锁等待的SQL语句和等待时间。
5. 内存使用率(Memory Usage):监控数据库服务器的内存使用情况,包括物理内存和虚拟内存的使用情况。
6. I/O等待(I/O Waits):监控数据库中的I/O等待情况,包括导致I/O等待的原因和等待时间。
7. SQL执行时间(SQL Execution Time):监控数据库中各个SQL语句的执行时间,用于评估SQL性能。
8. 数据库响应时间(Database Response Time):监控数据库的响应时间,包括从发出SQL请求到获得结果的时间。
9. 数据库可用性(Database Availability):监控数据库的可用性,包括数据库实例的运行状态和数据库服务的连通性。
10. 日志切换频率(Log Switches):监控数据库日志文件切换的频率,即日志文件的生成和切换。
11. 监控表空间中的数据增长率(tablespace growth rate)
12. 监控重做日志增长率(redo log growth rate)。
数据库查询性能优化的关键指标与性能调整方法总结

数据库查询性能优化的关键指标与性能调整方法总结数据库是现代应用中关键的数据存储和操作引擎,而数据库查询性能则是保障业务运转高效的关键。
本文将分析数据库查询性能优化的关键指标和性能调整方法,以帮助读者理解并改善数据库查询性能问题。
一、关键指标1. 响应时间:即数据库查询的耗时。
响应时间是用户获得查询结果所需的时间,需要尽量缩短以提高用户体验和整体系统性能。
2. 并发性能:并发性能衡量数据库系统同时处理多个查询请求的能力。
较高的并发性能可同时响应大量查询请求,提供更好的用户体验。
3. 吞吐量:吞吐量是指在一定时间内数据库能处理的查询请求数量。
较高的吞吐量代表数据库的工作效率较高。
4. 资源占用:数据库执行查询所需的系统资源,包括 CPU、内存和磁盘IO 等。
合理利用资源是优化查询性能的关键。
5. 索引命中率:索引命中率即查询时需要的数据是否命中索引进行快速查找。
较高的索引命中率提高了查询速度。
二、性能调整方法1. 优化 SQL 查询语句SQL 查询语句是数据库查询性能优化的重点。
以下是一些常见的 SQL 优化方法:- 使用合适的索引:为经常被查询的字段创建索引可以大大提高查询速度。
但要避免过多的索引,以减少更新操作的性能损耗。
- 优化查询逻辑:设计简洁、高效的查询逻辑,避免不必要的嵌套查询和子查询。
使用更简单的 JOIN 语句替代子查询。
- 调整查询顺序:按照条件的选择性从高到低的顺序进行查询,可以尽早过滤出不满足条件的记录,从而提高查询效率。
- 避免使用 SELECT *:只选择需要的字段,避免查询过多无用的字段,以减少数据传输和处理的负担。
2. 适当增加缓存缓存是提高数据库查询性能的常用方法。
通过将查询结果存储在缓存中,可以减少对数据库的查询次数,从而提高查询性能。
- 查询缓存:数据库的查询缓存可以存储查询结果,当相同查询再次发起时,直接从缓存中获取结果。
但要注意缓存过期时间和频繁更新的表。
- 缓存中间层:可以引入内存数据库、缓存服务器等中间层,将热门数据缓存在内存中,以提高查询速度。
数据库管理系统比较MySQLvsOraclevsSQLServer

数据库管理系统比较MySQLvsOraclevsSQLServer 数据库管理系统比较:MySQL vs Oracle vs SQL Server引言:数据库管理系统是现代信息技术领域中不可或缺的一环。
随着数据量的急剧增加和数据库应用的广泛应用,选择适合自己需求的数据库管理系统变得至关重要。
在本文中,我们将比较三种常见的数据库管理系统:MySQL、Oracle和SQL Server。
通过对比它们的性能、功能、可扩展性和使用成本,为读者提供一个更好地了解和选择的依据。
一、性能比较在数据库管理系统中,性能是一个至关重要的因素。
下面将对MySQL、Oracle和SQL Server的性能进行比较。
1.1 MySQL性能MySQL是一个轻量级的开源数据库管理系统,以其高性能而闻名。
它采用多线程处理机制和高效的索引算法,能够处理大规模的数据访问和高并发请求。
此外,MySQL还支持垂直和水平扩展,可根据实际需求进行灵活配置和调整。
因此,在对于大多数中小型应用来说,MySQL提供了相对较好的性能。
1.2 Oracle性能Oracle是一个功能强大且成熟的商业数据库管理系统。
它具有出色的性能,并且能够处理大规模的复杂数据模型。
Oracle采用了先进的事务处理机制和高效的查询优化算法,使其在处理高并发访问和复杂查询时具有出色的性能表现。
然而,Oracle的性能和功能也伴随着更高的硬件要求和许可成本。
1.3 SQL Server性能SQL Server是由微软公司开发的关系型数据库管理系统。
它在处理大规模数据时表现出色,并且支持高并发访问和复杂查询。
SQL Server 采用了先进的内存管理和缓存技术,以提高查询速度和响应时间。
此外,SQL Server还具有良好的稳定性和可靠性,适用于中小型企业的应用场景。
综合比较,MySQL适用于中小型应用,对性能要求较高且成本敏感的场景;Oracle适用于大规模企业级应用,对功能和可靠性要求较高的场景;SQL Server适用于中小型企业应用,对性能和稳定性要求较高的场景。
Oracle性能分析(一)DBTime和DBCPU

Oracle性能分析(⼀)DBTime和DBCPU分析数据库的负载⾼低,通常可以通过CPU利⽤率,磁盘响应速度等进⾏分析,Oracle数据库提供AWR报告,报告的内容很多很多,但是却没有⼀个定性的指标,能回答:1. 到底数据库当前的负载是⾼还是低?2. 我感觉我数据库很慢,我的数据库硬件是是不是应该升级了?先看⼀段典型的AWR报告,截取部分⽚段Host Name Platform CPUs Cores Sockets Memory (GB)ABCD Linux x86 64-bit12121294.15Snap Id Snap Time Sessions Cursors/Session InstancesBegin Snap:1364724-Aug-18 00:00:40575 4.12End Snap:1369525-Aug-18 00:00:06558 4.62Elapsed:1,439.43 (mins)DB Time:2,762.39 (mins)这⾥有三个关键信息:1. ⾸先,我们的服务器是12个CPU,12核2. 这个AWR报告的区间是从 24-Aug-18 00:00:40 到 25-Aug-18 00:00:06,整个区间是1,439.43 (mins), 24⼩时。
3. 然后是DB TIME: 2,762.39 (mins), 这是⼀个关键的性能指标,就是所有数据库请求的运⾏时间加总。
举个栗⼦,假设⼀家理发店24⼩时(1,439.43 (mins))营业,⼀共有12个理发师(12 CPU),顾客在理发店的累计逗留时间就是 DB TIME:2,762.39 (mins)。
如果拿顾客累计逗留时间除以营业时间,2762.30/1439.43=1.92,也就是说,在营业时间内,店内平均有1.92个顾客。
顾客的累计逗留时间(DB TIME)不是理发师(CPU)的累计⼯作时间,如果两个顾客都要烫发,正巧只有⼀个烫发机,则其中⼀个顾客需要等待(阻塞),这段时间理发师没有⼲活,所以:DB CPU 是⼀定会⼩于 DB Time的,理发师剪头发的时间⼀定⼩于顾客在店内逗留的时间。
oracle数据库监控指标

oracle数据库监控指标Oracle数据库监控是确保数据库正常运行和性能优化的重要任务之一。
下面是一些常见的Oracle数据库监控指标:1. CPU利用率,监控数据库服务器的CPU利用率,以确保系统资源足够支持数据库的正常运行。
高CPU利用率可能表示系统负载过重或者存在性能问题。
2. 内存利用率,监控数据库服务器的内存利用率,包括SGA (System Global Area)和PGA(Program Global Area)的利用情况。
内存不足可能导致数据库性能下降或者出现内存溢出错误。
3. 磁盘空间利用率,监控数据库服务器上的磁盘空间利用率,包括数据文件、日志文件和临时文件等。
磁盘空间不足可能导致数据库无法正常写入数据或者执行其他操作。
4. 数据库连接数,监控数据库的并发连接数,以确保数据库能够处理足够的请求。
高连接数可能导致性能下降或者资源竞争。
5. 数据库会话,监控活动会话和等待事件的情况,以及锁定和死锁等问题。
会话的长时间等待可能表示性能问题或者资源争用。
6. 数据库响应时间,监控数据库的响应时间,包括查询响应时间、事务处理时间等。
高响应时间可能表示数据库性能问题或者缓慢的查询语句。
7. 数据库日志,监控数据库的日志文件,包括错误日志、警告日志和审计日志等。
日志中的错误和警告信息可以帮助识别和解决潜在的问题。
8. 数据库备份和恢复,监控数据库的备份和恢复情况,包括备份的完成时间、备份文件的完整性等。
及时的备份和恢复可以保护数据库的数据安全。
9. 数据库性能指标,监控数据库的性能指标,如平均响应时间、平均等待时间、IO吞吐量等。
这些指标可以帮助评估数据库的性能,并进行性能调优。
10. 数据库版本和补丁,监控数据库的版本和已安装的补丁情况,以确保数据库的安全性和稳定性。
及时应用数据库的补丁可以修复已知的安全漏洞和错误。
以上是一些常见的Oracle数据库监控指标,通过监控这些指标可以及时发现和解决数据库的性能问题,确保数据库的正常运行和高效性能。
db2与oracle差别

db2与oracle差别1:并发机制Oracle的默认隔离级是快照(Snapshot),写入事务可不能堵塞读取事务,读取事务能够猎取当前已提交值。
DB2默认是游标稳固性(Cursor Stability),写入事务会堵塞读取事务。
2: 数据类型数据库的核心是数据,类型不匹配或者语义的不同都会阻碍应用是否能够同时在两种数据库中运行。
Oracle支持一些非SQL标准的数据类型,例如VARCHAR2,这些是不被D B2支持的;另外,Oracle中的日期、时刻格式和DB2中相应类型在语义上不完全一致;最后Oracle的PL/SQL储备过程所支持的一些标量数据类型在DB2中需要被映射才能被识别。
如右:3: 隐式类型转换Oracle使用弱类型转换,而DB2使用强类型转换。
隐式类型转换能完成一种类型向另外一种类型的自动转换,关于不匹配的类型,假如数据类型能被合明白得释,比较或者赋值时能够执行隐式类型转换;强类型转换规则,意味着字符串和数字类型之间不能直截了当进行比较,除非显式转换。
4:SQL方言DB2传统上坚持对SQL标准的支持,但Oracle实现了专门多方言。
例如:CONNEC T BY 递归语句、(+)连接操作符、DUAL表、ROWNUM伪列、ROWID伪列、MINUS 操作符、SELECT INTO FOR UPDATE语句、TRUNCATE TABLE等。
假如要在DB2数据库上运行使用了上述方言的应用,就需要进行代码级别的翻译,工作量较大。
5:PL/SQL语言就储备过程和函数开发而言,DB2使用SQL PL语言来开发,Oracle使用PL/SQL 语言来开发。
SQL PL和PL/SQL差异庞大,这也是从Oracle到DB2转型最大的工作量所在。
6:内置包为了方便应用程序开发的需要,Oracle数据库提供了专门多内置包:DBMS_OUTPUT、DBMS_SQL、DBMS_ALERT、DBMS_PIPE、DBMS_JOB、DBMS_LOB、DBMS_UTI LITY、UTL_FILE、UTL_MAIL和UTL_SMTP等。
SQL-Server概述
多进程数据库引擎的缺点是占用较大的系统资 源。
13
(2)单进程、多线程数据库引擎 多线程数据库引擎不依赖于多任务操作系统来为CPU
安排应用程序,因此,数据库引擎自身处理的能力将提供 更大的可移植性。
单进程、多线程数据库引擎具有对服务器内存需求不 高,节省硬件投资的优点,但也存在一个缺点,那就是多 线程DBMS的可扩展性还有待于进一步提高。 (3)Microsoft SQL Server的线程服务
SOL Server中最大的变化在于使用了线程,它不是模 拟数据库内核中的线程,而是使用Win32操作系统线程, 这就意味着这些线程运行于内存保护之下,它是由indows NT操作系统内核进行抢先式调度。
◇ 数据控制语言(Data.Control Language,简称DCL), 用于数据访问权限的控制
4
表1.1标准SQL的6个核心动词
┏━━━━━━━┳━━━━━━━━━━━━━━━━━━┓
┃ SQL功能 ┃ 动 词
┃
┣━━━━━━━╋━━━━━━━━━━━━━━━━━━┫
┃ 数据定义 ┃ CREATE
sqlserver按clientserver结构而设计客户机服务器结构减小了网络拥挤程度并将数据库操作分开运行像输入和显示数据这样需要用户频繁干预的任务集中在作为客户端的pc机上完成客户端可分别处理数据但若需读取共享数据必须依据网络管道向服务器端做存取申请而文件和查询处理等频繁需要数据的任务则集中在数据库服务器上完成共享数据存放在服务器端从而使每个系统各显其能
第1章 SQL Server概述
数据库性能调优的关键性能指标与监控工具推荐指南
数据库性能调优的关键性能指标与监控工具推荐指南在许多企业中,数据库是关键的信息系统组件,对于业务运行的稳定性和高效性起着至关重要的作用。
为了确保数据库的良好性能,数据库性能调优成为不可忽视的一环。
本文将介绍数据库性能调优的关键性能指标,并推荐一些监控工具,帮助您监测和优化数据库性能。
一、关键性能指标1. 响应时间:数据库响应时间是衡量数据库性能的重要指标。
响应时间指的是从用户发出请求到数据库返回结果所经过的时间。
响应时间越短,表示数据库性能越好。
通过监控响应时间,可以发现潜在的性能瓶颈,并及时采取措施优化性能。
2. 并发连接数:并发连接数指的是同时与数据库建立连接的用户数量。
数据库能否支持大量的并发连接对于业务系统的可用性和性能至关重要。
监控并发连接数可以帮助发现是否存在连接数过高的风险,从而避免数据库因无法处理过多连接而导致的性能问题。
3. 缓存命中率:数据库缓存命中率是指从缓存中读取数据而不是从硬盘中读取数据的比例。
高缓存命中率可以减少对硬盘IO的访问,提高数据库性能。
监控缓存命中率可以帮助我们了解数据库的缓存使用情况,并及时调整缓存策略以提高性能。
4. 磁盘IO:磁盘IO是数据库操作的一个重要组成部分。
通过监控磁盘IO,可以了解数据库读写操作的效率,并及时发现是否存在磁盘IO过高的问题。
合理地优化磁盘IO可以显著提升数据库性能。
5. 锁等待时间:在并发环境下,数据库的锁机制是确保数据一致性的重要手段之一。
然而,锁的使用过程中可能导致长时间的等待,降低数据库性能。
通过监控锁等待时间,可以了解数据库中的锁排队情况,及时发现并解决锁竞争问题,提高数据库性能。
6. 日志写入速度:数据库的事务日志是确保数据持久性和恢复性的关键组件。
事务的写入速度对于数据库性能起着重要影响。
通过监控日志写入速度,可以发现是否存在过高的写入延迟,及时采取措施优化日志性能。
二、监控工具推荐指南1. MySQL Performance Monitor:适用于MySQL数据库的监控工具,提供了丰富的性能指标监控功能,可以直观地展示数据库的各项指标,并提供实时、历史数据的查看和分析功能。
数据库监控与性能评估的指标和工具
数据库监控与性能评估的指标和工具数据库是现代应用程序的重要组成部分,而数据库监控与性能评估是确保数据库正常运行、高效工作的关键。
在这篇文章中,我们将重点讨论数据库监控与性能评估的指标和工具。
一、数据库监控指标1. CPU利用率:衡量数据库服务所占用的CPU资源。
过高的CPU利用率可能表明数据库服务器存在性能瓶颈或者应用程序存在问题。
2. 内存利用率:反映数据库服务器对内存资源的使用情况。
当内存利用率过高时,数据库性能可能受到影响,因为数据库系统需要频繁地进行内存读写操作。
3. 硬盘空间利用率:查看数据库和日志文件的空间使用情况。
当硬盘空间利用率达到饱和时,数据库可能无法继续写入数据,从而导致系统故障。
4. 网络流量:衡量数据库服务器与应用程序之间的数据传输量。
高网络流量可能导致延迟增加和系统响应时间增加。
5. 数据库连接数:反映同时连接到数据库服务器的用户数量。
连接数过高可能对数据库性能产生负面影响。
6. 锁等待时间:记录等待锁的时间。
长时间的锁等待可能表明存在并发问题。
二、数据库性能评估指标1. 响应时间:衡量从用户发送请求到系统返回结果的时间。
较低的响应时间是保证用户体验的关键。
2. 吞吐量:指数据库系统在单位时间内能够处理的事务数量。
高吞吐量可以确保数据库系统顺利处理高负载的请求。
3. 数据库延迟:衡量数据库读写操作的速度。
较低的延迟可以提升数据库响应速度,从而提高用户体验。
4. 数据一致性:确保数据库中的数据在不同时间点的读取结果是一致的。
数据一致性是数据库系统正常运行的重要保障。
5. 数据库可用性:反映数据库系统在一定时间内正常运行的比例。
高可用性是保证数据安全和运行稳定的重要指标。
三、数据库监控工具1. MySQL Enterprise Monitor:针对MySQL数据库进行监控和管理的商业工具。
它可以通过图形界面实时监测数据库的性能指标,并提供了警报功能,让管理员能够第一时间获得有关数据库问题的信息。
数据库性能调优的关键性能指标与监控工具推荐
数据库性能调优的关键性能指标与监控工具推荐数据库性能调优是一个持续不断的过程,它旨在提高数据库系统的响应速度、可用性和可扩展性。
在这个过程中,监控和优化关键的性能指标起着至关重要的作用。
本文将介绍数据库性能调优的关键性能指标,并推荐几款常用的监控工具。
首先,让我们了解几个关键的性能指标。
1. 响应时间:响应时间是用户发出请求后,系统反馈结果的时间。
较低的响应时间意味着更好的系统性能。
通过监控和优化响应时间,可以提高用户满意度,并提升系统性能。
2. 吞吐量:吞吐量是指在单位时间内处理的事务或查询数量。
较高的吞吐量表示系统能够处理更多的请求,在高并发的情况下保持稳定性能。
3. 并发性:并发性是指系统同时处理多个请求的能力。
保持适当的并发性可以提高系统的效率和容量。
4. 缓存命中率:缓存命中率表示在查询过程中,从缓存中获取数据的比例。
高缓存命中率意味着减少了IO操作,提高了查询性能。
5. 磁盘利用率:磁盘利用率是指存储设备上已使用空间的百分比。
过高的磁盘利用率可能会导致磁盘IO性能下降,从而影响数据库的性能。
对于这些性能指标的监控,可以使用一些常用的数据库性能监控工具,如下所示:1. Nagios:Nagios是一种开源的网络监控系统,可以对数据库进行监控。
它提供了多种插件,可以用于监控数据库的连接状态、性能指标等。
它还支持报警功能,可以及时通知管理员并采取相应措施。
2. Zabbix:Zabbix是一种企业级的分布式监控解决方案,它支持多种数据库系统,如MySQL、Oracle等。
通过Zabbix,可以实时监控数据库的性能指标,并进行趋势分析。
它还提供了基于阈值的告警功能,帮助管理员及时发现和解决问题。
3. Prometheus:Prometheus是一款开源的监控系统,它专注于时间序列数据的采集和存储。
它提供了丰富的插件和API,可以监控数据库的性能指标,并进行动态图表展示。
此外,Prometheus还支持告警功能,可在出现性能问题时发送通知。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 注:以下指标取自SQL Server自身提供的性能计数器。 指标名称 指标描述 指标范围 指标单位 1.SQL Server中访问方法(Access Methods)对象包含的性能计数器 全表扫描/秒 (Full Scans/sec) 指每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫描的频率过高的话,会影响性能。 如果该指标的值比1或2高,应该分析设计的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。 次数/秒
2.SQL Server中缓冲器管理器(Buffer Manager)对象包含的性能计数器 缓冲区高速缓存命中率 (Buffer Cache Hit Ratio %) 指在缓冲区高速缓存中找到而不需要从磁盘中读取的页的百分比。该比率是缓存命中总次数与缓存查找总次数之比。经过很长时间后,该比率的变化很小。由于从缓存中读取数据比从磁盘中读取数据的开销小得多,一般希望该比率高一些。 该指标的值最好为90% 或更高。通常可以通过增加 SQL Server 可用的内存数量来提高该指标的值。增加内存直到这指标的值持续高于90%,表示90% 以上的数据请求可以从数据缓冲区中获得所需数据。 %
读的页/秒 (Page Reads/sec) 指每秒发出的物理数据库页读取数。该指标主要考察数据库从磁盘读取数据的频率。因为物理I/O 会耗费大量时间,所以应尽可能地减少物理I/O 以提高性能。 该指标的值应尽可能的小。可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,以降低该指标的值。 个数/秒 写的页/秒 (Page Writes/sec) 指每秒执行的物理数据库写的页数。该指标主要考察数据库向磁盘写入数据的频率。因为物理I/O 会耗费大量时间,所以应尽可能地减少物理I/O 以提高性能。 该指标的值应尽可能的小。可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,以降低该指标的值。 个数/秒 惰性写/秒 (Lazy Writes/sec) 指每秒被缓冲区管理器的惰性编写器写入的缓冲区数。惰性编写器是一个系统进程,用于成批刷新脏的老化的缓冲区(包该指标的值最好为0。 个数/秒 含更改的缓冲区,必须将这些更改写回磁盘,才能将缓冲区重用于其他页),并使它们可用于用户进程。 3.SQL Server中高速缓存管理器(Cache Manager)对象包含的性能计数器 高速缓存命中率 (Cache Hit Ratio %) 指高速缓存命中次数和查找次数的比率。在SQL Server中,Cache包括Log Cache,Buffer Cache以及Procedure Cache,该指标是指所有Cache的命中率,是一个总体的比率。 该指标的值越高越好。如果该指标的值持续低于80%,就需要增加更多的内存。 %
4.SQL Server中闩(Latches)对象包含的性能计数器 平均闩等待 时间(毫秒) (Average Latch Wait Time(ms)) 指一个SQL Server线程必须等待一个闩的平均时间。 如果该指标的值很高,则系统可能正经历严重的资源竞争问题。 毫秒
闩等待/秒 (Latch Waits/sec) 指在一个闩上每秒的平均等待数量。 如果该指标的值很高,则系统可能正经历严重的资源竞争问题。 个数/秒 5.SQL Server中锁(Locks)对象包含的性能计数器 死锁的数量/秒 (Number of Deadlocks/sec) 指每秒导致死锁的锁请求数。 锁加在SQL Server资源上(如在一个事务中进行的行读取或修改),以防止多个事务并发使用资源。应尽可能少使用锁以提高事务的并发性,从而改善性能。 个数/秒
平均等待时间(毫秒) (Average Wait Time(ms)) 指线程等待某种类型的锁的平均等待时间。 同上 毫秒 锁请求/秒 (Lock Requests/sec) 指每秒钟某种类型的锁请求的数量。 同上 个数/秒 Oracle 注:以下指标取自Oracle的性能分析工具Statspack所提供的性能分析指标。 指标名称 指标描述 指标范围 指标单位 1.关于实例效率(Instance Efficiency Percentages)的性能指标 缓冲区未等待率 (Buffer Nowait %) 指在缓冲区中获取Buffer的未等待比率。 该指标的值应接近100%,如果该值较低,则可能要增大buffer cache。 %
Redo缓冲区未等待率 (Redo NoWait %) 指在Redo缓冲区获取Buffer的未等待比率。 该指标的值应接近100%,如果该值较低,则有2种可能的情况: 1) online redo log没有足够的空间; 2)log切换速度较慢。 %
缓冲区命中率 (Buffer Hit %) 指数据块在数据缓冲区中的命中率。 该指标的值通常应在90%以上,否则,需要调整。如果持续小于90%,可能要加大db_cache_size。但有时,缓存命中率低并不意味着cache设置小了,可能是潜在的全表扫描降低了缓存命中率。 %
内存排序率 (In-memory Sort %) 指排序操作在内存中进行的比率。当查询需要排序的时候,数据库会话首先选择在内存中进行排序,当内存大小不足的时候,将使用临时表空间进行磁盘排序,但磁盘排序效率和内存排序效率相差好几个数量级。 该指标的值应接近100%,如果指标的值较低,则表示出现了大量排序时的磁盘I/O操作,可考虑加大sort_area_size参数的值。 % 共享区命中率 (Library Hit %) 该指标主要代表sql在共享区的命中率。 该指标的值通常应在95%以上,否则需要考虑加大共享池(修改shared_pool_size参数值),绑定变量,修改cursor_sharing等参数。
%
软解析的百分比 (Soft Parse %) 该指标是指Oracle对sql的解析过程中,软解析所占的百分比。软解析(soft parse)是指当Oracle接到Client提交的Sql后会首先在共享池该指标的值通常应在95%以上,如果低于80%,那么就可能sql基本没被重用,sql没有绑定变量,需要考虑绑定变量。 % (Shared Pool)里面去查找是否有之前已经解析好的与刚接到的这一个Sql完全相同的Sql。当发现有相同的Sql就直接用之前解析好的结果,这就节约了解析时间以及解析时候消耗的CPU资源。 闩命中率 (Latch Hit %) 指获得Latch的次数与请求Latch的次数的比率。 该指标的值应接近100%,如果低于99%,可以考虑采取一定的方法来降低对Latch的争用。 %
SQL语句执行与 解析的比率 (Execute to Parse %) 指SQL语句执行与解析的比率。SQL语句一次解析后执行的次数越多,该比率越高,说明SQL语句的重用性很好。 该指标的值应尽可能到高,如果过低,可以考虑设置 session_cached_cursors参数。 %
共享池内存使用率 (Memory Usage %) 该指标是指在采集点时刻,共享池(share pool)内存被使用的比例。 这指标的值应保持在75%~90%,如果这个值太低,就浪费内存,如果太高,会使共享池外部的组件老化,如果SQL语句被再次执行,则就会发生硬分析。 % 2.关于等待事件(Wait events)的性能指标 文件分散读取 (db file scattered read (cs)) 该等待事件通常与全表扫描有关。因为全表扫描是被放入内存中进行的进行的,通常情况下它不可能被放入连续的缓冲区中,所以就散布在缓冲区的缓存中。 如果这个等待事件比较显著,可能说明对于某些全表扫描的表,没有创建索引或没有创建合适的索引。尽管在特定条件下执行全表扫描可能比索引扫描更有效,但如果出现这种等待时,最好检查一下这些全表扫描是否必要。
厘秒
文件顺序读取 (db file sequential read (cs)) 该等待事件通常与单个数据块相关的读取操作有关。 如果这个等待事件比较显著,可能表示在多表连接中,表的连接顺序存在问题,或者可能不合适地使用了索引。对于大量事务处理、调整良好的系统,这一数值大多是很正
厘秒 常的,但在某些情况下,它可能暗示着系统中存在问题。应检查索引扫描,以保证每个扫描都是必要的,并检查多表连接的连接顺序。另外DB_CACHE_SIZE 也是这些等待出现频率的决定因素。 缓冲区忙 (buffer busy (cs)) 当一个会话想要访问缓存中的某个块,而这个块正在被其它会话使用时,将会产生该等待事件。这时候,其它会话可能正在从数据文件向缓存中的这个块写入信息,或正在对这个块进行修改。 出现这个等待事件的频度不应大于1%。如果这个等待事件比较显著,则需要根据等待事件发生在缓存中的哪一块(如字段头部、回退段头部块、回退段非头部块、数据块、索引块等),采取相应的优化方法。
厘秒
(enqueue (cs)) enqueue 是一种保护共享资源的锁定机制。该锁定机制保护共享资源,如记录中的数据,以避免两个人在同一时间更新同一数据。enqueue 包括一个排队机制,即FIFO(先进先出)排队机制。注意:Oracle 的latch 机制不是FIFO。Enqueue 等待通常指的是ST enqueue、HW enqueue、TX4 enqueue 和TM enqueue。 如果enqueue等待事件比较显著,则需要根据enqueue等待类型,采取相应的优化方法。
厘秒
闩释放 (latch free (cs)) 该等待事件意味着进程正在等待其他进程已持有的latch。 latch是一种低级排队机制(它们被准确地称为相互排斥机制),用于保护系统全局区域(SGA)中共享内存结构。latch 就像是一种快速地被获取和释放的内存锁。latch 用于防止共享内存结构被多个用户同时访问。 对于常见的Latch等待通常的解决方法: 1)Share pool latch:在OLTP应用中应该更多的使用绑定变量以减少该latch的等待。 2)Library cache latch:同样的需要通过优化sql语句使用绑定变量减少该latch的等待。
厘秒