#性能报告

YashanDB在运行过程中,每隔一段时间会将数据库的状态数据保存一份快照到WRM$_SNAPSHOT表中,状态数据包括等待事件、指标数据、空间使用统计、SQL状态信息等数据库关键统计信息。性能报告通过对比两份历史快照来反映整个数据库在一个时间段内的状态,为数据库异常提供事后分析和诊断的依据。

# 快照

快照默认由系统定时(默认为每小时,该值可通过DBMS_AWR.MODIFY_SNAPSHOT_SETTINGS修改)创建。

为诊断性能瓶颈,用户可能需要在指定时间点(例如执行某条SQL语句的前后)即时地创建快照,用于生成性能报告,此时可以通过调用DBMS_AWR.CREATE_SNAPSHOT程序,手动创建快照。

快照数据超过一定时间(默认为八天,该值可通过DBMS_AWR.MODIFY_SNAPSHOT_SETTINGS修改)后,由系统自动进行清理,也可通过DBMS_AWR.DROP_SNAPSHOT_RANGE手动清理。

快照主要信息

即WRM$_SNAPSHOT表内容:

字段名称 含义
SNAP_ID 快照ID,每次快照的标识,生成报告需以此为关键参数
DBID 数据库ID,同V$DATABASE中的database_id
INSTANCE_NUMBER 实例标识符,同V$INSTANCE中的instance_number
STARTUP_TIME 实例启库时间,数据库连续运行期间的两次快照所生成的报告才是有意义的,此信息有助于在生成报告时对快照ID的有效性进行过滤判断
BEGIN_INTERVAL_TIME 快照开始时间
END_INTERVAL_TIME 快照结束时间
FLUSH_ELAPSED 生成快照时间
SNAP_LEVEL 预留字段
STATUS 预留字段
ERROR_COUNT 预留字段
INST_CHANGE_TIME 数据库实例变更时间戳
SRC_DBID 性能数据来源数据库ID
DATABASE_ROLE 数据库角色
* PRIMARY:主库
* STANDBY:物理备库
* LOGICAL STANDBY:逻辑备库
GROUP_ID 组ID
GROUP_NODE_ID 组内节点ID

# 生成报告

