lgwr超时如何判断存储还是cpu问题?(等待事件各种类型和说明及相关查询)

news2024/12/27 9:45:50

通过awr报告看:

分析:

log file parallel write平均等待8毫秒

log file sync平均等待402毫秒

排查:

log file sync = parallel write + lgwr cpu

log file parallel write等待少说明存储不慢。

所以:log file sync等待长是因为cpu高。

扩展:

>>>>>等待事件各种类型和说明及相关查询:<<<<<


--1.重要的等待事件
1.1 db file scattered read (数据文件离散读取)
与全表扫描或快速全索引扫描有关
一般是没有创建索引或没有合适的索引
归类于 UserI/O 等待

1.2 db file sequential read (数据文件顺序读取)
与读取索引块或通过索引读取数据块有关
归类于 UserI/O 等待

1.3 direct path read/write (直接路径读写), direct path read/write temp (直接路径读写临时数据文件)
直接路径读,直接读数据到 PGA ,不经过 SGA
与磁盘排序 IO,并行查询从属进程,预读处理有关
与直接路径加载,并行 DML,未缓存 LOB 段写入有关

1.4 log file switch (archiving needed) (日志切换需要归档)
日志组循环写满以后,在需要覆盖先前日志时发现归档尚未完成
有可能因为 IO 问题,归档进程写出缓慢,也有可能是日志组设置不合理
可以增大日志文件,增加日志组,移动归档文件到快速磁盘,调整 log_archive_max_processes 参数

1.5 log file switch (checkpoint incomplete) (日志切换检查点未完成)
日志组循环写满以后,在需要覆盖先前日志时发现数据库没完成写出此日志所保护的脏数据
dbwr 写出缓慢或 IO 问题
增加额外的dbwr,增加日志文件组或日志文件大小

1.6 log file syns (日志文件同步)
lgwr 进程写出效率低下或提交回滚过于频繁
提高 lgwr 性能,使用快速磁盘,使用批量提交,使用 nologging 和 unrecoverable 等选项

1.7.log file single write
与写日志文件头块有关,很少出现

1.8 log file parallel write
lgwr 将日志从 log buffer 写出到日志文件时写出是并行的 (多个日志成员),全部完成后此操作才会完成

1.9 log buffer space
日志产生速度快于 lgwr 写出速度,或日志切换太慢,或 IO 瓶颈
增加日志文件大小或缓冲区大小,更换高速磁盘(裸设备)
不要将日志文件于数据文件方在一起,尽量用 raid10 而不是 raid5 来存储日志文件

1.10 enqueque (队列等待)

1.11 latch free (latch 释放)


--2.相关视图
2.1 v$session
数据库当前连接的会话信息,随会话消失而消失

2.2 v$session_wait
数据库当前连接的会话正在等待的资源或事件信息,随会话消失而消失

2.3 v$session_wait_history
记录数据库活动会话近 10 次的等待的资源或事件信息

2.4 v$system_event
数据库启动以来所以等待事件的汇总信息

2.5 v$session_longops
长时间运行 (超过 6 秒) 的事务

2.6 v$segstat_name
段级统计信息收集信息


--3.相关查询脚本
3.1 --事件主要分类和个数
column wait_class format a20
select wait_class#,wait_class_id, wait_class,count(*)
  from v$event_name
 group by wait_class#,wait_class_id, wait_class
 order by wait_class#;

    
WAIT_CLASS# WAIT_CLASS_ID WAIT_CLASS             COUNT(*)
----------- ------------- -------------------- ----------
          0    1893977003 Other                      1394
          1    4217450380 Application                  17
          2    3290255840 Configuration                28
          3    4166625743 Administrative               59
          4    3875070507 Concurrency                  56
          5    3386400367 Commit                        5
          6    2723168908 Idle                        140
          7    2000153315 Network                      30
          8    1740759767 User I/O                     59
          9    4108307767 System I/O                   40
         10    2396326234 Scheduler                    10
         11    3871361733 Cluster                      73
         12     644977587 Queueing                      9

13 rows selected.

SQL> 


