#性能报告

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 预留字段

# 生成报告

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

SET serveroutput ON

-- 3840305236为数据库ID,1为数据库实例标识符,133为起始快照ID,134为结束快照ID
EXEC DBMS_AWR.AWR_REPORT(3840305236,1,133,134);

上述程序生成的结果为起始和结束快照区间的性能报告,直接以文本形式输出(需先执行set serveroutput on以打开所在会话端控制输出的开关),可以将其粘贴到html文件进行网页展现和保存。

# 报告内容

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

# Information

# Database Information

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

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

# Host Infomation

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

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

# Snapshot Infomation

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

信息项 含义
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)等待事件信息,对等待事件项的解释请查阅等待事件

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

# Wait Classes by Total Wait Time

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

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

# SQL Statistics

# SQL order by Elapsed Time

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

# SQL order by CPU Time

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

# SQL order by User I/O Wait Time

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

# SQL order by Gets

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

# SQL order by Reads

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

# SQL order by Executions

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

# SQL order by Parse Calls

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

# SQL order by Sharable Memory

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

# 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

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