awr性能分析报告实例详解

合集下载

AWR报告详细分析

AWR报告详细分析

AWR报告详细分析AWR(Automatic Workload Repository)报告是Oracle数据库中的一个特殊工具,用于收集和保存数据库性能数据,以便进行性能分析和调优。

详细分析AWR报告可以为数据库管理员提供有关数据库性能的深入见解,并支持其优化决策。

下面将对AWR报告的详细分析进行讨论。

首先,在AWR报告中,我们可以看到数据库的各种性能指标,例如平均每秒SQL执行次数、平均每秒事务数、平均每秒用户等待数等。

通过分析这些指标,我们可以了解数据库的整体负载情况、应用程序的并发性和用户体验。

例如,如果平均每秒SQL执行次数和事务数非常高,而平均每秒用户等待数也很高,那么可能存在数据库性能瓶颈,需要进行性能优化。

其次,在AWR报告的Top 5 Timed Events部分,我们可以看到数据库中最耗时的事件,如CPU消耗、IO等待和锁等待。

通过分析这些事件,可以找到系统的性能瓶颈。

例如,如果IO等待时间占比较高,可能需要优化磁盘子系统,提高IO性能。

如果锁等待时间比较高,可能需要优化数据库设计,减少锁竞争。

另外,在AWR报告的SQL Statistics部分,可以找到数据库中执行时间最长的SQL语句。

通过分析这些SQL语句,可以找到潜在的性能问题,例如缺少索引、查询优化等。

对于执行时间最长的SQL语句,可以使用Oracle提供的SQL Tuning Advisor进行调优,以提高性能。

此外,在AWR报告的Cache Sizes部分,可以看到数据库中各种缓存的命中率。

通过分析这些命中率,可以了解数据库的缓存使用情况,并进行相应的调优。

例如,如果Buffer Cache命中率较低,可能需要增加数据库的缓存大小;如果Shared Pool命中率较低,可能需要调整SQL语句的执行计划或增加共享池的大小。

最后,在AWR报告的Instance Efficiency Percentages部分,可以看到数据库中各种利用率的百分比。

最详尽的AWR报告详细分析

最详尽的AWR报告详细分析

AWR报告详细分析AWR 是 Oracle 10g 版本推出的新特性,全称叫Automatic Workload Repository-自动负载信息库, AWR 是通过对比两次快,照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分。

WORKLOAD REPOSITORY report forDB Name DB Id Instance Inst num Release RAC HostICCI 1314098396 ICCI1 1 10.2.0.3.0 YES HPGICCI1Snap Id Snap Time Sessions Cursors/SessionBegin Snap: 2678 25-Dec-08 14:04:50 24 1.5End Snap: 2680 25-Dec-08 15:23:37 26 1.5Elapsed: 78.79 (mins)DB Time: 11.05 (mins)Elapsed 时间,说明数据库比较空闲。

db time= cpu time + wait time(不包含空闲等待)(非后台进程)说白了就是db time就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间DB time = cpu time + all of nonidle wait event time在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。

说明系统压力非常小。

列出下面这两个来做解释:Report A:Snap Id Snap Time Sessions Curs/Sess--------- ------------------- -------- ---------Begin Snap: 4610 24-Jul-08 22:00:54 68 19.1End Snap: 4612 24-Jul-08 23:00:25 17 1.7Elapsed: 59.51 (mins)DB Time: 466.37 (mins)Report B:Snap Id Snap Time Sessions Curs/Sess--------- ------------------- -------- ---------Begin Snap: 3098 13-Nov-07 21:00:37 39 13.6End Snap: 3102 13-Nov-07 22:00:15 40 16.4Elapsed: 59.63 (mins)DB Time: 19.49 (mins)服务器是AIX的系统,4个双核cpu,共8个核:/sbin> bindprocessor -qThe available processors are: 0 1 2 3 4 5 6 7先说Report A,在snapshot间隔中,总共约60分钟,cpu就共有60*8=480分钟,DB time 为466.37分钟,则:cpu花费了466.37分钟在处理Oralce非空闲等待和运算上(比方逻辑读)也就是说cpu有466.37/480*100% 花费在处理Oracle的操作上,这还不包括后台进程看Report B,总共约60分钟,cpu有19.49/480*100% 花费在处理Oracle的操作上很显然,2中服务器的平均负载很低。

awr分析报告详解

awr分析报告详解

awr分析报告详解AWR分析报告(Automatic Workload Repository)是Oracle数据库提供的一个强大的性能分析工具,可以帮助用户深入了解数据库的性能瓶颈、资源利用情况和应用程序行为。

本文将对AWR分析报告的内容进行详解,帮助读者更好地理解和应用AWR分析报告。

一、概述AWR分析报告是由Oracle数据库自动收集和生成的,以图表和表格形式展示数据库性能数据的报告。

它主要分为以下几个部分:Snapshots Summary、Top 5 Timed Events、SQL Statistics、Wait Events 等。

1. Snapshots SummarySnapshots Summary部分展示了在指定时间范围内的数据库快照信息,包括快照的起始时间、终止时间、快照之间的时间间隔等。

通过该部分,我们可以了解快照的基本信息,为后续的分析提供基础。

2. Top 5 Timed EventsTop 5 Timed Events部分显示了数据库中花费时间最长的前五个事件。

这些事件可能包括CPU消耗、IO等待、锁等待等。

通过分析这些事件,可以找到数据库的性能瓶颈所在,并进行相应的优化。

3. SQL StatisticsSQL Statistics部分提供了数据库中执行时间最长的SQL语句信息。

它包括了每个SQL语句的执行次数、平均执行时间、逻辑读、物理读等指标。

通过分析这些指标,可以找出执行时间最长的SQL语句和索引缺失等问题,并进行性能优化。

4. Wait EventsWait Events部分展示了数据库中发生的等待事件。

它包括等待事件的类型、等待时间占比等指标。

通过分析等待事件,可以发现数据库中存在的资源争用和瓶颈,并进行适当的调整和优化。

二、AWR分析报告的应用方法AWR分析报告提供了丰富的数据库性能数据,但如何进行分析和应用是关键。

