数据库
oracle数据库自启动和关闭脚本调用
数据库灾备恢复小结
DMS使用文档
Oracle12C安装文档_李光升
Centos配置yum源的操作步骤-李光升
CCS数据库突然卡顿问题解决-徐铭
Centos 7.9静默安装oracle 12cR2详细步骤
mysql5.7数据库sql语句数据类型隐式转换的反逻辑BUG
RDS MySQL临时文件导致实例磁盘空间满且出现“锁定中”状态
关于Mysql引擎Myisam和InnoDB的使用
MySQL查询语句中in和exists区别详解-知识点
Mysql 的存储过程中 WITH AS 的语法和使用
Mysql 性能调优-详解
oracle数据库DG搭建
SUSE linux 配置时钟同步服务NTP/Chrony
oracle数据库实例开启操作文档
oracle数据库实例关闭操作文档
oracle数据库DBS备份配置文档v2
ALiYun ECS CENTOS数据上传到OSS操作手册
Oracle - LOGMINER配置方法
oracle sysaux表空间爆满清理unified auditing数据
sysaux表空间爆满WRI$_ADV_OBJECTS占用严重
SAP权限对象
SYSAUX表空间WRI$\_ADV\_OBJECTS表过大清理V2
oracle:表访问方式
ORA性能诊断调优
数据字典(DICT)和性能事件类型(EVENT)
日志挖掘LogMiner
RMAN sql_id “0az7czjdw8z7j” 执行计划异常
Oracle11g Active Data Guard搭建、管理
ORACLE LOGMINER配置v2
oracle日志组调整
ECS linux服务器挂载nas磁盘失败
oracle数据库修改字符集
datapump数据泵导入导出
OA系统数据库ADG架构搭建
IPS数据库SQL执行异常:ORA-00600
oracle 12c 创建PDB
oracle数据库监听异常
lvm:阿里云磁盘扩容,lvm扩容
Redis基本操作
SAP S4 CLIENT COPY(800->400)
日常数据库操作
PGSQL操作
# ORA-00054: resource busy问题处理
OA数据库服务器故障分析报告
CCS数据库生产数据库(北京中心)覆盖到VER环境数据库(乌兰察布):使用nonpdb to pdb迁移方式
WINDOWS环境Django框架连接MySQL数据库配置
Django开发学习实战
什么是向量嵌入?
OA数据库服务器内次异常增长问题分析
基于AI的自动化服务器管理
AI技术发展趋势及其在农牧食品行业的创新应用
IPS数据库日志表数据归档&表分区
国产编程模型GLM-4.6海外爆火:性能媲美ClaudeSonnet,性价比优势显著
免费开源的零代码平台 / 无代码平台,敲敲云 v2.2.0 版本
数据库原理与应用
AI发展近况分析
ORACLE ADG环境下解除ADG关系并激活备库为独立数据库
麦肯锡重磅报告:关于未来的生存指南,当57%的工作被自动化,我们如何与AI结成利益共同体
【Oracle】Cursor(游标)
ORACLE数据库在曾经的备库(路径一致)进行不完全恢复
获取执行计划的6种方法
人工智能行业的发展已进入“系统竞争”时代
2026年AI与机器人发展趋势
事务未提交导致行锁等待问题处理
MongoDB日常操作命令
2026年人工智能前沿技术趋势与应用落地分析
Doris开发
本文档使用「觅思文档专业版」发布
-
+
首页
数据字典(DICT)和性能事件类型(EVENT)
# 数据字典(DICT)和性能事件类型(EVENT) 1. 1.内部表(x$) 1. v$fixed\_table:可查看所有内部表 2. x$bh 3. x$kvit 2. 2. 数据字典表(TAB$) 1. TAB$ 2. OBJ$ 3. TS$ 4. AUD$ 3. 3. 静态数据字典视图(DBA\_) 1. DICT(SYS.DICTIONARY):可查看所有静态数据字典视图 2. DBA\_视图包含了数据库所有相关对象的信息,用户需要SELECT ANY TABLE权限才能访问 1. DBA\_HIST\_ACTIVE\_SESS\_HISTORY:每10S采样一次v$session,AWR报告数据来源 2. DBA\_HIST\_SYSSTAT:采样v$sysstat,AWR全局信息来源 3. ALL\_视图包含了用户有权限访问的所有对象信息 4. USER\_视图包含了用户所拥有的相关对象信息 4. 4.动态性能视图(v$) 1. v$fixed\_table:可查看所有动态性能视图 2. v$session 1. SID:会话ID 2. PADDR:关联v$process的ADDR 3. SQL\_CHILD\_NUMBER:关联v$sql\_plan查执行计划 4. SQL\_EXEC\_START:语句执行开始时间 5. PREV\_SQL\_ID:上一个SQL语句 6. ROW\_WAIT\_OBJ#:关联DBA\_OBJECTS.OBJECT\_ID查询正在等待的对象 7. LOGON\_TIME:登录时间 8. BLOCKING\_SESSION:阻塞会话 9. FINAL\_BLOCKING\_SESSION:最终阻塞会话 10. EVENT:等待事件名称:首先需要关注的内容 11. WAIT\_CLASS:等待类型(IDLE非等待) 3. v$process 1. ADDR:关联v$session.paddr 2. SPID:server process id 关联操作系统进程号 4. v$active\_session\_history 1. 每一秒采样一次v$session,ASH报告数据来源 5. v$sql 1. EXECUTIONS:执行次数 2. DISK\_READS:物理读 3. ELAPSED\_TIME:执行时间 4. BUFFER\_GETS:逻辑读 6. v$sqlarea 1. 跟v$sql差不多 7. v$sql\_bind\_data 1. 绑定变量 8. v$sql\_shared\_cursor 1. 分析执行计划不共享的原因 9. v$sysstat 1. 全局信息(AWR报告) 2. NAME:指标项 3. VALUE:相关指标的值 10. v$statname 1. 指标定义 11. v$fast\_start\_transactions 1. 大事务回滚状态,进度 12. v$sga\_target\_advice 13. v$db\_cache\_advice 14. v$shared\_pool\_advice 15. v$px\_session 1. 查看并发数 16. v$instance 1. 基础信息功能视图 17. v$database 1. 基础信息功能视图 2. 数据来自controlfile 18. v$datafile 1. 基础信息功能视图 2. 数据来自controlfile 19. v$datafile\_header 1. 会扫描数据文件读取实际值 20. v$logfile 21. v$log 22. v$log\_history 23. v$archived\_log 24. v$controlfile 25. v$rman\_status 5. 5.等待事件 1. 等待事件分类 1. 空闲等待 1. 类型为IDLE 2. 非空闲等待 1. select sql\_id,event,count(*) from v$session where wait\_class<>'Idle' group by sql\_Id,event; 3. 详细分类 1. select wait\_class,count(*) from v$event\_name group by wait\_class order by 2; 2. 检查步骤 1. 确定等待事件类型 1. select event,count(*) from v$session group by event order by 2 desc; 2. select * from (select event,count(*) from v$active\_session\_history where sample\_time>=to\_timestamp('&begin\_time','yyyy-mm-dd hh24:mi:ss') and sample\_time<=to\_timestamp('&end\_time','yyyy-mm-dd hh24:mi:ss') group by event order by 2 desc)where rownum<=10; 3. select * from dba\_hist\_snapshot order by snap\_id desc; --确认snapshot范围 select * from (select event,count(*) from dba\_hist\_active\_sess\_history where snap\_id between &begin\_snap and &end\_snap group by event order by 2 desc)where rownum<=10; --可以根据实际情况加入其它条件 2. 确定等待事件SQL\_ID 1. select * from (select event,sql\_id,count(*) from v$session where status='ACTIVE' and sql\_id is not null group by event,sql\_id order by 3 desc) where rownum<=10; 2. select * from (select event,sql\_id,count(*) from v$active\_session\_history where sample\_time>=to\_timestamp('&begin\_time','yyyy-mm-dd hh24:mi:ss') and sample\_time<=to\_timestamp('&end\_time','yyyy-mm-dd hh24:mi:ss') and event='&event\_name' group by event,sql\_id order by 3 desc)where rownum<=20; 3. select * from dba\_hist\_snapshot order by snap\_id desc; --确认snapshot范围 select * from (select event,sql\_id,count(*) from dba\_hist\_active\_sess\_history where event='&event\_name' and snap\_id between &begin\_snap and &end\_snap group by event,sql\_id order by 3 desc)where rownum<=20; --可以根据实际情况加入其它条件 3. 检查SQL性能趋势 1. select * from( select to\_char(a.end\_interval\_time, 'YYYY-MM-DD HH24:MI:SS') end\_interval\_time, s.sql\_id, s.plan\_hash\_value, s.executions\_delta, round(s.buffer\_gets\_delta / executions\_delta,3) as buffer\_gets\_delta\_each, round(s.elapsed\_time\_delta / executions\_delta / 1000000,3) as "elapsed\_time\_delta/s", round(s.cpu\_time\_delta / executions\_delta / 1000000,3) as "cpu\_time\_delta/s", round(s.physical\_read\_bytes\_delta / executions\_delta / 1000000,3) as "physical\_read\_bytes\_delta/s", round(s.ROWS\_PROCESSED\_DELTA / executions\_delta,3) as ROWS\_PROCESSED\_DELTA from dba\_hist\_sqlstat s, dba\_hist\_snapshot a where s.snap\_id = a.snap\_id and sql\_id = '&sqlid' and s.executions\_delta > 0 order by s.snap\_id desc ) where rownum<=200; 1. ● 1) 执行计划是否有变化(即plan\_hash\_value是否有变化)。 ● 2) 执行次数是否有突增 ● 3) 物理逻辑读是否有突增 ● 4) cpu和执行耗时是否有突增 4. 获取SQL执行计划 1. select * from table(dbms\_xplan.display\_awr('&sql\_id',&plan\_hash\_value,null,'ADVANCED')); 5. 优化SQL 3. 等待类型 1. PX Deq ***:并行导致 生产环境不允许使用并行 1. 1、sql文本中加入了并行 2. 2、会话级别加入了并行 3. 3、参数不合理:parallel\_max\_servers 默认一般都有点问题 4. 4、表、索引开启了并行度:degree代表默认并行度 1. select owner,table\_name,degree from dba\_tables where degree>1; select owner,index\_name,degree from dba\_indexes where degree>1; 2. buffer busy waits 1. SQL执行效率慢(执行计划突变,执行计划走错,执行次数过多,索引不合理等),逻辑读太高了。 2. 热块 3. control file parallel write 1. 大量操作读/写控制文件 4. control file sequential read 5. control file single write 1. 备份 2. 存储IO问题 3. 日志切换频繁 4. dump控制文件 6. db file sequential read:物理IO、单块读、索引扫描 1. 1、db cache过小,内存命中率过低 2. 2、sql执行效率有问题,走错执行计划了, BUFFER GETS 太高了(逻辑读 sysstat里面的session logical reads) 3. 3、存储IO性能问题 7. db file scattered read:物理IO、多块读、绝大部分为全表扫描和索引快速全扫描 1. 1、db cache过小,内存命中率过低 2. 2、执行计划异常:TABLE ACCESS FULL / INDEX FAST FULL SCAN 3. 3、存储IO性能问题 8. direct path read 1. 1、执行计划异常:全表扫描 变更调整参数\_serial\_direct\_read,设置为never 2. 2、并行操作导致 3. 3、参数不合理导致:\_serial\_direct\_read / \_small\_table\_threshold / \_very\_large\_object\_threshold 4. 4、LOB字段导致,需要cache到内存 9. direct path read temp 1. 排序导致,请关注temp表空间使用情况 10. direct path write temp 1. 1、sql性能问题,执行计划异常,笛卡尔积比较常见:MERGE JOIN CARTESIAN 2. 2、使用了大量的排序操作 11. enq: CF - contention:控制文件锁 1. 备份恢复 2. 存储IO 3. 日志切换,大量DML语句 12. enq:HW - contention:高水位锁,段/数据文件扩展频繁(autoextend on文件),可以手动扩展数据文件 1. 1、大量数据入库,比如:insert 2. 2、bug:数据量过大的非分区表(几十上百G) 3. 3、数据文件自动扩展不合理 13. cursor: mutex S 14. cursor: mutex X 15. cursor: pin S 16. cursor: pin S wait on X 17. cursor: pin X 1. 业务繁忙期编译存储过程、函数、包等 2. 业务繁忙期间DDL表/索引等 3. 硬解析过多 4. 未使用绑定变量/绑定变量过多 5. 传参、字段类型问题导致的隐式类型转换 6. version count过高,父游标无法共享 7. 执行次数过多 8. 共享池大小不合理 9. SGA设置不合理,导致内次抖动 18. enq: SQ - contention:sequence锁(建议新建sequence时指定cache大于 40) 1. cache过小 19. enq: TM - contention:表锁(外键必须有索引) 1. 1、全表锁 2. 2、外键没有索引 3. 3、insert /*+append*/ 20. enq: TX - allocate ITL entry:ITL事务槽锁引起的等待(增大该等待对应对象的事务槽,一般6-16足够) 1. 1、表/索引默认事务槽过小:select ini\_trans from dba\_tables where table\_name='&table\_name'; 2. 2、事务过于频繁 3. 3、bug:数据量过大的非分区表(几十上百G) 21. enq: TX - contention:行锁 22. enq: TX - row lock contention 1. 1、dml相同行 2. 2、业务逻辑问题 3. 3、sql执行缓慢 4. 4、未及时提交事务 23. enq: TX - index contention 1. 1.索引分裂:调整pct\_free 2. 2.大量insert导致索引分裂,一般出现在右侧索引上,比如:时间字段索引 评估整改为反向键索引或hash索引 3. 3.bug:数据量过大的非分区表(几十上百G) 24. enq: US - contention:undo segment锁 1. 1、undo空间不足 2. 2、sql导致undo使用过于频繁 3. 3、sql逻辑问题,未批量处理,及时释放undo 25. free buffer waits 1. 1、db cache不足 2. 2、db writer 不足 3. 3、存储IO差 26. latch free 1. 1、硬解析过多 2. 2、未使用绑定变量/绑定变量过多 3. 3、传参、字段类型问题导致隐式类型转换 4. 4、version count过高,父游标无法共享 5. 5、执行次数过多 6. 6、共享池大小不合理 7. 7、共享子池数量不合理 8. 8、sga设置不合理,导致内存抖动 27. latch: cache buffers chains 1. 1、SQL执行效率慢(执行计划突变,执行计划走错,执行次数过多,索引不合理等) 2. 2、热块 3. 3、简单sql大量buffer gets,一般是由于大事务相关CR数据被其他事务读取 28. latch: undo global data:undo争用 1. 1、undo\_retention / undo\_management 不合理 2. 2、undo过小 3. 3、sql导致undo使用频繁 4. 4、sql逻辑问题,未批量处理,及时释放undo 29. library cache lock 30. library cache pin 1. 1、业务繁忙期编译存储过程、函数、包等 2. 2、业务繁忙期间DDL表/索引等 3. 3、密码延迟验证 31. library cache: mutex *** 1. 1、业务繁忙期编译存储过程、函数、包等 2. 2、业务繁忙期间DDL表/索引等 3. 3、硬解析过多 4. 4、未使用绑定变量/绑定变量过多 5. 5、传参、字段类型问题导致隐式类型转换 6. 6、version count过高,父游标无法共享 7. 7、执行次数过多 8. 8、共享池大小不合理 9. 9、共享子池数量不合理 10. 10、sga设置不合理,导致内存抖动 32. log buffer space 1. 1、log buffer 不足 2. 2、大量dml 33. log file switch *** 1. 1、log buffer 不足 2. 2、大量dml 3. 3、坏块 4. 4、存储IO性能差 5. 5、redolog 大小和组数量不合理 6. 6、fra满 7. 7、卷空间满 8. 8、db writer不足 34. log file sync 1. 1、commit次数过多 调整参数\_use\_adaptive\_log\_file\_sync 2. 2、存储IO性能差 设置为false 3. 3、大量dml+redolog大小和组不合理 4. 4、log buffer不足 5. 5、隐含参数问题:\_use\_adaptive\_log\_file\_sync 6. 6、CPU处理能力不足 35. read by other session 1. 1、SQL执行计划异常(执行计划走错,索引不合理等) 2. 2、dbcache内存设置较小 3. 3、热块 36. row cache lock 1. 1、共享池大小不合理 V$ROWCACHE 2. 2、共享子池数量不合理 DBA\_HIST\_ROWCACHE\_SUMMARY 3. 3、对象设置不合理。比如sequence的cache,表空间的自动扩展大小等 4. 4、频繁大量grant 5. 5、sga设置不合理,导致内存抖动
徐铭
2024年3月26日 16:43
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期