【跟我学oracle18c】第四十九天:Database 2 Day + Performance Tuning Guide: 2.1使用自动工作负载存储库收集数据库统计信息(AWR,ASH)

2.1 Gathering Database Statistics Using the Automatic Workload Repository

数据库统计信息提供关于数据库上的负载类型以及数据库使用的内部和外部资源的信息。要使用ADDM准确诊断数据库的性能问题,必须提供统计信息。

累积统计量是一个计数,例如块读取的次数。Oracle数据库为系统、会话和单个SQL语句生成许多类型的累积统计信息。Oracle数据库还跟踪有关段和服务的累积统计信息。自动工作负载存储库(Automatic Workload Repository, AWR)通过收集、处理和维护数据库问题检测和自调优目的的性能统计信息来自动化数据库统计信息收集

默认情况下,数据库每小时收集一次统计信息,并创建一个AWR快照,这是一组用于性能比较的特定时间的数据。快照捕获的delta值表示在一段时间内每个统计数据的变化。AWR收集的统计数据是从内存中查询的。收集到的数据可以显示在报告和视图中。

以下初始化参数与AWR相关:

  • STATISTICS_LEVEL
    将此参数设置为TYPICAL(默认)或ALL,以启用AWR收集统计信息。将statistics s_level设置为BASIC将禁用许多数据库特性,包括AWR,不推荐这样做。

  • CONTROL_MANAGEMENT_PACK_ACCESS

    设置为诊断+调优(默认)或诊断,以启用自动数据库诊断监视。将CONTROL_MANAGEMENT_PACK_ACCESS设置为NONE将禁用许多数据库特性,包括ADDM,并且强烈建议不要这样做

    SQL> show parameter CONTROL_MANAGEMENT_PACK_ACCESS
    
    NAME                                 TYPE
    ------------------------------------ ----------------------
    VALUE
    ------------------------------
    control_management_pack_access       string
    DIAGNOSTIC+TUNING

See Also:

  • Oracle Database Reference for more information about the STATISTICS_LEVEL initialization parameter

  • Oracle Database Reference for more information about the CONTROL_MANAGEMENT_PACK_ACCESS initialization parameter

    扫描二维码关注公众号,回复: 4563650 查看本文章

The database statistics collected and processed by AWR include:

2.1.1时间模型统计

时间模型统计按操作类型度量在数据库中花费的时间。最重要的时间模型统计量是数据库时间(DB时间)。DB时间表示前台会话在数据库调用中花费的总时间,是实例工作负载的指示器。如图2-1所示,数据库时间构成了应用程序总体用户响应时间的一部分。

Figure 2-1 DB Time in Overall User Response Time

Description of Figure 2-1 follows
Description of "Figure 2-1 DB Time in Overall User Response Time"

会话是数据库实例内存中的逻辑实体,它表示当前用户登录到数据库的状态。数据库时间是通过聚合所有活动会话(非空闲会话)的CPU时间和等待时间来计算的。对于任何数据库请求,CPU时间是处理该请求所花费时间的总和,而等待时间是对各种数据库实例资源的所有等待时间的总和。DB时间只包括花在客户端进程上的时间,不包括花在PMON等后台进程上的时间。

例如,用户会话可能涉及在线书商进行的在线交易,该交易由图2-2所示的操作组成。

Figure 2-2 DB Time in User Transaction

Description of Figure 2-2 follows
Description of "Figure 2-2 DB Time in User Transaction"

  1. 按作者查询小说
    用户搜索特定作者的小说。此操作将导致应用程序对作者的小说执行数据库查询

  2. 浏览查询结果
    用户浏览作者返回的小说列表,并访问其他细节,如用户评论和库存状态。此操作将导致应用程序执行额外的数据库查询。

  3. 添加物品到购物车
    浏览完小说的详细信息后,用户决定向购物车中添加一本小说。此操作将导致应用程序调用数据库来更新购物车。

  4. 结帐
    用户通过退房完成交易,使用之前在书店网站上保存的前一次购买的地址和付款信息。此操作将导致应用程序执行各种数据库操作以检索用户信息、添加新订单、更新库存和生成电子邮件确认。

对于前面的每个操作,用户都向数据库发出请求,如图2-2中的向下箭头所示。数据库处理请求所花费的CPU时间和等待数据库所花费的等待时间被认为是数据库时间,用阴影区域表示。请求完成后,结果返回给用户,如向上箭头所示。上下箭头之间的间距表示处理请求的总用户响应时间,其中包含DB时间之外的其他组件,如图2-1所示。

Note:

数据库时间是从实例启动时开始累积度量的。因为DB时间组合了来自所有非空闲用户会话的时间,所以DB时间可能超过实例启动以来经过的时间。例如,一个运行了5分钟的实例可以有4个活动会话,其累计DB时间为20分钟。

数据库调优的目标是减少数据库时间。通过这种方式,您可以改进应用程序中用户事务的总体响应时间。

2.1.2 Wait Event Statistics

等待事件由会话递增,以指示会话必须等待事件完成后才能继续处理。当会话在处理用户请求时必须等待时,数据库通过使用一组预定义的等待事件之一来记录等待。然后将事件分组到等待类中,如用户I/O和Network。等待事件数据揭示了可能影响性能的问题的症状,例如锁存、缓冲区或I/O争用。

See Also:

2.1.3 Session and System Statistics

可以在系统和会话级别上获得大量累积数据库统计信息。其中一些统计数据是由AWR收集的。

2.1.4 Active Session History Statistics

活动会话历史(ASH)统计数据是数据库中会话活动的示例。数据库每秒对活动会话进行采样,并将其存储在系统全局区域(SGA)的循环缓冲区中。任何连接到数据库并使用CPU的会话,或正在等待不属于空闲等待类的事件的会话,都被视为活动会话。通过只捕获活动会话,可以表示一组可管理的数据。数据的大小直接与正在执行的工作有关,而不是与数据库上允许的会话数量有关。

使用“时间模型统计”中描述的DB时间示例,从书商网站上进行的在线交易中收集会话活动样本,用图2-3中水平箭头下方的垂直线表示。

Figure 2-3 Active Session History

Description of Figure 2-3 follows
Description of "Figure 2-3 Active Session History"

The light vertical lines represent samples of inactive session activity that are not captured in the ASH statistics. The bold vertical lines represent samples of active sessions that are captured at:

  • 7:38, while novels by the author are being queried

  • 7:42, while the user is browsing the query results

  • 7:50, when one novel is added to the shopping cart

  • 7:52, during the checkout process

Table 2-1 列出为活动会话收集的ASH统计信息,以及采样的会话ID (SID)、模块、SQL ID、会话状态和等待事件的示例。

Table 2-1 Active Session History

Time SID Module SQL ID State Event

7:38

213

Book by author

qa324jffritcf

Waiting

db file sequential read

7:42

213

Get review ID

aferv5desfzs5

CPU

n/a

7:50

213

Add item to cart

hk32pekfcbdfr

Waiting

buffer busy wait

7:52

213

Checkout

abngldf95f4de

Waiting

log file sync

2.1.5 High-Load SQL Statistics

消耗最多资源的SQL语句根据消耗时间和CPU时间等标准在系统上产生最高的负载。

猜你喜欢

转载自blog.csdn.net/viviliving/article/details/85087962
今日推荐