下面将介绍几种常用的分析方法:1. 性能瓶颈分析通过分析Top 5 Timed Events和Wait Events,可以找到数据库中的性能瓶颈所在。

awr 实验报告

awr 实验报告

awr 实验报告AWR实验报告引言:AWR(Advanced Wireless Research)是一种基于无线通信技术的研究方法,旨在提高无线网络的性能和效率。

本实验报告将介绍我们在AWR实验中的设计、实施和结果分析。

实验目的:我们的实验目的是通过使用AWR软件来设计和模拟无线通信系统。

具体而言,我们希望通过AWR来优化系统的传输速率、信号质量和能耗。

实验步骤:1. 系统设计:我们首先在AWR中设计了一个基于OFDM(正交频分复用)的无线通信系统。

我们选择OFDM是因为它在抗干扰和频谱利用率方面具有优势。

2. 参数设置:我们根据实验需求设置了系统的参数,包括载波频率、子载波数量、调制方式等。

3. 信道建模:我们模拟了不同的信道环境,包括理想信道、多径衰落信道等,以评估系统在不同信道条件下的性能表现。

4. 性能分析:我们通过AWR中的仿真工具,对系统的传输速率、误码率和能耗进行了分析。

同时,我们也对系统的功率谱密度和频谱利用率进行了评估。

5. 优化调整:根据分析结果,我们对系统进行了优化调整,包括调整调制方式、增加码率等,以提高系统性能。

实验结果:在AWR实验中,我们获得了一系列有关无线通信系统性能的数据。

通过分析这些数据,我们得出了以下结论:1. OFDM系统相对于其他调制方式,具有更好的抗干扰性能和频谱利用率。

2. 在多径衰落信道下,系统的传输速率和信号质量会受到一定影响,但通过优化调整可以改善系统性能。

3. 调制方式、码率和信道环境等参数的选择对系统性能有重要影响,需要根据实际情况进行优化调整。

讨论与展望:AWR实验为我们提供了一个全面的无线通信系统设计和优化的平台。

通过实验,我们深入了解了无线通信系统的原理和性能评估方法。

未来,我们可以进一步探索AWR在其他无线通信领域的应用,如5G通信、物联网等。

结论:通过AWR实验,我们成功设计和模拟了一个基于OFDM的无线通信系统,并通过优化调整提高了系统的性能。

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析ORACLE AWR(Automatic Workload Repository)报告是ORACLE数据库的性能诊断和优化工具之一、它采集并保存了数据库实例的性能指标数据,例如CPU利用率、内存利用率、I/O活动等。

在实际工作中,分析AWR报告可以帮助我们了解数据库实例的性能瓶颈,并提供相应的优化建议。

AWR报告通常包含多个部分,包括实例活动统计、系统事件统计、SQL统计、I/O统计、SGA统计等。

下面将详细分析AWR报告的各个部分,并提供相应的优化建议。

1.实例活动统计:实例活动统计提供了数据库实例整体的活动情况,包括CPU利用率、用户连接数、用户等待等。

通过分析这些数据,可以判断数据库实例是否存在性能瓶颈,并从中找出问题的原因。

优化建议:-如果CPU利用率较高,可能是由于SQL语句执行效率低导致的,可以通过优化SQL语句来减少CPU负载。

-如果用户等待较多,可能是由于一些资源的瓶颈导致的,可以通过增加相应资源的容量来提高性能。

2.系统事件统计:系统事件统计列出了数据库实例中发生的各种事件的次数和等待时间。

通过分析这些数据,可以判断数据库实例中是否存在事件等待较高的情况,以及可能导致事件等待的原因。

优化建议:-如果一些事件的等待时间较高,可以通过增加相应资源的容量或者调整相关参数来减少等待时间。

-如果类事件的总等待时间较高,可能需要对相关资源进行优化或者增加容量。

3.SQL统计:SQL统计列出了数据库中执行次数较高的SQL语句的统计信息,包括执行次数、平均执行时间、Buffer gets、Disk reads等。

通过分析这些数据,可以找出执行效率较低的SQL语句,并进行优化。

优化建议:-对于执行时间较长的SQL语句,可以通过重写或者调整查询计划来提高执行效率。

-对于频繁执行的SQL语句,可以通过增加缓存或者优化索引来减少IO操作。

4.I/O统计:I/O统计提供了数据库实例中各种I/O活动的统计信息,包括每个表空间的读写次数、平均读写时间等。

ORACLE性能AWR报告的使用和分析

ORACLE性能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.报告概述:包含报告生成的时间、数据库版本、报告周期等信息,并提供了一个整体的性能评估。

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析ORACLE AWR(Automatic Workload Repository)是一个用于监视和分析数据库性能的工具。

它收集数据库的性能指标和系统活动信息,并将其存储在AWR存储库中。

AWR报告是通过查询AWR存储库生成的,它提供了数据库的详细性能分析。

在本文中,将详细分析ORACLE AWR报告的内容。

首先,AWR报告提供了数据库的总体性能概述。

它显示了数据库的重要性能指标,如响应时间、吞吐量和并发事务数量。

通过这些指标,可以了解数据库在给定时间段内的整体状况以及它是否处于健康状态。

除了总体概述,AWR报告还提供了数据库活动的详细信息。

这包括CPU利用率、用户会话、等待事件和数据库服务时间等方面。

CPU利用率显示了数据库服务器上CPU资源的消耗情况,可以用于判断数据库的CPU 是否已经足够满足系统的需求。

用户会话部分提供了有关会话活动和会话等待时间的信息,可以帮助我们了解用户在数据库上的操作情况以及可能的性能瓶颈。

等待事件是AWR报告中一个重要的部分,它显示了数据库中存在的等待事件及其持续时间。

等待事件表明数据库在一些操作中遇到了延迟,并为我们提供了进一步分析和优化数据库性能的线索。

例如,如果一些等待事件的时间很长,我们可以通过调整SQL查询或重新配置数据库参数来改善性能。

此外,AWR报告还提供了关于SQL执行的详细信息。

它显示了数据库中占用最多资源(CPU、IO、内存等)的SQL语句。