生成报告即通过两个快照的对比,按照不同的维度生成性能报告。报告的运算由存储过程(DBMS_AWR.AWR_REPORT)完成,该存储过程由用户在需要获得报告时主动调用。

  1. 以DBA用户使用yasql连接并登录数据库。

    $ yasql sales/********@192.168.1.2:1688
    
  2. 查询快照信息,包括对应的数据库ID、实例标识、快照ID等信息,本文以最近2次为例。

    SELECT dbid,src_dbid,snap_id,instance_number,group_id,group_node_id FROM sys.wrm$_snapshot ORDER BY snap_id DESC LIMIT 2;
        DBID    SRC_DBID     SNAP_ID INSTANCE_NUMBER    GROUP_ID GROUP_NODE_ID
    ----------- ----------- ----------- --------------- ----------- -------------
    121922913   121922913         144               1           0             0
    121922913   121922913         143               1           0             0
    
  3. 通过以下方式获取性能报告(html文件),请按需指定对应文件的路径,本文均以执行yasql命令的当前路径为例。

    文件后缀名应指定为.html,文件名规则请查阅yasql使用指导

    -- 1. 开启缓存区信息打印开关
    SET serveroutput ON
    
    -- 2. 开启输出结果保存为文件并指定新建目标文件信息,文件名以awr.html为例
    spool awr.html CREATE
    
    -- 3. 基于上述步骤获取的数据库ID、实例标识、起始快照ID以及结束快照ID生成性能报告
    EXEC dbms_awr.awr_report(121922913,1,143,144);
    
    -- 4. 结束输出为文件并退出登录。
    spool off
    exit
    
  4. 在相应路径下查看新生成的awr.html文件。

    awr.html文件即为起始和结束快照区间的性能报告。

    $ ll
    -rw-rw-r--  1 yashan yashan    110326 72 17:11 awr.html
    

# 报告内容

以下为YashanDB所生成性能报告以网页形式展现的示例:

# Information

# Database Information

当前所在数据库的相关信息。

信息项 含义
DB Name 数据库名称
DB Id 数据库ID
Unique Name 兼容字段,无含义
Role 数据库角色
* PRIMARY:主
* STANDBY:备
* CASCADE STANDBY:级联备
Release 数据库版本号
Instance 兼容字段,无含义
Inst ID 实例标识符
Startup Time 数据库开启时间

# Host Information

数据库所在服务器的相关信息。

信息项 含义
Host Name 服务器名称
Platform 服务器操作系统平台
CPUs 服务器CPU逻辑个数
Cores 服务器CPU核数
Sockets 服务器CPU物理个数
Memory(GB) 服务器内存大小

# Snapshot Information

本性能报告所覆盖的快照相关信息。

信息项 含义
Snap Id 起止快照ID
Snap Time 起止快照时间
Sessions 快照时的会话个数
Cursor/Sessions 快照时的平均每个会话游标数
Elapsed 起止快照时间差,即性能报告所覆盖时长
DB Time 起止快照时间内的SQL执行总时间

# Load Profile

按每秒、每个事务(DB Time和DB CPU还按每次执行、每个调用)统计的系统平均负载信息。

信息项 含义
DB Time(s) SQL执行的总时间
DB CPU(s) SQL执行的CPU耗时
Redo size (bytes) 产生的redo大小
Logical read (blocks) 逻辑读的块数
Block changes 描述数据块的变化(单位:块)
Physical read (blocks) 物理读的块数
Physical write (blocks) 物理写的块数
Read IO requests 物理读IO请求次数
Write IO requests 物理写IO请求次数
Read IO (MB) 物理读IO数据量
Write IO (MB) 物理写IO数据量
scan rows 表扫描的行数
User calls 用户级别的调用次数
Parses (SQL) SQL解析总次数(软解析 + 硬解析)
Hard parses (SQL) SQL硬解析次数
Logons 当前登录会话数
Executes (SQL) SQL命令执行次数
Rollbacks 事务回滚次数
Transactions 事务数(回滚数 + 提交数)

# Report Summary

# Top 10 Foreground Events by Total Wait Time

Top 10(按%DB Time)等待事件信息,对等待事件项的解释请查阅等待事件

信息项 含义
Wait Class 等待事件所属类别
Waits 等待次数
Total Wait Time (sec) 总等待时间
Avg Wait Time 平均等待时间
% DB Time Total Wait Time占DB Time百分比

# Wait Classes by Total Wait Time

Top 10等待事件类别信息,与Top 10 Foreground Events by Total Wait Time所列信息项含义一致。Avg Active Sessions项为兼容字段,无实际含义。

对等待事件类别的解释请查阅数据库性能指标

# SGA Memory Summary

记录全局内存信息。

信息项 含义
Memory Item Name 内存项名称
Memory Size (byte) 内存大小(单位:字节)

# Instance Efficiency Percentages (Target 100%)

记录实例命中率信息。

信息项 含义
Redo NoWait % 在redo日志写入过程中没有发生等待的比例
Buffer Hit % 缓冲区命中率,即从缓冲区成功读取数据页的比例
Soft Parse % 软解析的百分比

# Execute Statistics

记录SQL的执行与解析次数。

信息项 含义
Execute Count 执行次数
Hard Parse Count 硬解析次数
Soft Parse Count 软解析次数

# SQL Statistics

# SQL ordered by Elapsed Time

按SQL执行所占总时间(Elapsed Time项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by CPU Time

按SQL执行所占CPU耗时(CPU Time项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by User I/O Wait Time

按SQL执行所占User I/O类等待时间(User I/O Time项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by Gets

按SQL执行所占逻辑读(Buffer Gets项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by Reads

按SQL执行所占物理读(Physical Reads项,以字节为单位)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by Executions

按SQL的执行次数(Executions项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by Parse Calls

按SQL的软解析次数(Parse Calls项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# SQL ordered by Sharable Memory

按SQL执行所占共享内存(Sharable Mem项)排列的TOP SQL信息,信息项的解释见报告内容所述。

# Memory Statistics

# Virtual Memory Total Statistics

记录VM使用情况,仅统计HEAP表。

信息项 含义
Total Blocks 总的内存页数量
Free Blocks 处于空闲状态的内存页数量
Opened Blocks 处于打开状态的内存页数量
Closed Blocks 处于关闭状态的内存页数量
Swapped Out Blocks 换出磁盘的内存页数量
Ctrl Blocks 控制页面的数量

# System-level Information

记录系统级的统计信息。

信息项 含义
Name 统计项名称
Value 内存大小(单位:字节)

# VM Buffer Used

记录会话级的VM Buffer累计使用情况(按Alloc Count排序)。

信息项 含义
SID 会话的ID
Alloc Count 累计分配的次数
Open Count 累计打开的次数
Close Count 累计关闭的次数
Free Count 累计释放的次数
Swap Out Count 累计换出到磁盘的次数
Swap In Count 累计换入到内存的次数
IO Wait Count 累计发生IO等待的次数
Extend Count 累计发生VM页扩展的次数

# VM Current Open

记录会话级当前的VM使用情况(按Open Count排序)。

信息项 含义
SID 会话的ID
Open Count 当前正在打开的次数
Close Count 当前关闭记录的次数
Swap Out Count 当前正在换出磁盘的页数

# VM Current Swap

记录会话级当前VM的换出信息(按Swap Out Count排序)。

信息项 含义
SID 会话的ID
Open Count 当前正在打开的次数
Close Count 当前关闭记录的次数
Swap Out Count 当前正在换出磁盘的页数

# YAC Statistics

Note:

YAC Statistics报告仅在共享集群环境下生成。

# YAC Summary

共享集群概要信息。

信息项 含义
Number of Instances 共享集群实例数
Number of GCS Tasks GCS后台线程数量

# Global Cache Load Profile

按每秒、每个事务统计的集群全局缓存统计信息。

信息项 含义
Global Cache blocks received 从其他实例接收的页面数量
Global Cache blocks served 发送给其他实例的页面数量
GRC messages received 接收的GRC消息数量
GCS messages received 接收的GCS消息数量
GLS messages received 接收的GLS消息数量
GRC messages sent 发送的GRC消息数量
GCS messages sent 发送的GCS消息数量
GLS messages sent 发送的GLS消息数量
DBWR Fusion writes 融合写入次数(预留)

# Global Cache Efficiency Percentages

全局缓存访问占比。

信息项 含义
Buffer access - local cache % 本地缓存访问占比
Buffer access - remote cache % 远端缓存访问占比
Buffer access - disk % 磁盘缓存访问占比

# Global Cache and Enqueue Services- Workload Characteristics

全局缓存和排队服务的统计信息。

信息项 含义
Avg global cache cr block receive time (us) 从缓存中获取CR页面的平均耗时
Avg global cache current block receive time (us) 从缓存中获取最新页面的平均耗时
Avg global cache current block flush time (us) 数据块平均刷盘耗时

# YAC Sys Stats

系统级统计信息中共享集群相关统计项,信息项的解释请查阅统计信息

# Lock Statistics

# Spinlock Summary

记录spinlock锁的spin次数信息。

信息项 含义
Name 锁名
Spincount 每次spin时CPU需要暂停等待的次数
Times 总共spin等待的次数
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流