3.2 --等待事件的参数意义描述
//不同事件的参数意义不同
SQL> column parameter1 format a20
SQL> column parameter2 format a20
SQL> column parameter3 format a20
SQL> select
     name,
     parameter1,
     parameter2,
     parameter3
from v$event_name
where name = 'db file scattered read';

NAME                       PARAMETER1           PARAMETER2           PARAMETER3
-------------------------- -------------------- -------------------- --------------------
db file scattered read     file#                block#               blocks

SQL> 

3.3 --各类等待事件的等待时间和等待次数统计
select * from v$system_wait_class order by time_waited;

WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS       TOTAL_WAITS TIME_WAITED TOTAL_WAITS_FG TIME_WAITED_FG CON_ID
------------- ----------- ---------------- ----------- ----------- -------------- -------------- ------
   4166625743           3 Administrative           307           0            307              0      0
   3386400367           5 Commit                    48           5              6              1      0
   3290255840           2 Configuration             23         156              3            143      0
   4217450380           1 Application             8052         799           8017            786      0
   3875070507           4 Concurrency            47407        1804            641           1262      0
   2000153315           7 Network               996747        5148         967099           4676      0
   4108307767           9 System I/O            271141        9865            736            333      0
   1740759767           8 User I/O              107989       14886          26581           5345      0
   2396326234          10 Scheduler               3169       84058           1700          49447      0
   1893977003           0 Other                1217528       91865          59734          16197      0
   2723168908           6 Idle                 6578660   308797577          59870       20453518      0

11 rows selected.

SQL> 


3.4 --TOP 10等待事件
select *
  from (select event, total_waits, time_waited
          from v$session_event
         order by time_waited desc)
 where rownum < 10;

EVENT                TOTAL_WAITS TIME_WAITED
-------------------- ----------- -----------
pmon timer                 13443     4022721
rdbms ipc message          13455     4022135
watchdog main loop         13407     4022121
rdbms ipc message          16595     4022081
pmon timer                 13414     4021906
watchdog main loop         13403     4020953
OFS idle                   13399     4020882
rdbms ipc message          13449     4020824
watchdog main loop         13403     4020790

9 rows selected.

SQL> 


3.5 --查看当前发生等待的会话信息
set linesize 200
set pagesize 1000
column username format a10
column event format a20
column wait_class format a15
select nvl(s.username, '(oracle)') as username,
       s.sid,
       s.serial#,
       sw.event,
       sw.wait_class,
       sw.wait_time,
       sw.seconds_in_wait,
       sw.state
from   v$session_wait sw,
       v$session s
where  s.sid = sw.sid
order by sw.seconds_in_wait desc;

3.6 --根据SID查找造成等待的SQL
select a.sql_id,
       a.sql_text
from v$sqltext a,v$session b
where a.hash_value = b.sql_hash_value 
and   b.sid = '&sid'
order by a.piece;

3.7 --活动session的近10次的等待信息
column event format a30
column p1text format a15
column p2text format a15
column p3text format a15
select event, 
       p1text,
       p1,
       p2text,
       p2,
       p3text,
       p3,
       wait_time,
       wait_count  --19C中没此列,有WAIT_TIME_MICRO
  from v$session_wait_history
 where sid = &sid;

3.8 --根据等待事件获得执行计划
set linesize 120
col operation format a55
col cost format 99999
col kbytes format 999999
col object format a25
select hash_value,
       child_number,
       lpad(' ', 2 * depth) || operation || ' ' || options ||
       decode(id, 0, substr(optimizer, 1, 6) || ' cost=' || to_char(cost)) operation,
       object_name object,
       cost,
       round(bytes / 1024) kbytes
  from v$sql_plan
 where hash_value in (select a.sql_hash_value
                        from v$session a, v$session_wait b
                       where a.sid = b.sid
                         and b.event = '&waitevent')
 order by hash_value, child_number, id;
 
 
3.9 --获取全描扫描的对象
select distinct object_name, object_owner
  from v$sql_plan
 where operation = 'TABLE ACCESS'
   and options = 'FULL'
   and object_owner = 'SYS';