通过分析这些SQL语句,可以找到潜在的性能问题,并针对性地进行优化。

此外,AWR报告还提供了SQL执行计划和索引使用的信息,这对于优化查询性能非常有帮助。

最后,AWR报告还包括一些系统和内存配置信息。

它显示了数据库的配置参数、共享池和缓冲池的使用情况,以及SGA和PGA的配置和使用情况。

这些信息对于调整数据库的性能和容量非常重要。

总之,ORACLEAWR报告提供了数据库性能的详细分析。

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析Oracle AWR(Automatic Workload Repository)报告是Oracle数据库提供的一个性能分析工具,用于识别数据库的瓶颈和优化潜力。

通过分析AWR报告,数据库管理员可以获取关于数据库实例的详细性能信息,并采取相应的措施来改进数据库性能。

AWR报告提供了广泛的性能指标和统计数据,其中包括数据库负载、SQL语句的执行情况、系统活动、资源使用和等待事件等。

在分析AWR报告时,可以根据以下几个方面进行详细分析:1.数据库负载分析:AWR报告中的数据库负载信息可以帮助我们了解数据库的整体负载情况。

这包括CPU利用率、物理和逻辑读写次数、用户、系统和I/O等待时间等。

通过检查这些指标,我们可以找到数据库的瓶颈,并采取相应的优化措施,如增加CPU资源、调整I/O配置等。

2.SQL语句执行情况分析:AWR报告中提供了SQL语句执行情况的详细信息,包括每个SQL语句的执行次数、平均执行时间、等待时间等。

通过分析这些信息,我们可以确定哪些SQL语句是数据库性能的瓶颈,并对其进行优化。

我们可以检查执行时间最长的SQL语句,优化其执行计划、创建索引、重新编写SQL语句等以提高其性能。

3.系统活动和资源使用情况分析:AWR报告中还提供了系统活动和资源使用情况的详细信息,如CPU使用率、内存使用、磁盘和网络I/O等。

通过分析这些指标,我们可以了解数据库实例的整体状态和资源使用情况,并对其进行调优。

例如,通过检查高CPU利用率的时间段,我们可以找出可能导致性能下降的原因,如长时间运行的SQL语句、重复执行的作业等。

4.等待事件分析:AWR报告中提供了等待事件的详细统计数据,包括等待事件的数量、平均等待时间和等待时间百分比等。

等待事件是数据库性能问题的一个重要指标,它表示数据库在处理请求时等待的时间。

通过分析等待事件,我们可以找出哪些事件导致了性能问题,并采取相应的措施来解决这些问题,如调整等待事件的阈值、优化数据库配置等。

循序渐进解读Oracle AWR性能分析报告

循序渐进解读Oracle AWR性能分析报告

循序渐进解读Oracle AWR性能分析报告Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库。

它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时)为其所有重要的统计信息和负载信息执行一次快照,并将快照存放入AWR中。

这些信息在AWR中保留指定的时间(默认为1周),然后执行删除。

执行快照的频率和保持时间都是可以自定义的。

AWR的引入,为我们分析数据库提供了非常好的便利条件(这方面MySQL就相差了太多)。

曾经有这样的一个比喻——“一个系统,就像是一个黑暗的大房间,系统收集的统计信息,就如同放置在房间不同位置的蜡烛,用于照亮这个黑暗大房间。

Oracle,恰到好处地放置了足够的蜡烛(AWR),房间中只有极少的烛光未覆盖之处,性能瓶颈就容易定位。

而对于蜡烛较少或是没有蜡烛的系统,性能优化就如同黑暗中的舞者。

”那如何解读AWR的数据呢?Oracle本身提供了一些报告,方便进行查看、分析。

下面就针对最为常见的一种报告——《AWR数据库报告》进行说明。

希望通过这篇文章,能方便大家更好地利用AWR,方便进行分析工作。

一、MAIN1Database Information2Snapshot Information(1)Sessions表示采集实例连接的会话数。

这个数可以帮助我们了解数据库的并发用户数大概的情况。

这个数值对于我们判断数据库的类型有帮助。

(2)Cursors/session每个会话平均打开的游标数。

(3)Elapsed通过Elapsed/DB Time比较,反映出数据库的繁忙程度。

如果DB Time>>Elapsed,则说明数据库很忙。

(4)DB Time表示用户操作花费的时间,包括CPU时间和等待事件。

通常同时这个数值判读数据库的负载情况。

具体含义db time = cpu time + wait time(不包含空闲等待)(非后台进程)*db time就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间。

AWR分析报告解析

AWR分析报告解析

AWR分析报告解析AWR(Automatic Workload Repository)是Oracle数据库自带的一项性能诊断工具,可以收集数据库实例的性能数据并生成详细的报告。

AWR分析报告是针对数据库实例进行性能分析的重要依据,通过分析AWR 报告可以找出数据库的瓶颈,诊断性能问题,并提出相应的优化建议。

1.概述部分:该部分主要对数据库实例进行整体概述,包括数据库版本、实例名称、快照开始和结束时间等信息,通过该部分可以了解数据库的基本情况。

2. Load Profile部分:该部分主要展示数据库在快照期间的负载情况,包括每秒事务数、每秒用户数、每秒SQL语句执行数等。

通过该部分可以了解数据库的负载情况,判断数据库是否存在负载过重的情况。

3. Instance Efficiency Percentages部分:该部分主要展示数据库实例的各项效率指标,如Buffer Cache命中率、Library Cache命中率、Dictionary Cache命中率等。

通过该部分可以了解数据库的缓存使用状况,判断数据库在数据缓存和SQL代码重用方面的效率。

4. Top 5 Timed Events部分:该部分主要展示数据库实例在快照期间消耗时间最长的5个事件,如CPU消耗、物理读取、逻辑读取等。

通过该部分可以了解数据库实例的性能瓶颈所在,确定需要优化的方向。

5. SQL Statistics部分:该部分主要展示在快照期间执行时间最长的SQL语句,包括每个SQL语句的执行次数、平均执行时间、总消耗的CPU时间等。

