摘要:本文介绍了GaussDB T数据库WSR 报告的主要内容。
WSR报告
WSR报告是比较常用的性能分析工具,它的原理是定时产生快照,利用两个快照产生对应时间点的性能分析报告。快照的周期默认是30分钟,用户可以修改快照周期,也可以手工创建快照。
快照是把数据库的某个时间点的统计数据记录到快照表中,目前已经实现的功能包括:
WSR报告定位性能问题时首先看报告头和Top event了解数据库的负荷和主要的瓶颈,然后找出有问题SQL或者配置,其他信息作为辅助手段。
WSR的主要包括以下内容:
● 报告头
报告头中包含数据库的基本信息和起止快照点的信息。报告头中重要信息是Elapsed和DB Time。
– Elapsed:表示两个快照的时间间隔
– DB Time:表示这段时间的数据库时间
– 由于数据库有并发操作, DB Time可能远大于Elapsed;当DB Time小于Elapsed时,说明这段时间数据库较为空闲;当DB Time超过ElapsedN倍时,说明这段时间数据库比较繁忙。
● Database Load
这部分显示数据库这段时间的各个指标。
Per Sencond表示平均每秒的数值;Per Transaction表示平均每个事务的数值;
Per Exec表示平均每次SQL执行的数据。
● Instance Efficiency
这里主要列出了数据的命中率、library cache的命中率、排序、hard/soft parse等
命中率。
● Top events和Host CPU
这部分重点关注Top events,从这里可以了解这段时间数据库的时间主要消耗在哪类操作上,从而识别出数据库的瓶颈。
– Top events
是WSR中非常重要的信息,需要重点关注,每种等待事件的含义和调优方法参考后面的内容。Top events数据来自DV_SYS_EVENTS,重点关注比例高的事件。
– Host CPU
显示的是这段时间数据库所在服务器的CPU和IO的平均占有率。Host CPU数据来自DV_SYSTEM,获取的是服务器的CPU情况:
● Instance Snap
除了每30分钟产生一个快照外,默认有一个job,每30秒采集一次实例关键资源的信息。具体采集的信息参考ADM_HIST_INSTANCE_SNAP视图定义。
● Session Statistics
这部分按照会话和事务的维度显示统计数据。Session ordered by Wait Time数据来自WSR_SESSION_EVENTS,按照会话ID统 计Top会话。
Session ordered by Long SQL数据来自DV_SESSIONS,每30s采集一次正在执行的SQL,如果下一次采集时发现同一条SQL已经没有在执行,则认为该SQL已执行结束。该Top SQL列表是按次算的,执行时间不是值。由于SQL缓冲区可能被覆盖导致无法抓取到Top SQL,这部分数据可以作为补充信息。
Session ordered by Long Transaction来自DV_TRANSACTIONS,每30s采集一次正在执行的事务,生成执行时间长的事务列表。
● SQL Statistics
这部分显示的是按照不同维度统计出来的Top SQL。如果打开了LongSQL的开
关,并且该SQL被WSR报告抓取到,那么报告中会显示执行计划,并且显示近
执行慢的耗时。
– 打开V$LONGSQL开关的方法:
--日志开关
alter system set _LOG_LEVEL = 256;
--N表示记录超过N秒的SQL
alter system set LONGSQL_TIMEOUT= N;
– 支持的维度包括:
– 重要指标介绍:
● Segment Statistics
这部分显示的是按照不同维度统计出来的Top Segment。 Segment一般指表、索引或分区。原始数据来自DV_SEGMENT_STATS。
● Parameters
这部分显示的是数据库的参数配置。只显示用户配置过的参数,其他参数为默认值。