3.10 --查找全表扫描的SQL
select t.sql_id, t.sql_text
  from v$sqltext t, v$sql_plan p
 where t.hash_value = p.hash_value
   and p.operation = 'TABLE ACCESS'
   and p.options = 'FULL'
   and p.object_owner = 'SYS'
 order by p.hash_value, t.piece;


3.11 --获得全索引扫描的对象
select distinct
       object_name,
       object_owner
from v$sql_plan
where operation='INDEX' 
and options='FULL SCAN';

3.12 --查找全索引扫描的 SQL
SELECT t.sql_id, t.sql_text
  FROM v$sqltext t, v$sql_plan p
 WHERE t.hash_value = p.hash_value
   AND p.operation = 'INDEX'
   AND p.options = 'FULL SCAN'
 ORDER BY p.hash_value, t.piece;


3.13 --全表扫描的统计信息
column name format a30
column value format 999,999,999
select name, value
  from v$sysstat
 where name in ('table scans (short tables)', 'table scans (long tables)');


3.14 --查看高负载SQL
SELECT address,
       substr(sql_text, 1, 20) text,
       buffer_gets,
       executions,
       buffer_gets / executions avg
  from v$sqlarea
 where executions > 0
   and buffer_gets > 100000
 order by 5;
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1580874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis系列之主从复制集群搭建

在上一篇博客&#xff0c;我们已经知道怎么搭建一个redis单机版&#xff0c;这篇博客基于之前的基础&#xff0c;来搭建一个redis主从同步&#xff0c;本博客框架是一主二从&#xff0c;一个主节点&#xff0c;其它两个从节点 实验环境 CentOS7Xshell6XFtp6Redis6.2.2 主从关…

强化学习MPC——(二)

本篇主要介绍马尔科夫决策&#xff08;MDP&#xff09;过程&#xff0c;在介绍MDP之前&#xff0c;还需要对MP&#xff0c;MRP过程进行分析。 什么是马尔科夫&#xff0c;说白了就是带遗忘性质&#xff0c;下一个状态S_t1仅与当前状态有关&#xff0c;而与之前的状态无关。 为…

金山系雄风再显,雷军创建黑灯工厂,中文编程也迎来新突破

金山系被誉为互联网行业的黄埔军校&#xff0c;这一称谓绝非虚言。 求伯君、雷军、蒋涛、傅盛、王峰等金山系的前辈们&#xff0c;不仅是中国科技发展的领军人物&#xff0c;更是以他们的智慧和勇气&#xff0c;引领着国产科技的新方向&#xff0c;书写了一段段充满激情与传奇色…

【matlab非线性规划工具箱安装2 GloptiPoly 3.10工具箱】

【matlab非线性规划工具箱安装2 GloptiPoly 3.10工具箱】 该博客是非线性手眼标定代码中所依赖的matlab工具箱的安装内容&#xff0c;除了进行手眼标定以外&#xff0c;该工具箱还可以用于其他的非线性规划问题 在安装该工具箱之前请先安装SeDuMi 手眼标定传送门&#xff1a…

2024马来西亚电商选品博览会

2024马来西亚电商选品博览会 展会概况 展会名称&#xff1a;2024马来西亚电商选品博览会 主办单位&#xff1a;广东进出口商会 时间:2024.11.29-12.1 地点&#xff1a;马来西亚国际贸易展览中心(MITEC) 展览面积&#xff1a;10000平方米 展会简介 2024马来西亚跨境电商选…

Feature Pyramid Networks for object detection

FPN 总述1.引言2.相关工作3. Feature Pyramid NetworksBottom-up pathwayTop-down pathway and lateral connections 4. 应用用于 RPN用于 Fast R-CNN 核心代码复现FPN网络结构ResNet Bottleneck完整代码 总述 下图中&#xff0c;蓝色边框表示的是特征图&#xff0c;边框越粗表…

HarmonyOS实战开发-如何使用 geolocation 实现获取当前位置经纬度