通过该部分可以找出执行时间较长的SQL语句,进一步分析优化的可能性。

6. Tuning Summary部分:该部分主要展示数据库实例在快照期间的性能提升提示和建议。

通过该部分可以了解数据库实例的问题以及相应的解决方法和建议。

在解析AWR分析报告时,需要综合考虑各个部分的内容,辨认出可能存在的性能问题和瓶颈,并针对性地进行优化。

oracle awr报告详解

oracle awr报告详解

oracle awr报告详解(原创实用版)目录1.Oracle AWR 报告简介2.Oracle AWR 报告的组成部分3.Oracle AWR 报告各部分的含义和分析方法4.Oracle AWR 报告的应用场景5.总结正文Oracle AWR 报告详解1.Oracle AWR 报告简介Oracle AWR(Automatic Workload Repository)报告是一种性能分析工具,可以自动采集 Oracle 运行中的负载信息,并生成与性能相关的统计数据。

通过分析这些统计数据,可以发现潜在的问题并采取相应的优化措施。

Oracle AWR 报告对于数据库性能分析和问题排查具有重要意义。

2.Oracle AWR 报告的组成部分Oracle AWR 报告主要包括以下几个部分:(1)报告基本信息:包括报告的唯一标识符、生成时间、数据库版本等信息。

(2)数据库物理环境相关信息:包括数据库名称、数据库版本、实例名称等。

(3)性能指标:包括 CPU 使用率、内存使用率、磁盘 I/O、锁等待时间等。

(4)SQL 语句分析:对执行频率高、消耗资源多的 SQL 语句进行分析。

(5)数据库对象分析:对表空间、数据文件、索引等数据库对象的性能进行分析。

(6)故障诊断:根据性能指标和 SQL 语句分析结果,给出可能的问题原因和解决建议。

3.Oracle AWR 报告各部分的含义和分析方法(1)报告基本信息:用于快速了解报告的基本情况,便于后续分析。

(2)数据库物理环境相关信息:用于了解数据库的物理环境,为后续分析提供基础数据。

(3)性能指标:通过分析性能指标,可以发现数据库性能的瓶颈,如 CPU 使用率高、内存使用率高、磁盘 I/O 繁忙等问题。

针对这些问题,可以采取相应的优化措施,如调整 CPU 核心数、增加内存、优化磁盘配置等。

(4)SQL 语句分析:通过分析 SQL 语句执行频率和消耗资源情况,可以发现性能问题可能存在的 SQL 语句。

Oracle_AWR_报告分析实例讲解

Oracle_AWR_报告分析实例讲解

Oracle_AWR_报告分析实例讲解Oracle AWR(Automatic Workload Repository)报告是一个用于性能优化的强大工具。

它会收集数据库实例的性能指标,以便分析和诊断数据库性能问题。

在本文中,将介绍一个实例,展示如何使用AWR报告进行性能分析。

首先,要生成AWR报告,需要运行ADDM(Automatic Database Diagnostic Monitor)分析。

在数据库服务器上登录SQL*Plus,运行以下命令:```BEGINDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;END;```该命令会为当前数据库实例创建一个AWR快照。

快照会记录数据库的性能指标,例如CPU利用率、内存使用情况、IO操作等。

完成数据收集后,可以使用以下命令来生成AWR报告:``````这会生成一个HTML格式的AWR报告文件。

在浏览器中打开报告文件,可以查看数据库的性能分析结果。

现在我们来分析一个实际的AWR报告。

在报告的开头,会显示数据库实例的基本信息,包括名称、版本、开始和结束时间等。

下面会列出主要的性能指标,例如数据库负载、并发会话、IO等。

在报告的摘要部分,会列出性能问题的概要。

这里会显示数据库实例的主要问题,例如高负载、慢查询、内存不足等。

这是一个非常有用的指标,可以帮助我们快速定位性能问题的症结所在。

在AWR报告的后半部分,会有详细的性能指标分析。

例如,会列出最耗费CPU资源的SQL语句,以及它们的执行次数和执行时间。

这可以帮助我们找到哪些SQL语句需要进行优化,以减少数据库负载和响应时间。

此外,报告还会列出IO操作的统计信息,例如读写请求、平均响应时间等。

这可以帮助我们定位潜在的IO瓶颈,以优化数据库的IO性能。

在AWR报告中还有其他许多详细的性能指标,例如死锁、PGA和SGA 内存的使用等。

可以根据具体的需求来分析这些指标。

总结起来,AWR报告是一个非常有用的性能分析工具,可以帮助我们快速发现和解决数据库性能问题。

awr报告详细分析

awr报告详细分析

AWR报告详细分析AWR(Automatic Workload Repository)报告是Oracle数据库系统提供的一项性能分析工具,它能够收集并保存数据库实例的运行信息。

通过对AWR报告进行详细的分析,可以帮助我们了解数据库的性能瓶颈,并进行相应的优化。

本文将以Step by Step的思路,介绍如何对AWR报告进行详细分析。

第一步:选择AWR报告在Oracle数据库中,我们可以使用以下命令生成AWR报告:SELECT*FROM TABLE(dbms_workload_repository.awr_report_html(<dbid>, <inst_num>, <begin_snap>, <end_snap>));在命令中,dbid是数据库的标识号,inst_num是实例的编号,begin_snap和end_snap是要分析的快照点的编号。

第二步:报告概览打开AWR报告后,我们首先需要查看报告的概览部分。

概览部分包含了数据库的一些基本信息,例如数据库版本、实例名、快照点范围等。

我们可以从概览中了解到数据库运行的时间范围和快照点的频率,这对后续分析非常有帮助。

第三步:负载分析在AWR报告的负载分析部分,我们可以看到数据库的整体负载情况。

其中包含了实例的活动会话数、平均每秒事务数、平均每秒用户提交数等指标。

通过对这些指标的分析,我们可以了解到数据库的整体负载情况,进而判断是否存在性能瓶颈。

第四步:Top SQL分析AWR报告的Top SQL分析部分列出了数据库中消耗资源最多的SQL语句。

通过分析这些SQL语句,我们可以找出执行时间最长、消耗CPU最多、IO操作最频繁的SQL语句,并进行相应的优化。

