关于DBA的一些学习(一)
ASH(active session history)是V$SESSION视图获取
1.每秒钟收集一次当前处于非空闲等待事件的、活动状态的、会话的信息,并保存在 V$ACTIVE_SESSION_HISTORY 视图中
2.活动会话包含2类情况,一类是非空闲等待事件(WAIT_CLASS <> 'Idle'),一类是“ON CPU”状态的会话
3.ASH数据被刷新到磁盘,则需要从DBA_HIST_ACTIVE_SESS_HISTORY视图中查询相关信息
AWR(aotumatic workload repository )信息来源是DBA_HIST_%开头的数据字典,select table_name from dictionary where table_name like 'DBA_HIST_%';
一般Oracle服务器负载飙升,90%都是由不规范的sql、性能差的sql造成的,而ASH和AWR报告是我们解决问题的最有效的途径
ASH和AWR的区别:
1.awr默认1小时生成一个快照,ash是1秒钟,
2.awr默认保存7天,ash理论是1小时(ash buffers)
3.awr是全面的,ash是单方面的,更侧重于session级的event跟踪,
4.awr用于诊断数据库的整体性能分析,ash用于当前时间段内的数据库性能分析
5.由于业务量大的数据库的event wait是瞬息万变,有时候性能抖动时间很短,awr很可能会监控不到,因为AWR是数据合集,重要信息的指标值被稀释。为了弥补这个不足,使用ASH对session的event进行跟踪。
ASH报告生成:
SQL> @?/rdbms/admin/ashrpt.sql
AWR报告生成:
$su - oracle
$sqlplus / as sysdba
单实例 SQL>@?/rdbms/admin/awrrpt.sql
RAC环境 @?/rdbms/admin/awrgrpti.sql
ASH报告解读:
1.top user events 可以识别是那些等待事件造成了短暂的性能问题
2.top sql 可以识别出造成短暂性能问题的高负载sql语句
3.top sql with top events 显示了在抽样会话活动中占总的等待事件很高的百分比的sql语句
4.top sql with top row resource 在⒊的基础上展示详细的执行计划
5.top session 显示了在抽样会话活动中占很高的百分比的等待会话
6.top blocking sessions 显示了那些在抽样会话活动中占比很高的阻塞会话
7.activity over time 展示了在单位时间内等待事件的数量和总占比
AWR报告解读:
1.SQL ordered by CPU Time 记录了执行占CPU时间总和时间最长的TOP SQL
2.SQL ordered by User I/O Wait Time 展示了IO等待时间
3.SQL ordered by Gets 每次执行获得的内存数据块数量。
4.SQL ordered by Executions 这部分列出了SQL执行次数的信息,按照从大到小的顺序排列。OLTP系统较为有用
PS:
1.Sessions 表示采集实例连接的会话数。这个数可以帮助我们了解数据库的并发用户数大概的情况。这个数值对于我们判断数据库的类型有帮助。
2.Cursors 每个会话平均打开的游标数。
3.Elapsed 通过Elapsed/DB Time比较,反映出数据库的繁忙程度。如果DB Time>>Elapsed,则说明数据库很忙。cpu利用率为:DB Time /(Elapsed* NUM_CPUS)
4.DB Time 表示用户操作花费的时间,包括CPU时间和等待事件。通常同时这个数值判读数据库的负载情况。db time = cpu time + wait time(不包含空闲等待)(非后台进程)
5.Redosize 根据每秒产生的日志大小,可以用来判断数据变更频率程度,大的redosize往往对lgwr写日志,和arch归档造成I/O压力,也有可能造成logbuffer堵塞从而产生相关的等待事件。
6.Logical reads 从内存中读取数据的次数每秒钟逻辑读数据量:(次数*块数)
7.Physical reads 当从内存中未得到数据时则从硬盘上读取数据,每秒物理读数据量:(次数*块数) Physical reads/Logical reads 比若很高,io可能是系统的性能瓶颈
8.Parses 每秒产生的解析的次数,包括软解析和硬解析,但是不包括快速软解析; Hard parses 每秒产生的硬解析次数。
9.Logons:每秒(每个事务)登录数据库次数,这个数接近0比较理想
10.Executes 每秒(每个事务)SQL语句执行次数。包括了用户执行的SQL语句与系统执行的SQL语句,表示一个系统SQL语句的繁忙程度
11.Transactions 每秒的事务数。表示一个系统的事务繁忙程度。
12.Rollback 看事务回滚是不是很高,因为回滚很耗资源。
13.如果看到SQL语句执行时间很长,而CPU时间很少,则说明SQL在I/O操作时消耗较多;SQL的等待时间主要发生在I/O操作方面,不能说明系统就存在I/O瓶颈,只能说SQL有大量的I/O操作
关于DBA的一些学习(一)相关推荐
- 【DBA】 Oracle 学习路线
[DBA] Oracle 学习路线 出差归途火车上,有几个小时的时间,正好可以把Oracle 知识的学习框架梳理一下,这些都是Dave对Oracle的一些理解,共初学者参考. 本篇文章只介绍知识点,不 ...
- Oracle 9i DBA Fundamentals I 学习笔记(三)
Chapter 03-Mangagering an Oracle Instance 1. 初始化参数文件 (1).初始化参数文件的种类: ·静态参数文件pfile,一般命名方式为initSID.or ...
- Oracle 9i DBA Fundamentals I学习笔记(六)
Chapter 06-maintaining the control file 1. 控制文件 ·小型二进制文件 ·定义了数据库当前的物理状态 ·保证数据库的完整性 ·数据库处于mount状态时,读取 ...
- 把握数据库发展趋势 DBA应如何避免“踩坑”?
在DTCC 2019大会上,阿里云智能数据库产品事业部高级产品专家萧少聪做了题为<如何构建云时代DBA的知识体系>的演讲,进行云时代以后,IT行业各工种的职责都在发生变化,云数据库使得日常 ...
- DBA 1.0与DBA眼中的DBA 2.0时代
今天我们都在谈DBA 2.0,而此前的模式就被归结为DBA 1.0,那么DBA 1.0的时代是什么样子的呢? 我简单做了如下一幅图示,将DBA的工作分为三个部分:Pre-DBA.DBA.Post-DB ...
- 知数堂MySQL DBA在线培训第八期招生中
知数堂MySQL DBA在线培训班值得信赖吗 "知数堂培训"是由资深MySQL专家叶金荣.吴炳锡联合推出专业优质在线培训课程,目前主要有MySQL DBA实战优化和Python运维 ...
- 【DBA100人】胡中豪:国产分布式数据库DBA炼成记
「DBA 100人」专访计划是OceanBase围绕资深DBA(数据库管理员:Database Administrator)进行的人物专访活动,旨在通过人物故事.职业发展经历以及日常工作中遇到的技术难 ...
- dba怎么报考_深圳dba双证报考时间
深圳dba双证报考时间免联考dba顾名思义就是不需要进行全国性联考就可以就读的.免联考DBA项目是培养已具备硕士学位或者同等学历以上的高级管理人才,经过博士学位的工商管理专业的课程考试和论文答辩,成绩 ...
- Greenplum Python专用库gppylib学习——GpArray
gparray.py依赖的python包(datetime.copy.traceback.os),依赖的gp包(gplog.utils.db.gpversion.commands.unix) from ...
最新文章
- nginx源代码执行过程(一)
- JS设计模式—节流模式的实际应用
- dell 如何给raid分区_什么是RAID技术?
- Storm和Kafka集成的重要生产错误和修复
- c语言数组指定位置插入和删除_Apache POI在指定位置插入表格
- OpenCv的连通域操作
- errorattributes 过时_苹果官方确认:iPhone 5c 已被列为过时产品
- CSS 常用中文字体的英文名称
- 吃瓜笔记 | Momenta王晋玮:让深度学习更高效运行的两个视角
- 人脸图像特征提取方法(HOG、Dlib、CNN)简述
- 超炫酷生日快乐网页源代码_最炫表白网站源码_html生日快乐网站制作
- 【解决】 io.lettuce.core.RedisCommandExecutionException: ERR wrong number of arguments for 'set' command
- js学习小计5-零宽断言
- 一个超级棒的 Chrome 翻译插件
- Excel文本自动换行
- 树莓派 arch linux,给树莓派安装ArchLinux
- 博客专家 - 2022贡献榜与TOP100光荣榜【转】
- ro模式数据库mysql_ro数据库-和ro数据库相关的内容-阿里云开发者社区
- Qt5:error: no matching function for call to 'MainWindow::connect()
- 程序员生涯之我见 找到自己的兴趣所在