数据库性能分析-oracle
- 格式:pptx
- 大小:1.08 MB
- 文档页数:29
Oracle性能分析工具Statpack安装使用详解文件版本:V1.0文件编号:发布日期:2015-03-05编制:程万超审核:批准:修订记录:修订版本号修订人修订日期修订描述V1.0程万超2014-12-17新建简介Oracle Statspack 是用来诊断数据库性能的强有力的工具,通过Statspack 我们很容易的确定Oracle的所有瓶颈,记录数据库的性能状态。
安装步骤一、Statpack原理:1.运行oracle自带脚本,生成一系列的统计表。
2.生成快照,采样。
3.根据快照生成报告。
二、安装准备1.检查部分参数值--job_queue_process:取值范围为0到1000,总共可创建多少个job进程,为了能够建立自动任务,执行数据收集,此参数大于零alter system set job_queue_processess=6;---timed_statistics,设置为true,使收集的时间信息存储在V$sessstats和V$sysstats等动态性能视图中,但会消耗资源,可以在使用Satspack之前设为true,采样过后,把该参数动态修改为false.alter system set timed_statistics=true;2. 脚本使用此功能,需要运行oracle自带脚本,在数据库中生成一系列的表和视图,用于收集各种信息。
脚本位于%oracle_home%\rdbms\admin(224数据库的该目录为/oracle/app/product/10.2.0/Db_1/rdbms/admin)目录下,oracle816下是一组以stat开头的文件,以后的版本是一组以sp开头的文件。
三、安装1.shell中切换到oracle用户:su - oracle2.以sysdba身份登录sqlplus。
9i及以后版本,可以用sys用户以sysdba身份登录:sqlplus / as sysdba(最好转到脚本所有目录%oracle_home%\rdbms\admin,便于执行脚本)3.创建表空间,用于保存采样数据create tablespace perfstat datafile '/oradata/xdgl/perfstat.dbf(表空间存储路径)' size 100m;Statspack的报表数据还是相当占空间的,特别是在多次连续采样的情况下,所以不能太小,最小100M,否则创建对象会失败。
oracle数据库性能调优⼀:注意WHERE⼦句中的连接顺序:ORACLE采⽤⾃下⽽上的顺序解析WHERE⼦句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最⼤数量记录的条件必须写在WHERE⼦句的末尾.尤其是“主键ID=?”这样的条件。
⼆: SELECT⼦句中避免使⽤ ‘ * ‘:ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个⼯作是通过查询数据字典完成的, 这意味着将耗费更多的时间。
简单地讲,语句执⾏的时间越短越好(尤其对于系统的终端⽤户来说)。
⽽对于查询语句,由于全表扫描读取的数据多,尤其是对于⼤型表不仅查询速度慢,⽽且对磁盘IO造成⼤的压⼒,通常都要避免,⽽避免的⽅式通常是使⽤索引Index。
三:使⽤索引的优势与代价。
优势:1)索引是表的⼀个概念部分,⽤来提⾼检索数据的效率,ORACLE使⽤了⼀个复杂的⾃平衡B-tree结构. 通常,通过索引查询数据⽐全表扫描要快. 当ORACLE找出执⾏查询和Update语句的最佳路径时, ORACLE优化器将使⽤索引. 同样在联结多个表时使⽤索引也可以提⾼效率. 2)另⼀个使⽤索引的好处是,它提供了主键(primary key)的唯⼀性验证.。
那些LONG或LONG RAW数据类型, 你可以索引⼏乎所有的列. 通常, 在⼤型表中使⽤索引特别有效. 当然,你也会发现, 在扫描⼩表时,使⽤索引同样能提⾼效率.代价:虽然使⽤索引能得到查询效率的提⾼,但是我们也必须注意到它的代价. 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时, 索引本⾝也会被修改. 这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 因为索引需要额外的存储空间和处理,那些不必要的索引反⽽会使查询反应时间变慢.。
⽽且表越⼤,影响越严重。
使⽤索引需要注意的地⽅:1、避免在索引列上使⽤NOT , 我们要避免在索引列上使⽤NOT, NOT会产⽣在和在索引列上使⽤函数相同的影响. 当ORACLE”遇到”NOT,他就会停⽌使⽤索引转⽽执⾏全表扫描.2、避免在索引列上使⽤计算.WHERE⼦句中,如果索引列是函数的⼀部分.优化器将不使⽤索引⽽使⽤全表扫描.举例:代码如下:低效:SELECT … FROM DEPT WHERE SAL * 12 > 25000;⾼效:SELECT … FROM DEPT WHERE SAL > 25000/12;3、避免在索引列上使⽤IS NULL和IS NOT NULL避免在索引中使⽤任何可以为空的列,ORACLE性能上将⽆法使⽤该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果⾄少有⼀个列不为空,则记录存在于索引中.举例: 如果唯⼀性索引建⽴在表的A列和B列上, 并且表中存在⼀条记录的A,B值为(123,null) , ORACLE将不接受下⼀条具有相同A,B值(123,null)的记录(插⼊). 然⽽如果所有的索引列都为空,ORACLE将认为整个键值为空⽽空不等于空. 因此你可以插⼊1000 条具有相同键值的记录,当然它们都是空! 因为空值不存在于索引列中,所以WHERE⼦句中对索引列进⾏空值⽐较将使ORACLE停⽤该索引.代码如下:低效:(索引失效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;⾼效:(索引有效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;4、注意通配符%的影响使⽤通配符的情况下Oracle可能会停⽤该索引。
Oracle性能分析报告1. 引言Oracle是一种高效的关系数据库管理系统,但在使用过程中可能会遇到性能问题。
本文将介绍如何通过分析Oracle性能来识别并解决潜在的问题。
2. 数据收集要进行性能分析,首先需要收集相关数据。
以下是一些常用的数据收集方法:- 监视系统参数:使用Oracle自带的工具,如AWR报告和ASH报告,可以监视系统参数的变化和性能指标。
- 分析SQL语句:通过跟踪和分析执行时间较长的SQL 语句,可以找到性能瓶颈所在。
- 监视数据库等待事件:通过查看等待事件的情况,可以了解系统的瓶颈。
- 监视资源利用率:监视CPU、内存和磁盘等资源的利用率,以了解系统的健康状况。
3. 数据分析收集到数据后,需要对数据进行分析以识别性能问题。
以下是一些常用的数据分析方法: - 比较不同时间段的性能指标:通过比较不同时间段的性能指标,可以发现系统的变化和趋势。
- 查找长时间运行的SQL语句:通过识别执行时间较长的SQL语句,可以找到潜在的性能问题。
- 分析等待事件:通过查看数据库等待事件的情况,可以确定系统的瓶颈所在。
- 分析资源利用率:通过监视资源利用率,可以确定系统是否存在资源瓶颈。
4. 性能优化通过数据分析,可以确定性能问题的原因。
以下是一些常用的性能优化方法:- 优化SQL查询:对执行时间较长的SQL语句进行优化,如增加索引、重写查询等。
- 调整系统参数:根据系统的需求,调整相关的系统参数,如缓冲区大小、并发连接数等。
- 优化存储结构:对表的存储结构进行优化,如分区、索引等。
- 调整硬件配置:根据系统的需求,调整硬件配置,如增加CPU、内存等。
5. 总结通过以上的步骤,可以对Oracle数据库的性能进行分析和优化。
收集相关数据、分析数据、识别问题、优化性能是一个迭代的过程,需要不断调整和优化。
只有对Oracle性能进行持续监测和优化,才能确保系统的高效运行。
以上是关于Oracle性能分析报告的步骤和方法的介绍。
Oracle自带性能分析工具-AWR介绍和分析华三通信技术1 Oracle 10g的AWR性能优化工具简介AWR (Automatic Workload Repository)既自动工作负载信息库是Oracle10g新提供的收集数据库统计信息的置工具。
它比之前的statspack有显著的改进,收集的信息也更多、更全面,使用方法也更简单。
它主要采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题,如包括AWR存区,历史数据存储文件和ASH等部件。
AWR报告的容繁多,官方文档也没有对所有参数给出说明。
AWR产生的报表包括以下几部分。
报表具体容参见如下插入的对象。
1、Report SummeryCache sizesLoad profileInstance Efficiency Percentages (Target 100%)Shared Pool StatisticsTop 5 Timed Events2、RAC StatisticsGlobal Cache Load ProfileGlobal Cache Efficiency Percentages (Target local+remote 100%)Global Cache and Enqueue Services - Workload CharacteristicsGlobal Cache and Enqueue Services - Messaging Statistics3、Wait Events StatisticsTime Model StatisticsWait ClassWait EventsBackground Wait EventsOperating System StatisticsService StatisticsService Wait Class Stats4、SQL StatisticsSQL ordered by Elapsed TimeSQL ordered by CPU TimeSQL ordered by GetsSQL ordered by ReadsSQL ordered by ExecutionsSQL ordered by Parse CallsSQL ordered by Sharable Memory SQL ordered by Version CountSQL ordered by Cluster Wait Time Complete List of SQL Text5、Instance Activity StatisticsInstance Activity StatsInstance Activity Stats - Absolute Values Instance Activity Stats - Thread Activity 6、IO StatsTablespace IO StatsFile IO Stats7、Buffer Pool Statistics8、Advisory StatisticsInstance Recovery StatsBuffer Pool AdvisoryPGA Aggr SummaryPGA Aggr Target StatsPGA Aggr Target HistogramPGA Memory AdvisoryShared Pool AdvisorySGA Target AdvisoryStreams Pool AdvisoryJava Pool Advisory9、Wait StatisticsBuffer Wait StatisticsEnqueue Activity10、Undo StatisticsUndo Segment SummaryUndo Segment Stats11、Latch StatisticsLatch ActivityLatch Sleep BreakdownLatch Miss SourcesParent Latch StatisticsChild Latch Statistics12、Segment StatisticsSegments by Logical ReadsSegments by Physical ReadsSegments by Row Lock WaitsSegments by ITL WaitsSegments by Buffer Busy WaitsSegments by Global Cache Buffer Busy Segments by CR Blocks ReceivedSegments by Current Blocks Received 13、Dictionary Cache StatisticsDictionary Cache StatsDictionary Cache Stats (RAC)14、Library Cache StatisticsLibrary Cache ActivityLibrary Cache Activity (RAC) 15、Memory StatisticsProcess Memory SummarySGA Memory SummarySGA breakdown difference 16、Streams StatisticsStreams CPU/IO UsageStreams CaptureStreams ApplyBuffered QueuesBuffered SubscribersRule Set17、Resource Limit Stats18、init.ora Parameters19、Global Enqueue Statistics20、Global CR Served Stats21、Global CURRENT Served Stats22、Global Cache Transfer Stats2 AWR配置2.1 AWR统计数据的缺省配置AWR 实质上是一个 Oracle 的置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
如何使用AWR报告来诊断Oracle数据库性能问题1如何使用AWR报告来诊断数据库性能问题 (2)1.1概述 (2)1.2性能诊断解决方案 (2)1.3如何收集AWR报告 (2)1.4Top 5 Timed Events部分 (7)1.5SQL Statistics部分 (10)1.5.1使用SQL Tuning Advisor (13)1.6Load Profile部分 (16)1.7Instance Efficiency部分 (17)1.8Latch Activity部分 (18)1.9其它值得注意的等待事件 (19)1.9.1CPU time events (19)1.9.2Log file sync waits (20)1如何使用AWR报告来诊断Oracle数据库性能问题1.1概述AWR、ADDM、ASH是分析Oracle数据库性能问题的重要工具。
本文主要描述了如何阅读、解析AWR报告中关于数据库性能问题的内容,帮助Oracle管理人员快速定位、解决Oracle数据库性能问题。
需要注意的是,生成AWR Report、访问AWR视图的相关内容,以及使用AWR 相关的诊断信息,都需要额外的Diagnostic Pack授权。
同时,生成AWR、ADDM、ASH报告也都需要获得Diagnostic Pack授权。
1.2性能诊断解决方案对于Oracle数据库整体的性能问题,AWR的报告是一个非常有用的诊断工具。
一般来说,当发现有性能问题时,我们会收集有性能问题的时间段的AWR报告。
但最好只收集1个小时时间段的AWR报告,如果时间过长,AWR报告就不能很好的反映出问题所在。
同时,还应该收集一份没有性能问题的时间段的AWR报告,作为一个参照,来对比有问题的时间段的AWR报告,而且,这两个AWR报告的时间段应该是一致的。
1.3如何收集AWR报告AWR属于sys用户,用于存放系统性能指标数据。
AWR存放于SYSAUX表空间。
数据库性能分析与优化的常用工具数据库是现代应用开发的关键组成部分,对于大型企业或网站来说,数据库性能的高效与稳定是至关重要的。
为了保证数据库的运行和响应速度,开发人员和数据库管理员需要使用一些专业的工具来进行性能分析和优化。
下面将介绍一些常用的数据库性能分析与优化工具。
1. SQL ProfilerSQL Profiler是微软SQL Server的性能分析工具,能够监测数据库服务器上的活动,并生成相应的日志文件。
通过分析SQL Profiler生成的日志文件,开发人员可以发现数据库的潜在问题。
SQL Profiler可以捕获和显示各种事件,包括数据库的查询和事务执行。
它还提供了性能计数器,用于监控数据库服务器的性能指标,并识别潜在的性能瓶颈。
2. Explain PlanExplain Plan是Oracle数据库的一个工具,用于显示SQL查询语句的执行计划。
执行计划是Oracle数据库引擎根据SQL查询语句优化器的规划而生成的一组操作步骤。
通过分析执行计划,可以了解查询语句的执行情况,包括使用的索引、连接方式和排序方式等。
通过优化查询语句的执行计划,可以提高查询的性能。
3. MySQL Performance Tuning PrimerMySQL Performance Tuning Primer是一个基于命令行的工具,用于分析和优化MySQL数据库的性能。
该工具可以分析MySQL服务器的配置参数,并给出优化建议。
它可以检查诸如缓冲池大小、连接数和查询缓存等参数的设置,并提供了针对这些参数的建议和优化指南。
开发人员可以根据这些建议和指南,对MySQL服务器的配置进行优化,提高数据库的性能。
4. pg_stat_statementspg_stat_statements是PostgreSQL数据库的一个扩展模块,用于收集和分析数据库中的SQL查询语句的执行统计信息。
该模块可以记录查询语句的执行次数、执行时间和返回行数等信息,并将这些信息存储在指定的统计表中。
awr报告分析AWR报告是Oracle数据库专业的性能分析工具之一。
通过AWR报告分析,可以清楚地了解数据库的性能瓶颈,并针对性地进行优化。
在日常数据库维护和性能优化过程中,AWR报告分析是必不可少的一部分。
AWR报告是Automatic Workload Repository(自动工作负载存储库)的简称。
它是Oracle数据库在10g及以上版本中引入的一项新功能,用于收集数据库运行期间的性能信息。
通常情况下,AWR报告的生成周期为30分钟,也可以手动进行生成。
AWR报告保存在数据库中,可以长时间保存。
AWR报告主要由三个部分组成:数据库基本信息、性能诊断和总体数据库性能指标。
其中,数据库基本信息主要包括数据库版本、实例名称、时间范围等。
性能诊断主要是对数据库中存在的性能瓶颈进行诊断和描述。
总体数据库性能指标则用于反映数据库的整体性能状况。
在进行AWR报告分析时,需要特别注意以下几个方面:1. 数据库的响应时间响应时间是用户感知性能的直接指标。
AWR报告可以提供数据库在不同时间段内的响应时间统计信息,可以帮助我们发现响应时间异常的问题,并进行针对性的优化。
2. 数据库资源的利用率AWR报告可以提供数据库各个资源的利用率信息,包括CPU、内存、磁盘等。
这些信息可以帮助我们了解数据库的资源状况,发现系统瓶颈所在,并进行资源分配或瓶颈优化。
3. SQL语句的执行情况SQL语句是数据库的核心组成部分,也是数据库性能优化的重点。
AWR报告可以提供SQL语句的执行情况,包括执行时间、执行次数、锁等待情况等。
通过分析SQL语句的执行情况,可以发现性能瓶颈所在,进而优化SQL语句的执行效率。
4. 数据库的并发度并发度是数据库可以同时处理的用户数量。
AWR报告中可以提供并发量、等待事件、死锁等信息。
这些信息可以帮助我们发现影响数据库并发度的因素,并进行相应的优化。
同时,还需要注意AWR报告的时间跨度和样本数量,以保证AWR报告分析的准确性和有效性。
ORACLE性能AWR报告的使用和分析Oracle性能AWR报告(Automatic Workload Repository)是Oracle 数据库提供的一个强大的性能诊断工具,可以帮助管理员识别和解决数据库性能问题。
AWR报告收集和保存数据库的性能指标和统计信息,以便在需要时进行分析和比较。
本文将介绍AWR报告的使用和分析过程,包括如何收集AWR报告、AWR报告的内容和结构、及如何分析AWR报告。
一、收集AWR报告AWR报告只能在Oracle数据库中收集,首先需要启用AWR功能。
在Oracle数据库中,AWR功能默认是开启的。
你可以使用以下命令查看AWR 功能是否已经开启:```SELECT name FROM v$statname WHERE name LIKE '%AWR%';```如果显示了AWR相关的统计项,则表示AWR功能已经启用。
要收集AWR报告,需要按照以下步骤操作:1. 连接到数据库,在SQLPlus或类似的工具中执行以下命令,以开启AWR快照:```EXECDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;```2.执行一段时间(建议至少30分钟)的正常工作负载。
3.再次执行以下命令,以关闭AWR快照:```EXECDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;```4.通过以下命令查看AWR报告的快照ID:```SELECT snap_id FROM dba_hist_snapshot ORDER BY snap_id;```5.选择要分析的快照ID,使用以下命令生成AWR报告:``````根据提示输入快照ID和报告类型(HTML或文本),即可生成AWR报告。
二、AWR报告的内容和结构AWR报告提供了丰富的性能指标和统计信息,以帮助诊断数据库性能瓶颈。
AWR报告通常包括以下几个部分:1.报告概述:包含报告生成的时间、数据库版本、报告周期等信息,并提供了一个整体的性能评估。
如何看懂Oracle数据AWR报告Oracle 数据库性能分析非常重要,是确保数据库正常运行和提高数据库性能的关键。
AWR 报告(Automatic Workload Repository)对于数据库性能分析非常有用,它提供了数据库性能和负载的详细信息,以及发现和解决性能问题的线索。
下面是如何读懂 Oracle 数据库的 AWR 报告的一些建议。
1.理解AWR报告的用途和内容:2.确定报告时间范围:AWR报告通常包含一个时间段内的数据库活动和性能数据。
报告时间范围由两个快照之间的时间差来决定,可以根据需要调整时间范围。
3.研究数据库摘要:数据库摘要提供了数据库的概述信息,包括数据库名称,数据库ID,时间范围,平均每分钟的活动数,CPU使用率,等待事件,和数据库活动分布图。
研究数据库摘要可提供关于数据库的整体性能趋势和问题的指导。
4. 分析系统统计信息(systemstat):负载文件(systemstat)提供了关于数据库资源使用率和等待事件的详细信息。
通过分析不同的统计信息,可以确定资源利用率和潜在的瓶颈问题。
时间模型统计信息提供了数据库活动的详细信息,包括CPU使用率、等待事件、用户调度和I/O活动。
这些信息有助于确定数据库活动的性能瓶颈和优化机会。
6. 调查 Active Session History(ASH):Active Session History(ASH)提供了活动会话的详细信息,包括等待事件,会话维度的统计信息和 SQL 维度的统计信息。
通过分析活动会话的等待事件和 SQL 统计信息,可以确定性能问题的根本原因。
7.关注SQL维度的统计信息:SQL维度的统计信息提供了关于SQL语句的性能和运行统计信息。
通过分析SQL的执行计划,CPU和I/O的使用情况,以及等待事件,可以确定SQL语句的性能问题和优化机会。
8.使用性能诊断工具:Oracle 提供了一些性能诊断工具,如 SQL Tuning Advisor 和Automatic Database Diagnostic Monitor(ADDM),可以根据 AWR 报告提供的信息提供专业的性能分析和优化建议。
ORACLE性能诊断AWR报告的使用和分析为满足业务的运行要求,高性能要求是目前IT系统普遍面临的最棘手问题,尤其是客户面对着目前越来越庞大系统和数据,系统整合、数据大集中似乎成了趋势。
针对系统性能优化的诊断和分析,数据库方向又是其中的重要一环,本文将针对ORACLE中常用的性能诊断工具AWR报告,进行分析说明。
一、ORACLE性能诊断工具ORACLE数据库的性能的诊断工具有很多种,在9i之前主要通过手工进行采集分析,例如使用动态视图和Statspack报告来获取数据库性能状态信息,10g以后ORACLE数据库的性能诊断和改进建议越来越自动化,不过能够熟悉并掌握ORACLE的相关性能诊断工具的使用,仍对性能问题的准确和有效处理提供有利的帮助。
以下是ORACLE中常用的一些分析工具。
●动态性能视图动态性能视图是ORACLE中最常用,也是最简单的一种工具。
无论何种性能问题,都能在动态性能视图中找到线索,不过仅10g中动态性能视图就高达几百个,每个视图都包括很多诊断信息,想在众多的视图中找到问题的根源,也是一件费力的事情。
一般常用的动态性能视图有:v$session、v$session_wait、v$process、v$sql、v$lock、v$latch、v$sysstat、v$system_event、v$sgastat。
●Statspack报告statspack 是Oracle 9i 之前使用的一个数据库收集工具,收集了数据库全面信息,包括负载概览、前五个等待事件、高速缓存的大小、共享池中SQL语句、表空间和文件I/O、库高速缓存、SGA统计等。
●AWR和ADDM报告AWR是10g以后提供的一个新工具,Oracle 建议用户用这个取代Statspack,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题,并自动生成ADDM (自动数据库诊断监控)报告,为用户提供数据库性能诊断分析建议。