在分析时,我们可以根据执行时间、CPU使用率和IO操作等指标进行排序,找出影响数据库性能的关键SQL语句。

第五步:等待事件分析等待事件是指数据库中的会话在执行过程中因为等待某种资源而暂停执行的状态。

性能调优-AWR报表解读

性能调优-AWR报表解读

一、报表头二、负载简档如果重做数据块增加,块更改变得频繁,以及每次读操作%BLOCKS增加,都意味着DML语句活动的增加;如果SQL语句不再共享池中分析,就会呈现硬分析,硬分析超过100次/秒就意味着绑定变量的使用效率不高,应当使用CURSOR_SHARING初始化参数;或者说明共享池大小有问题;如果SQL语句在共享池中运行就会出现软分析,软分析超过300次/秒就说明应用程序效率不高,语句被反复分析,而不是对应每个会话应只分析语句一次,以保证高效率。

三、实例的效率BUFFER NOWAIT%低于99:这是一个对特定缓冲区的请求命中率,在内存中该缓冲区应该立即可用。

如果命中率下降,在BUFFER WAIT部分将发现当前存在热数据块的争用想象;BUFFER HIT%低于95:这是一个对特定缓冲区的请求命中率,并且缓冲区位于内存中,而无需物理磁盘的IO操作。

如果你在访问时经常使用非选择性索引,它将使命中率很高,这将导致很多DBA误认为系统性能很好。

高命中率不说明系统性能一定高,但低命中率一定说明低性能;LIBRARY HIT%低于95:较低的库命中率通常意味着SQL过早的被推出缓冲池(可能是因为缓冲池太小了)。

较低的命中率还意味着没有使用绑定变量或者一些其他问题造成SQL没有被重用;OLTP中的IN MEMORY SORT%低于95:在一个OLTP系统中,调整PGA_AGGREGATE_TARGET,SORT_AREA_SIZE可以有效解决该问题;SOFT PARSE%低于95:软分析低于80说明SQL没有被重用;LATCH HIT%低于99:通常是个大问题,找到特定的闩锁可以解决问题。

四、五个最重要的等待事件首要等待事件是整个报表中最能揭示问题的部分,如果TIMED_STATISTICS是TRUE,那么事件将按照等待的时间排序,否则将按照等待的数量排序。

DB FILE SCATTERED READ:该等待事件意味着等待与全表扫描或快速全索引扫描有关,该指数过大说明缺少索引或者限制使用索引,这种情况也可能是正常的,因为执行全表扫描可能比索引扫描效率更高。

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析

ORACLEAWR报告详细分析ORACLE AWR(Automatic Workload Repository)报告是ORACLE数据库中的性能监控工具,用于收集和存储数据库工作负载的信息。

AWR报告提供了关于数据库性能的详细分析,可以用于识别性能瓶颈和优化查询。

AWR报告包含了大量的信息,包括系统配置、会话统计、等待事件、SQL查询和索引统计等。

下面将详细分析AWR报告的各个重要部分。

1.系统配置:AWR报告的第一部分包含了数据库的系统配置信息,如数据库版本、操作系统版本、CPU配置、内存配置等。

这些信息对于了解系统的硬件和操作系统环境非常有帮助。

2.数据库实例性能指标:AWR报告提供了一系列的性能指标,如数据库的并发会话数、平均等待时间、平均响应时间、平均I/O请求等。

通过分析这些指标,可以了解数据库的整体性能状况。

3.会话统计信息:AWR报告中的会话统计信息可以帮助识别出高负载会话和频繁使用资源的会话。

这些统计信息包括会话的执行次数、等待事件、CPU使用率等。

通过分析这些信息,可以找出影响数据库性能的会话,并作出相应的优化措施。

4.等待事件统计:等待事件统计信息显示了数据库中各种等待事件的频率和等待时间。

这些等待事件可能包括锁等待、I/O等待、CPU等待等。

通过分析等待事件统计信息,可以找到数据库中的性能瓶颈,并对其进行优化。

5.SQL统计信息:AWR报告提供了数据库中最频繁执行的SQL查询语句的统计信息。

这些统计信息包括SQL执行的次数、平均响应时间、I/O请求等。

通过分析这些统计信息,可以找出执行效率低下的SQL语句,并进行优化调整。

6.索引统计信息:AWR报告中的索引统计信息显示了数据库中索引的使用情况和效率。

这些统计信息包括索引的扫描次数、索引的存储空间利用率、索引的磁盘I/O等。

通过分析索引统计信息,可以确定是否需要调整索引的使用方式或者对索引进行优化。

总结起来,AWR报告通过收集和分析数据库的各种统计信息,为数据库管理员和开发人员提供了深入分析数据库性能的工具。

Oracle_AWR_报告分析实例讲解

Oracle_AWR_报告分析实例讲解

Oracle_AWR_报告分析实例讲解DB Time是记录在服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间DB Time=cpu time+wait time(不包含空闲等待)(非后台进程)DB Time不包括Oracle后台进程消耗的时间。

如果DB Time远远小于Elapsed 时间,说明数据库比较空闲。

上述报表中Snapshot时间间隔约为79分钟,cpu就公有8*79=632分钟。

DB Time为11.05分钟,则:cpu花费了11.05分钟在处理oracle非空闲等待和运算上(比如逻辑读),也就是说cpu有11.05/632=0.017%花费在处理oracle的操作上。

从awr report的Elapsed time和DB Time就能大概了解db的负载,计算公式可参考为:cpu负载=DB Time/(cpu数*Elapsed)*100%在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。

说明系统压力非常小。

可是对于批量系统,数据库的工作负载总是集中在一段时间内。

如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。

这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。

Cache Sizes值比较。

shared pool主要包括library cache和dictionary cache。

library cache用来存储最近解析(或编译)后SQL、PL/SQL和Java classes等。

library cache用来存储最近引用的数据字典。

发生在library cache或dictionary cache的cache miss代价要比发生在buffer cache的代价高得多。

oracle 19c awr报告解析

oracle 19c awr报告解析