介绍 本示例使用 geolocation 实现获取当前位置的经纬度,然后通过 http 将经纬度作为请求参数,获取到该经纬度所在的城市。通过 AlphabetIndexer 容器组件实现按逻辑结构快速定位容器显示区域。 效果预览 使用说明 1.进入主页,点击国内热门城市,配送地址会更新为选择的城…

Redis系列之基于Linux单机安装

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库&#xff0c;并提供多种语言的 API。最近学习需要用到Redis&#xff0c;所以就去Linux服务器上部署一个&#xff0c;做下记录&#xff0c;方便…

美团一面4/9

面的时候自我感觉良好&#xff0c;复盘感觉答的一坨。。 0怎么比较两个对象 0Integer 不使用new会自动装箱&#xff0c;返回提前创建的。使用new就创建新对象。 1.Object类有什么方法 java中Object类中有哪些常用方法以及作用_java中object的方法有什么用-CSDN博客 2.hash…

机器学习中的最优化算法有哪些?

我们日常生活中遇到过很多最优化问题&#xff0c;比如如何在最短时间内从A点到达B点&#xff1f;如何投入最少工作量却获得最大的效益&#xff1f;如何设计发动机使得油耗最少而功率最大&#xff1f;可见&#xff0c;最优化的作用十分强大。接下来&#xff0c;我们介绍几个最优…

保研线性代数复习4

一.范数&#xff08;Norms&#xff09; 1.什么是范数&#xff1f; 范数是一个向量空间V的函数&#xff0c;每一个属于向量空间V的向量x都匹配了一个实数&#xff08;它的长度&#xff09;&#xff1a; 2.范数的性质&#xff1f; 齐次性&#xff1a; 正定性&#xff1a; 三…

10分钟上手:MySQL8的Json格式字段使用总结干货

一、关于效率和适用范围 尽管官方承诺Json格式字段采用了空间换时间的策略&#xff0c;比Text类型来存储Json有大幅度的效率提升。但是Json格式的处理过程仍然效率不及传统关系表&#xff0c;所以什么时候用Json格式字段尤为重要。 只有我们确定系统已经能精确定位到某一行&am…

Python3 replace()函数使用详解:字符串的艺术转换

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

7-13那就别担心了

题目 下图转自“英式没品笑话百科”的新浪微博 —— 所以无论有没有遇到难题&#xff0c;其实都不用担心。 博主将这种逻辑推演称为“逻辑自洽”&#xff0c;即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题&#xff08;开玩笑的&#xff0c;千万别以为这是真正…

C语言面试题之环路检测

环路检测 实例要求 1、给定一个链表&#xff0c;如果它是有环链表&#xff0c;实现一个算法返回环路的开头节点&#xff1b;2、若环不存在&#xff0c;请返回NULL&#xff1b;3、如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在…

【C语言】简单介绍进制和操作符

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 本文简要介绍进制和操作符&#xff0c;愿能为您提供帮助&#xff01;文章…

FD-350 水分含量传感器 485输出 墒情监测

产品概述 FD-350 水分含量传感器由电源模块、变送模块、漂零及温度补偿模块、数据处理模块等组成。采用FDR频域法&#xff0c;可以实时准确测定各种土壤不同剖面的水分含量。传感器内置信号采样及放大、零点漂移及温度补偿功能&#xff0c;用户接口简洁、方便。外型小巧轻便&a…

负荷预测 | Matlab基于TCN-GRU-Attention单输入单输出时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-GRU-Attention单输入单输出时间序列多步预测&#xff1b; 2.单变量时间序列数据集&#xff0c;采用前12个时刻预测未来96个时刻的数据&#xff1b; 3.excel数据方便替换&#xff0c;运行环境matlab20…

盛最多水的容器(双指针)

11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 …

快速安装/升级/卸载Ascend配套软件包

一、参考资料 配套MindSpore 昇腾软件安装指引&#xff08;23.0.RC3&#xff09; 快速安装CANN 二、安装Ascend配套软件包 1. Ascend配套软件包简介 Ascend配套软件包&#xff0c;包括&#xff1a;固件、驱动和CANN&#xff08;Compute Architecture for Neural Networks&…