1
、
ASH
(
Active SessionHistory
)
ASH
以
V$SESSION
为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程
MMNL
来完成。
v$active_session_history
视图提供了在实例级别抽取会话活动信息。活动会话每分钟会被抽样一次且被存储在
sga
中的循环缓冲区中
.
任何被连接到数据库且正等待一个不属于空闲等待事件的会话会被考虑是一个活动的会话。每个会话抽样都是一组行数据且通过
v$active_session_history
视图来返回每个被抽样活动会话的行数据,返回最新被抽样会话的第一行数据。因为活动会话抽样是存储在
sga
中的循环缓冲区中,系统活动越大的,活动时间越少会话的可以被存储在循环缓冲区中。这意味着在这期间被抽样的每个会话会出现在
v$
视图中或者会话活动的时间会在
v$
视图中被显示,这完全依赖于数据库活动情况。
ASH buffers
的最小值为
1MB
,最大值不超过
30MB.
内存中记录数据。期望值是记录一小时的内容,所以说
ASH
内存记录数据始终是有限的
一般在线上实时诊断数据库性能问题,特别是负载高
w
出来上了
100
后,
cpu 100%
,这个时候用
ash
实时出日志报告,就能很大程度上准确定位问题所在。
2
、
ASH
的主要要素点
在执行
SQL> @?/rdbms/admin/ashrpt.sql
命令后,会让有如下参数需要手动填写:
日志报告类型
Enter value for report_type: text --
选择生成的
ASH
报告类型,是
text
还是
html
(
2
)日志报告起始时间
Enter value for begin_time: 08/31/16
20:00:00
--
输入
ASH
开始的时间,时间格式上面的示例有说明,比如我这里是
2016
年
8
月
31
日晚上
20:00:00
开始。
(
3
)日志报告结束时间
Enter value for duration:
120(
此处是用分钟来计算了,是从开始的时间往后
2
个小时
)
--
输入
ASH
结束时间,默认是
SYSDATE - begin_time
,一般输入的分析统计的总时间,一般默认是
分钟
,拿出
2
个小时的
ash
分析日志来。
(
4
)报告文件名
Enter value for report_name: /home/oracle/
ceshi.
html
--
输入
ASH
报告的名称,可以指定生成的目录,默认情况是当前登陆
sqlplus
的目录。
这里的扩展最好加上,如果不加扩展名,扩展名会变成
lst.
不影响数据,但是会影响阅读效率。
3
、
ASH
操作实战记录
SYS@sjptdb1>@?/rdbms/admin/ashrpt.sql
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
3581456119 SJPTDB 1 sjptdb1
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: html
Type Specified: html
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
3581456119 2 SJPTDB sjptdb2 xf01dbadm02.
hlic.cn
* 3581456119 1 SJPTDB sjptdb1 xf01dbadm01.
hlic.cn
Defaults to current database
Using database id: 3581456119
Enter instance numbers. Enter 'ALL' for all instances in a
RAC cluster or explicitly specify list of instances (e.g., 1,2,3).
Defaults to current instance.
Using instance number(s): 1
ASH Samples in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Oldest ASH sample available: 25-Nov-18 23:00:21 [ 13686 mins in the past]
Latest ASH sample available: 05-Dec-18 11:06:27 [ 0 mins in the past]
Specify the timeframe to generate the ASH report
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter begin time for report:
-- Valid input formats:
-- To specify absolute begin time:
-- [MM/DD[/YY]] HH24:MI[:SS]
-- Examples: 02/23/03 14:30:15
-- 02/23 14:30:15
-- 14:30:15
-- 14:30
-- To specify relative begin time: (start with '-' sign)
-- -[HH24:]MI
-- Examples: -1:15 (SYSDATE - 1 Hr 15 Mins)
-- -25 (SYSDATE - 25 Mins)
Defaults to -15 mins
Enter value for begin_time: 05/12 8:00
Report begin time specified: 05/12 8:00
Enter duration in minutes starting from begin time:
Defaults to SYSDATE - begin_time
Press Enter to analyze till current time
Enter value for duration: 7200
Report duration specified: 7200
Using 12-May-18 08:00:00 as report begin time
Using 17-May-18 08:00:00 as report end time
Specify Slot Width (using ashrpti.sql) for 'Activity Over Time' section
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Explanation:
-- In the 'Activity Over Time' section of the ASH report,
-- the analysis period is divided into smaller slots
-- and top wait events are reported in each of those slots.
-- Default:
-- The analysis period will be automatically split upto 10 slots
-- complying to a minimum slot width of
-- 1 minute, if the source is V$ACTIVE_SESSION_HISTORY or
-- 5 minutes, if the source is DBA_HIST_ACTIVE_SESS_HISTORY.
Specify Slot Width in seconds to use in the 'Activity Over Time' section:
Defaults to a value as explained above:
Slot Width specified:
Specify Report Targets (using ashrpti.sql) to generate the ASH report
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Explanation:
-- ASH Report can accept "Report Targets",
-- like a particular SQL statement, or a particular SESSION,
-- to generate the report on. If one or more report targets are
-- specified, then the data used to generate the report will only be
-- the ASH samples that pertain to ALL the specified report targets.
-- Default:
-- If none of the report targets are specified,
-- then the target defaults to all activity in the database instance.
Specify SESSION_ID (eg: from V$SESSION.SID) report target:
Defaults to NULL:SESSION report target specified:
Specify SQL_ID (eg: from V$SQL.SQL_ID) report target:Defaults to NULL: (% and _ wildcards allowed)
SQL report target specified:
Specify WAIT_CLASS name (eg: from V$EVENT_NAME.WAIT_CLASS) report target:
[Enter 'CPU' to investigate CPU usage]
Defaults to NULL: (% and _ wildcards allowed)
WAIT_CLASS report target specified:
Specify SERVICE_HASH (eg: from V$ACTIVE_SERVICES.NAME_HASH) report target:
Defaults to NULL:
SERVICE report target specified:
........(
此处省略
)
<br /><a href="#top">Back to Top</a><p />
<p />
End of Report
</body></html>
Report written to ceshi.html
4
、
ASH
日志报告详解
4.1 ASH
报告
使用
ash
报告,在生成
ash
报告之后,可以重新检索哪些标识为短暂性能问题的信息。
ash
报告的内容分成了以下几个部分:
4.2 Top Evnets
顶级等待事件部分描述了被抽样会话活动中由用户,后台等产生的顶级等待事件,使用这些信息可以识别是哪些等待事件造成了短暂的性能问题
.
顶级等待事件包含以下部分
:
(
1
)
Top User Events
顶级用户事件
这部分信息显示了在抽样会话活动中占很高百分比的用户进程等待事件
(
2
)
Top Background Events
顶级后台事件
这部分信息显示了在抽样会话活动中占很高百分比的后台进程等待事件。
(
3
)
Top Event P1/P2/P3 Values
顶级等待事件参数
P1/P2/P3
这部分信息显示了在抽样会话活动中占很高百分比的等待事件的参数值它通过总的等待时间
(%Event)
百分比进行排序后被显示
.
对于每一个等待事件
p1
,
p2
,
p3
的值与等待事件参数
parameter 1
,
parameter 2
,
parameter 3
这三个列相关联
.
4.3 Load Profile
load profile
部分描述了在抽样的会话活动中的负载分析
.
使用这部分信息可以识别造成短暂性能问题的服务,客户或
sql
命令类型
.
负载概要部分包含以下部分信息
:
(
1
)
top service/module
这部分信息显示了在抽样会话活动中占很高百分比的服务和模块信息
(
2
)
top client ids
这部分信息显示了在抽样会话活动中占很高百分比的客户端的
id
信息它是数据库会话中应用程序的特定标识符
(
3
)
top sql command types
这部分信息显示了在抽样会话活动中占很高百分比的sql命令类型比如
select
或
update
(
4
)
top phases of execution
这部分信息显示了在抽样会话活动中占很高百分比的执行步骤比如
sql
,
pl/sql
和
java
的编译和执行操作
.
4.4 Top Sql
顶级
sql
部分描述了抽样会话活动中的顶级
sql
语句,使用这部分信息可以识别出造成短暂性能问题的高负载
sql
语句
顶级
sql
部分包含以下信息
:
(
1
)
top sql with top events
这部分信息显示了在抽样会话活动中占总的等待事件很高百分比的
sql
语句
.
(
2
)
top sql with top row sources
这部分信息显示了在抽样会话活动中占很高百分比的
sql
语句和它们的详细执行计划信息
.
通过这部分信息可以识别出哪部分的
sql
执行消耗了大量的
sql
执行时间
(
3
)
top sql using literals
这部分信息显示了在抽样会话活动中占很高百分比的使用
literal
值的
sql
语句
.
可以重新检查这部分
sql
语句看是否能使用绑定变量来代替
literal
值
.
(
4
)
top parsing module/action
这部分信息显示了在抽样会话活动中当执行解析
sql
语句时占很高百分比的模块和操作
(
5
)
complete list of sql text
这部分信息显示了顶级
sql
语句的完整的文本内容
(
6
)
top pl/sql
这部分信息显示了在抽样会话活动中占很高百分比的
pl/sql
过程
.
(
7
)
top java
这部分信息显示了在抽样会话活动中占很高百分比的
java
程序
4.5 top sessions
这部分信息描述了会话正在等待的一个特定等待事件。使用这部分信息来识别在抽样会话活动中占很高百分比的会话它们可能是造成短暂性能问题的原因
.top sessions
部分包含以下信息
:
(
1
)
top sessions
这部分信息显示了在抽样会话活动中占很高百分比的等待会话
(
2
)
top blocking sessions
这部分信息显示了在抽样会话活动中占很高百分比的阻塞会话
(
3
)
top sessions running pqs
这部分信息显示了哪些在抽样会话活动中占很高百分比的正处于等待的并行查询
4.6
、
top objects/files/latches
这部分信息显示了通常最消耗数据库资源的信息括以下部分
:
(
1
)
top db objects
这部分信息显示了在抽样会话活动中占所有引用对象很高百分比的数据库对象
(
比如表和索引
)
(
2
)
top db files
这部分信息显示了在抽样会话活动中占访问量很高百分比的数据库文件
(
3
)
top latches
这部分信息显示了在抽样会话活动中占很高百分比的闩锁信息
闩锁是一种简单低级别串行化机制用来保护
sga
中的共享数据结构
.
比如闩锁保护当前访问数据库和缓冲区缓存中数据块结构的用户列表
.
当维护或查找这些结构时服务器或后台进程请求持有闩锁的时间是非常短暂的
.
闩锁的实现依赖于操作系统特别是一个进程等待获取一个闩锁多长时间
.
(
4
)
Activity over time
这一部分是
ash
报告信息最丰富的一部分
.
这部分信息对于长时间周期的
ash
报告来说因为在分析期间它提供了关于活动和工作负载概要深层次的详细信息
.activity over time
会被分成
10
个时段
.
每个时段的大小基于分析所持续的时间
.
第一个和最后一个时段是奇怪
.
所有内部时段是相等的大小它们可以相互比较
.
例如,如果分析时间持续
10
分钟那么所有的时段将会是每个一分钟
.
然后如果分析时间持续
9
分
30
秒,那么外部的时段可能是每个
15
秒内部的时段可能每个
1
分钟
。
特定时段中每个时段包含的信息如下
:
列
描述
slot time(
持续时间
)
时段的持续时间
solt count
在时段中抽样会话的数量
event
在时段中顶级的三个等待事件
event count ash
抽样等待的等待事件的数量
%event ash
抽样等待的等待事件在整个分析期间所占的百分比
当比较内部时段时,通过识别异常的
event count
和
slot count
列执行一个倾斜分析
.event count
列的异常指示了在抽样会话中等待的等待事件数量增加了
.slot count
列的异常指示活动的会自豪感增加了,因为
ash
数据只从活动会话中进持抽样说明数据库的负载增加了
.
通常来说当活动会话抽样的数理和与这些会话相关的等待事件增加时那么这个时段可能会造成短暂性能问题,
oracle 11g数据库三大优化手段之一的ash生成及详解
来源:这里教程网
时间:2026-03-03 12:45:37
作者:
编辑推荐:
- 怎么用word制作音乐简谱03-03
- oracle 12c之分区表不完全索引(一)03-03
- Word文档设计一款招生海报的制作方法是什么03-03
- oracle 11g数据库三大优化手段之一的ash生成及详解03-03
- [20181213]ogg大量读取操作.txt03-03
- word目录页码怎么添加括号03-03
- oracle 闪回技术03-03
- word怎么插入脚注和尾注03-03
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle 11g数据库三大优化手段之一的ash生成及详解
oracle 11g数据库三大优化手段之一的ash生成及详解
26-03-03 - JSON to Insights:快速而简单
JSON to Insights:快速而简单
26-03-03 - Archived Redo Logs归档重做日志介绍及其优点
Archived Redo Logs归档重做日志介绍及其优点
26-03-03 - 通过案例学调优之--Oracle Cluster Table
通过案例学调优之--Oracle Cluster Table
26-03-03 - 获取oracle sql语句详细些执行计划
获取oracle sql语句详细些执行计划
26-03-03 - ssh连接所生成的known_hosts出现的问题
ssh连接所生成的known_hosts出现的问题
26-03-03 - 一次Oracle启动错误的快速解决:ORA-00119,ORA-00130
- 分区表的数据修改深入
分区表的数据修改深入
26-03-03 - oracle性能调优-虚拟索引
oracle性能调优-虚拟索引
26-03-03 - Debian cd命令完全指南(新手也能轻松掌握Linux切换目录技巧)
Debian cd命令完全指南(新手也能轻松掌握Linux切换目录技巧)
26-03-03