oracle 19c awr报告解析Oracle 19c AWR报告解析引言:Oracle数据库是目前世界上最流行的关系型数据库管理系统之一,广泛应用于企业级系统。

在数据库性能优化方面,AWR (Automatic Workload Repository)报告是一种非常有用的工具。

本文将对Oracle 19c AWR报告进行解析,帮助读者了解如何利用AWR报告进行数据库性能优化。

第一部分:AWR报告概述AWR报告是Oracle数据库自动化工作负载存储库的一部分,它记录了数据库实例的性能数据,并提供了一种分析数据库性能的方法。

AWR报告提供了关于数据库活动的详细信息,包括CPU利用率、内存使用、I/O活动、锁定等。

通过分析AWR报告,我们可以发现数据库的性能瓶颈,并采取相应的措施来解决这些问题。

第二部分:AWR报告的结构AWR报告通常包括以下几个部分:1. 概述:提供了数据库实例的基本信息,如数据库名称、实例名称、开始和结束时间等。

2. 负载配置:显示了数据库实例的负载配置信息,包括CPU核数、内存大小、SGA和PGA大小等。

3. 实例效率百分比:反映了数据库实例在给定时间段内的整体效率水平。

4. 时间模型统计信息:提供了数据库实例各个组件的性能指标,如CPU利用率、内存使用、I/O活动等。

5. I/O性能统计信息:显示了数据库的I/O活动情况,包括物理读取、物理写入、逻辑读取等。

6. Top 10等待事件:列出了数据库实例中最频繁发生的等待事件,帮助我们找到性能瓶颈。

7. SQL统计信息:展示了数据库中执行时间最长的SQL语句,帮助我们优化SQL语句的性能。

8. 故障诊断:提供了数据库实例中发生的故障事件和错误信息,帮助我们排查故障原因。

第三部分:AWR报告的解析1. 负载配置在负载配置部分,我们可以了解到数据库实例的硬件配置情况,包括CPU核数、内存大小、SGA和PGA大小等。

通过比较负载配置和实例效率百分比,我们可以判断数据库实例的负载是否过高,是否需要增加硬件资源来提高性能。

Oracle AWR 报告分析实例讲解

Oracle AWR 报告分析实例讲解

中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。

说明系统压力非常小。

可是对于批量系统,数据库的工作负载总是集中在一段时间内。

如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。

这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。

Cache Sizes值比较。

shared pool主要包括library cache和dictionary cache。

library cache用来存储最近解析(或编译)后SQL、PL/SQL和Java classes等。

library cache用来存储最近引用的数据字典。

发生在library cache或dictionary cache的cache miss代价要比发生在buffer cache的代价高得多。

因此shared pool的设置要确保最近使用的数据都能被cache。

Load Profile事务的负载变化不大,说明应用运行比较稳定。

单个的报告数据只说明应用的负载情况,绝大多数据并没有一个所谓“正确”的值,然而Logons大于每秒1~2个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题。

Redo size:每秒/每事务产生的redo大小(单位字节),可标志数据库任务的繁重程序。

Logical reads:每秒/每事务逻辑读的块数Block changes:每秒/每事务修改的块数Physical reads:每秒/每事务物理读的块数Physical writes:每秒/每事务物理写的块数User calls:每秒/每事务用户call次数Parses:SQL解析的次数Hard parses:其中硬解析的次数,硬解析太多,说明SQL重用率不高。

Sorts:每秒/每事务的排序次数Logons:每秒/每事务登录的次数Executes:每秒/每事务SQL执行次数Transactions:每秒事务数Blocks changed per Read:表示逻辑读用于修改数据块的比例Recursive Call:递归调用占所有操作的比率Rollback per transaction:每事务的回滚率Rows per Sort:每次排序的行数注:Oracle的硬解析和软解析提到软解析(soft parse)和硬解析(hard parse),就不能不说一下Oracle对sql 的处理过程。

awr分析报告详解

awr分析报告详解

Awr -Oracle10g新特性—工作量自动收集-性能调优当数据库发生了性能问题时,如何去定位?比较常用的方法是采用一个既定的模式:解决诸如“是不是同一问题的再现?”、“是否在某一特殊时间段发生?”、“两个问题之间是否存在联系?”等问题,这样通常能得到一个比较好的诊断结果。

作为一个DBA,你可能使用一个第三方或者自己开发的工具来收集数据库运行期间的精细统计数据,并从中得到性能度量数据。

你需要将这些发生问题时的度量数据与当前数据进行比较。

重现以前的时间能使现在的问题变得明朗。

因此,持续的收集相关统计数据对于性能分析来说十分重要。

在某些情况下,在解决收集统计数据这方面的问题上有自己内置的工具——statspack。

尽管在某些情况下的作用非常大,但它缺乏解决性能问题所必须的健壮性。

提供了一个标志性的改进特性:自动工作量存储(Automatic Workload Repository AWR)。

AWR是随着数据库一起被安装的,它不仅能收集统计数据,还能从统计数据中分析出度量数据。

通过运行$ORACLE_HOME/rdbms/admin目录下的awrrpt.sql脚本可以生产AWR从统计和度量数据中分析报告。

这个分析报告最能体现出AWR 的性能分析能力。

这个脚本看起来很像statspack,它会列出所有可用的AWR快照并要求输入两个特定的快照编号作为一个间隔段。

它能产生两种类型的输出:文本格式(除了AWR统计信息外和statspack报告基本类似)和默认的格式(通过超连接等方式来提供一个友好的界面)。

下面来运行以下这个脚本,对它产生的分析报告及AWR的性能分析能力做一个认识。

AWR的使用首先来了解一下AWR是如何设计的,并了解一下它的构造。

基本上来说,AWR应该是一个Oracle用来收集性能相关统计数据并从中得出性能度量数据来追踪潜在问题的内置工具。

和statspack不一样,AWR的快照信息是由一个新的后台进程MMON及其线程来每隔一个小时自动收集的。

AWR分析报告解析

AWR分析报告解析

AWR分析报告解析定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。

