数据库
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开发
人工智能在数据库运维工作中的应用趋势与落地场景研究
帆软报表开发学习
AI 助手在 Oracle DBA 工作中的辅助能力研究报告
AI原生数据库发展趋势白皮书
OpenClaw数据库管理应用实践
Apache Doris 简介
AI在实际工作中的应用案例分享
人形机器人现状
从十大AI技术趋势,窥见“未来”
AI 在辅助投资股票方面的落地方案与实际使用价值
从原理到实践,一文读懂主流 AI 技术
AI Agent 从零开始学习路线图
AI 驱动的内容生产工作流探索 —— 基于微信公众号文章编写与视频号视频生成的实践
本文档使用「觅思文档专业版」发布
-
+
首页
ORA性能诊断调优
# ORA性能诊断调优 1. 查看当前会话情况 ---v$session视图显示实时的会话记录 select sql\_id,event,count(*) from v$session where wait\_class <>'Idle' group by sqL\_ID,EVENT; ---v$active\_session\_history视图显示历史会话记录,每1s采样一次,存放内存 select sample\_id,sample\_time,count(*) from v$active\_session\_history group by sample\_id,sample\_time having count(*)>10 order by sample\_id desc ---dba\_hist\_active\_sess\_history视图显示历史会话记录,每10s采样一次,存放物理表 1. 共享池命中率低 考虑调整 CURSOR\_SHARING 参数, 设置成SIMILIAR(check docuBment) 1. DB time SELECT * fROM (select t1.snap\_id, T1.INSTANCE\_NUMBER, to\_char(t2.end\_interval\_time,'YYYY-MM-DD HH24:MI:SS') AS T\_SAMPLE, t1.stat\_name, t1.value - lag(t1.value, 1) over(oRder by t1.snap\_id asc) as delta from dba\_hist\_sys\_time\_model t1, dba\_hist\_snapshot t2 where t1.instance\_number= t2.instance\_number and t1.instance\_number=1 and t1.snap\_id = t2.snap\_id and t1.stat\_name = 'DB time' and t2.end\_interval\_time > sysdate - 3) WHERE DELTA>0 order by snap\_id asc 1. IOPS ,MBPS dba\_hist\_sysstat v$sysstatt select * from (select t1.snap\_id, to\_char(t2.begin\_interval\_time, 'yyyy-mm-dd hh24:mi:ss') as t\_begin, to\_char(t2.end\_interval\_time, 'yyyy-mm-dd hh24:mi:ss') as t\_end, t1.stat\_name, t1.value - lag(t1.value, 1) over(order by t1.snap\_id asc) as delta From dba\_hist\_sysstat t1, dba\_hist\_snapshot t2 where t1.snap\_id = t2.snap\_id and t1.instance\_number=t2.instance\_number and t1.instance\_number=1 --- RAC库如果看节点2 , 修改成2 and t1.stat\_name = 'physical reads' --'session logical reads’ and t2.begin\_interval\_time > sysdate - 10) where delta > 0 order by snap\_id asc 1. resource limit show parameter session; show parameter processes; 1. force logging enable(建议) 2. 优化sql 1. 根据sql\_id分析语句资源使用情况(当前VS历史) ---查看sql语句当前执行时资源使用情况 select sql\_id, child\_number, PLAN\_HASH\_VALUE, round(elapsed\_time / executions) as elapsetimeavg, round(rows\_processed / executions) as row\_avg, round(buffer\_gets / executions) as bufferavg, round(disk\_reads / executions) as diskavg, round(t.CPU\_TIME/executions) as cpuavg, executions, sql\_profile from v$sql t where t.sql\_id = 'f401pc3jtp8sg' and executions > 0; ---查看sql语句历史执行时资源使用情况 select to\_char(end\_interval\_time, 'YYYY-MM-DD HH24:MI:SS') SAMPLE\_TIME, t1.snap\_id, t1.sql\_id, t1.executions\_delta, t1.plan\_hash\_value, round(t1.elapsed\_time\_delta / t1.executions\_delta) elapsed\_time\_average, round(t1.buffer\_gets\_delta / t1.executions\_delta) buffer\_average, round(t1.rows\_processed\_delta / t1.executions\_delta) as row\_average, round(t1.disk\_reads\_delta / t1.executions\_delta) disk\_average, round(t1.cpu\_time\_delta / t1.executions\_delta) cpu\_time\_average, round(t1.clwait\_delta / t1.executions\_delta) as cl\_time\_avg, round(t1.iowait\_delta / t1.executions\_delta) as io\_time\_avg, round(t1.apwait\_delta / t1.executions\_delta) as lock\_time\_avg, round(t1.direct\_writes\_delta / t1.executions\_delta) as direct\_write\_average, t1.sql\_profile from dba\_hist\_sqlstat t1, dba\_hist\_snapshot t2 where t1.instance\_number = t2.instance\_number and t1.snap\_id = t2.snap\_id and t1.sql\_id = 'bb7qdasc1snkn' and t1.executions\_delta > 0 order by sample\_Time asc; * 1. 根据sql\_id查看语句执行计划(当前VS历史) ---查看语句当前的执行计划 select * from table(dbms\_xplan.display\_cursor('f401pc3jtp8sg')); ---查看语句历史执行计划 select * from table(dbms\_xplan.display\_awr('f401pc3jtp8sg')); * 1. 使用调优顾问为sql生成优化建议 set serveroutput on size 10000; declare a varchar2(100); begin a:=DBMS\_SQLTUNE.CREATE\_TUNING\_TASK(sql\_id=>'f401pc3jtp8sg'); dbms\_sqltune.execute\_tuning\_task(a); dbms\_output.put\_line('select dbms\_sqltune.report\_tuning\_task ('''||a||''') from dual;'); end; / ; select to\_char(substr(dbms\_sqltune.report\_tuning\_task ('a'),1,2000)) from dual; 1. 锁和HOLDER select sid,serial#,username,sql\_id,event,program from v$session t where t.sid in (select sid from ( select a.sid, connect\_by\_isleaf as isleaf from v$session a start with a.blocking\_session is not null connect by nocycle a.sid = prior a.blocking\_Session ) where isleaf =1); select * from ( select a.inst\_id,a.sid, a.sql\_id, a.event, a.program, connect\_by\_isleaf as isleaf, sys\_connect\_by\_path(sid,'<-') tree, level as tree\_level from gv$session a start with a.blocking\_session is not null connect by nocycle a.sid = prior a.blocking\_Session and a.inst\_id=prior a.BLOCKING\_INSTANCE ) where isleaf =1 order by tree\_level asc; 1. 历史上PGA的使用情况 select snap\_id,round(value/1024/1024,0) from dba\_hist\_pgastat where name='total PGA allocated' order by snap\_id; 1. 查询当前进程的PGA使用情况 SELECT p.spid, p.pid, s.sid, s.serial#, s.status, p.pga\_alloc\_mem, p.PGA\_USED\_MEM, s.username, s.osuser, s.program FROM vprocess p, vsession s WHERE s.paddr ( + ) = p.addr AND p.BACKGROUND is NULL /* Remove if need to monitor background processes */ ORDER BY p.pga\_alloc\_mem desc;
徐铭
2024年3月26日 16:39
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期