一、如何分析:在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库性能的判断也会越准确在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,io,内存,cpu,这三个又是息息相关的(ps:我们先假设这个三个地方都没有物理上的故障),当io负载增大时,肯定需要更多的内存来存放,同时也需要cpu花费更多的时间来过滤这些数据,相反,cpu时间花费多的话,有可能是解析sql语句,也可能是过滤太多的数据,到不一定是和io或内存有关系了。

当我们把一条sql送到数据库去执行的时候,我们要知道,什么时候用到cpu,什么时候用到内存,什么时候用到io ?1. cpu:解析sql语句,尝试多个执行计划,最后生成一个数据库认为是比较好的执行计划,不一定是最优的,因为关联表太多的时候,数据库并不会穷举所有的执行计划,这会消耗太多的时间,oracle怎么就知道这条数据时你要,另一个就不是你要的呢,这是需要cpu来过滤的。

2. 内存:sql语句和执行计划都需要在内存保留一段时间,还有取到的数据,根据lru算法也会尽量在内存中保留,在执行sql语句过程中,各种表之间的连接,排序等操作也要占用内存3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io了。

这里有一点说明的是,虽然oracle占用了8G的内存,但pga一般只占8G 的20%,对于专用服务器模式,每次执行sql语句,表数据的运算等操作,都在pga中进行的,也就是说只能用1.6G左右的内存,如果多个用户都执行多表关联,而且表数据又多,再加上关联不当的话,内存就成为瓶颈了,所有优化sql很重要的一点就是,减少逻辑读和物理读二、如何生成awr报告:1:登陆对应的数据库服务器2:找到oracle磁盘空间(d:oracle\product\10.2.0\db_1\RDBMS\Admin) 3:执行cmd-cd d:回车4: cd d:oracle\product\10.2.0\db_1\RDBMS\Admin 回车5:sqlplus 用户名/密码@服务连接名(例:sqlpluscarmot_esz_1/carmot@igrp)6:执行@awrrpt.sql 回车第一步输入类型:html第二步输入天数:天数自定义(如1,代表当天,如果2,代表今天和昨天。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Awr -Oracle10g新特性—工作量自动收集-性能调优当数据库发生了性能问题时,如何去定位?比较常用的方法是采用一个既定的模式:解决诸如“是不是同一问题的再现?”、“是否在某一特殊时间段发生?”、“两个问题之间是否存在联系?”等问题,这样通常能得到一个比较好的诊断结果。

作为一个DBA,你可能使用一个第三方或者自己开发的工具来收集数据库运行期间的精细统计数据,并从中得到性能度量数据。

你需要将这些发生问题时的度量数据与当前数据进行比较。

重现以前的时间能使现在的问题变得明朗。

因此,持续的收集相关统计数据对于性能分析来说十分重要。

在某些情况下,在解决收集统计数据这方面的问题上有自己内置的工具——statspack。

尽管在某些情况下的作用非常大,但它缺乏解决性能问题所必须的健壮性。

提供了一个标志性的改进特性:自动工作量存储(Automatic Workload Repository AWR)。

AWR是随着数据库一起被安装的,它不仅能收集统计数据,还能从统计数据中分析出度量数据。

通过运行$ORACLE_HOME/rdbms/admin目录下的awrrpt.sql脚本可以生产AWR 从统计和度量数据中分析报告。

这个分析报告最能体现出AWR的性能分析能力。

这个脚本看起来很像statspack,它会列出所有可用的AWR快照并要求输入两个特定的快照编号作为一个间隔段。

它能产生两种类型的输出:文本格式(除了AWR统计信息外和statspack报告基本类似)和默认的格式(通过超连接等方式来提供一个友好的界面)。

下面来运行以下这个脚本,对它产生的分析报告及AWR的性能分析能力做一个认识。

AWR的使用首先来了解一下AWR是如何设计的,并了解一下它的构造。

基本上来说,AWR 应该是一个Oracle用来收集性能相关统计数据并从中得出性能度量数据来追踪潜在问题的内置工具。

和statspack不一样,AWR的快照信息是由一个新的后台进程MMON及其线程来每隔一个小时自动收集的。

为了节省空间,这些收集的数据会在7天后自动清除。

快照收集的频率和保留时间都是可以被用户修改的。

可以通过以下脚本查看当前的设置:SQL> select snap_interval, retention from dba_hist_wr_control;SNAP_INTERVAL RETENTION------------------- -------------------+00000 01:00:00.0 +00007 00:00:00.0这个结果表明当前的快照是每隔一个小时收集一次,并且会被保留7天。

要改变这个设置,比如需要设置成每隔半小时收集一次,并且只保留3天,可以使用以下语句(参数的单位都是分):SQL> begin2 dbms_workload_repository.modify_snapshot_settings (3 interval => 30,4 retention => 3*24*605 );6 end;SQL> select snap_interval, retention from dba_hist_wr_control;SNAP_INTERVAL RETENTION------------------- -------------------+00000 00:30:00.0 +00003 00:00:00.0oracle10G性能调优2011-01-04 21:18了解使用Oracle 10g新顾问程序的方法,消除调优工作中的猜测。

" 自动"一词似乎已经毫无限制地应用于Oracle数据库10g的许多新特性当中了--如自动数据库诊断监测器(ADDM)、自动工作量信息库(AWR)、自动空间管理和自动SQL调优。

但是,先不要认为Oracle正在设法让我们失业,应把"自动"理解为"自动驾驶仪",而不是"自动开罐器"。

没有人会仅仅因为飞机上的仪器内置了某些智能而使其能在高空飞行,就建议将机长从驾驶舱撤出。

同样,对于数据库调优,即使是专家也可能使用一些智能性建议。

我们都已采用TKPROF、Explain Plan和Statspack等工具来确保获得最佳性能。

我们已经重新运行统计、删除统计、修改init.ora参数、创建索引、删除索引、重新编写SQL,采用了各种方法,以寻求更好的性能。

利用数据库管理员的技巧包来找出问题点的解决方案固然有其优点,但这也是重复而耗时的。

Oracle数据库10g内置的自动调优功能不仅提供了这些功能,还提供了更多功能,并达到了极致--性能最佳的数据库--运行速度极快。

这都基于Oracle数据库该版本所内置的新的智能型基础架构。

智能型基础架构Oracle数据库10g综合的智能型基础架构可对整个数据库进行探测,使数据库能够在运行过程中对其自身进行监测和诊断,并通知数据库管理员出现了问题,数据库管理员便可采取有效的纠正措施。

简要地说,Oracle数据库10g中这种新的智能型基础架构的几个关键组件包括AWR、ADDM 和一个"自动顾问程序"(automatic advisors)数组,它们可以使数据库管理员避免许多猜测和重复劳动。

简单地说,AWR包含了Statspack所提供的功能,还会汇总大量新的统计数据。

AWR会收集、处理和维护性能统计数据(默认情况下,AWR每60分钟进行一次数据快照),用于问题检测和自我调优,并将所收集的数据存储在可由ADDM来分析的数据库中。

ADDM蕴含了Oracle公司内外许多Oracle专家的集体智慧,可为有效管理和诊断数据库性能提供基础性的知识和分析。

它进行"根本原因"(root-cause)分析,并跨几种重要的数据库对象类(如应用程序、模式和内存利用率)提出具体建议。

例如,对于一个特定的模式对象,ADDM要确定"对数据库块的读写争用耗费大量的数据库时间,"并给出此结论的报告(在通过命令行生成的ADDM报告中或通过Oracle企业管理器[OEM]控制台进行)。

这样一个结论的详细信息中可能还会包括这样一个事实:向需要空闲列表的表中插入数据存在着一种高级插入方式。

同时会建议:"考虑在一个本地管理的表空间中使用Oracle的自动段空间管理……" 建议还可以包括:对数据库资源消耗多于共享的SQL语句运行特定的顾问程序对话。

在以后的专栏中,我将探讨ADDM、AWR及其他一些利用了这一新基础架构智能的新顾问程序。

优化器改进在这批新工具和智能型基础架构中,数据库管理员能最快享受到的好处之一是快速而轻松地调优SQL语句。

SQL调优顾问程序使你可以在不修改源代码的情况下调优SQL语句。

这一特性很有用,尤其是对打包的应用程序,例如,当你等待厂家的补丁程序时,但是它也可以用于任何SQL的调优(例如,通过游标高速缓存,或指定一个SQL文本串)。

在进行详细讨论之前,我们先简要地看一看这一特殊顾问程序(明确地讲是优化器)所依赖的隐含功能的概况。

一般来讲,Oracle SQL性能的核心是Oracle基于成本的优化器(CBO),该组件对获得数据的可能途径进行评估,并从许多可能的备选方案中生成最佳执行计划。

执行计划定义了Oracle数据库执行语句所用的步骤组合;它们包括语句所访问的每个表的访问方法以及这些表的排序(连接顺序)。

优化器可确定执行特定SQL语句的最有效方式。

对于任一特定的SQL语句,指定其有效的可选方式的可能数目后,优化器会对它们进行快速评估,在一秒钟之内生成一个执行计划。

除了优化器的这一所谓"正常"模式外,Oracle数据库10g现在还提供一种"调优"模式(在Oracle文献中有时称作"自动调优优化器")。

正如其名称意义所示,优化器的调优模式明确地用于SQL调优对话(使用SQL调优顾问程序和SQL访问顾问程序),以生成可在运行时加速性能的附加信息。

调优模式包含了正常模式的性能,同时还提供扩展功能,因此它能够在创建执行计划的过程中进行进一步的分析。

在调优模式下,优化器进行四个关键级别的分析,生成可以为优化器返回SQL语句结果提供附加信息的统计数据:SQL统计数据分析。

优化器会检查缺少或陈旧的统计数据,并给出适当的建议--例如,为指定的数据库对象收集统计数据--以确保生成最佳执行计划。

(优化器还会生成附加信息,如果建议的措施未被采用,这些信息会存储在一个在运行时使用的SQL附加信息集合中)。

SQL附加信息集合。

优化器会进行更广泛的分析,并汇总可以使查询运行更为理想的必要附加信息,将其存储在一个SQL附加信息集合中。

SQL附加信息集合包含的信息可以使SQL 编译器对特定的SQL文本的执行计划进行优化。

SQL附加信息集合在运行时使用(当优化器返回正常模式时),用于提高SQL的性能,但不改变源代码。

SQL访问分析。

优化器对访问方式进行分析,核查索引是否处于最佳使用状态,如果不是,则建议适当地创建索引,以提供更快的访问方式。

(可以单独运行不同的SQL访问顾问程序工具来汇总所有访问结构的建议--特别是物化视图、物化视图记录和整个SQL工作量的索引。

在以后的专栏中我会介绍这一工具。

)SQL结构分析。

当优化器构建执行计划、给出提高性能的建议时,它会分析SQL语句的结构(语义、语法和设计),生成大量的注释和诊断。

例如,为了显著提高性能,优化器可能会建议用NOT EXISTS代替NOT IN,尽管NOT EXISTS在语义上与NOT IN不同,但它们所产生的结果相同。

(不过,只有在该查询的相关连接列中没有NULL值时,你才应该这样更改--这就是SQL调优顾问程序让你来决定是否采用结构分析所生成建议的原因。

)如果在"综合"模式下运行SQL调优顾问程序,四个分析都会进行;但是SQL统计数据分析、SQL访问分析和SQL结构分析只在"有限"模式下进行--不生成SQL附加信息集合。

如果你想调优应用程序代码,如含有打包应用程序的代码,你应使用综合模式,以确保获得SQL 附加信息集合。

优化器的调优模式在SQL调优顾问程序和SQL访问顾问程序对话期间使用。

在综合模式下使用SQL调优顾问程序来为一个或多个SQL语句生成SQL附加信息集合可能会花很长时间--优化器在忙于汇总和生成附加统计数据和注释。

不过,通过更改默认设置值(30分钟),可以限制优化器花在特定调优任务上的时间。

不过,在调优SQL语句,尤其是在处理打包应用程序(其SQL源代码不能直接控制)时,使用SQL附加信息集合将提供极大的好处。

相关文档
最新文档