Oracle Study之--Oracle等待事件(5)
Db file single write
这个等待事件通常只发生在一种情况下,就是Oracle 更新数据文件头信息时(比如发生Checkpoint)。
当这个等待事件很明显时,需要考虑是不是数据库中的数据文件数量太大,导致Oracle 需要花较长的时间来做所有文件头的更新操作(checkpoint)。
这个等待事件有三个参数:
File#: 需要更新的数据块所在的数据文件的文件号。
Block#: 需要更新的数据块号。
Blocks: 需要更新的数据块数目(通常来说应该等于1)。
案例分析:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
15 : 03 : 26 SYS@ prod>select event,TOTAL_WAITS,AVERAGE_WAIT from v$system_event
15 : 03 : 31 2 where upper(event) like 'DB FILE%' ;
EVENT TOTAL_WAITS AVERAGE_WAIT
---------------------------------------------------------------- ----------- ------------
db file sequential read 2093 .01
db file scattered read 833 .02
db file single write 27 .28
db file parallel write 5 17.48
15 : 03 : 51 SYS@ prod>alter system checkpoint;
System altered.
15 : 03 : 35 SYS@ prod>select event,TOTAL_WAITS,AVERAGE_WAIT from v$system_event
2 * where upper(event) like 'DB FILE%'
EVENT TOTAL_WAITS AVERAGE_WAIT
---------------------------------------------------------------- ----------- ------------
db file sequential read 2673 .01
db file scattered read 833 .02
db file single write 36 .55
db file parallel write 7 14.73
Elapsed: 00 : 00 : 00.01
|
Direct path read
这个等待事件发生在会话将数据块直接读取到PGA当中而不是SGA中的情况,这些被读取的数据通常是这个会话私有的数据,所以不需要放到SGA作为共享数据,因为这样做没有意义。这些数据通常是来自于临时段上的数据,比如一个会话中SQL的排序数据,并行执行过程中间产生的数据,以及Hash Join,merge join产生的排序数据,因为这些数据只对当前的会话的SQL操作有意义,所以不需要放到SGA当中。
当发生direct path read等待事件时,意味着磁盘上有大量的临时数据产生,比如排序,并行执行等操作。或者意味着PGA中空闲空间不足。
这个等待事件有三个参数:
Descriptor address: 一个指针,指向当前会话正在等待的一个direct read I/O。
First dba: descriptor address 中最旧的一个I/O数据块地址。
Block cnt: descriptor address上下文中涉及的有效的buffer 数量。
Direct path write
这个等待事件和direct path read 正好相反,是会话将一些数据从PGA中直接写入到磁盘文件上,而不经过SGA。
这种情况通常发生在:
使用临时表空间排序(内存不足)
数据的直接加载(使用append方式加载数据)
并行DML操作。
这个等待事件有三个参数:
Descriptor address: 一个指针,指向当前会话正在等待的一个direct I/O.
First dba: descriptor address 中最旧的一个I/O数据块地址。
Block cnt: descriptor address 上下文中涉及的有效地 buffer 数量。
案例分析:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
15 : 37 : 17 SCOTT@ prod>
1 * select * from t1 order by 1
600000 rows selected.
Elapsed: 00 : 00 : 04.35
Execution Plan
----------------------------------------------------------
Plan hash value: 2148421099
-----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 838K| 10M| | 4260 ( 1 )| 00 : 00 : 52 |
| 1 | SORT ORDER BY | | 838K| 10M| 16M| 4260 ( 1 )| 00 : 00 : 52 |
| 2 | TABLE ACCESS FULL| T1 | 838K| 10M| | 276 ( 2 )| 00 : 00 : 04 |
-----------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level= 2 )
Statistics
----------------------------------------------------------
7 recursive calls
3 db block gets
1355 consistent gets
1823 physical reads
0 redo size
10809270 bytes sent via SQL*Net to client
440512 bytes received via SQL*Net from client
40001 SQL*Net roundtrips to/ from client
0 sorts (memory)
1 sorts (disk)
600000 rows processed
15 : 36 : 39 SYS@ prod>select event,TOTAL_WAITS,AVERAGE_WAIT from v$system_event
2 * where upper(event) like 'DIRECT%'
EVENT TOTAL_WAITS AVERAGE_WAIT
---------------------------------------------------------------- ----------- ------------
direct path read 154 .03
direct path read temp 1746 0
direct path write temp 63 .98
Elapsed: 00 : 00 : 00.04
15 : 37 : 31 SYS@ prod>
|
Oracle Study之--Oracle等待事件(5)相关推荐
- Oracle Study之--Oracle等待事件(3)
Oracle Study之--Oracle等待事件(3) Db file parallel read 这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系 ...
- oracle顺序读等待,Oracle Study之--Oracle等待事件(4)
Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...
- Oracle Study之--Oracle 11g RAC设置归档路径错误案例
Oracle Study之--Oracle 11g RAC置归档路径错误案例 系统环境: 操作系统: RedHat EL55 集群: Oracle 11g GI Oracle: Oracl ...
- Oracle Study之--Oracle 11gR2通过RMAN克隆数据库
Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...
- oracle什么时候用in,Oracle Study之---Oracle IN和NOT IN的使用
Oracle Study之---Oracle IN和NOT IN的使用 NOT IN 与 IN 的区别: ---------------------------------------------- ...
- Oracle Study之--Oracle 11g RAC添加节点错误
Oracle Study之--Oracle 11g RAC添加节点错误 系统环境: 操作系统:RedHat EL5 Cluster: Oracle 11gR2 Grid Or ...
- oracle 11g ocm 题目,Oracle Study之-Oracle 11g OCM考试(1)
Oracle Study之-Oracle 11g OCM考试(1) 系统环境:RedHat EL64 Oracle: Oracle 11gR2 Oracle 11g OCM考试第一题,手工建库,参 ...
- Oracle Study之--Oracle等待事件(2)
Control file parallel write 当数据库中有多个控制文件的拷贝时,Oracle 需要保证信息同步地写到各个控制文件当中,这是一个并行的物理操作过程,因为称为控制文件并行写,当发 ...
- oracle commit_log,Oracle log file sync 等待事件 与 COMMIT_WAIT,COMMIT_LOGGING 参数说明
在Oracle 数据库中,log file sync是一个非常常见的等待事件,导致该事件的原因主要有2个因素:一是commit提交过于频繁,二是redo log 对应的IO根不上. 所以对于log f ...
最新文章
- 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )
- alloc、init你弄懂50%了吗?
- 跟技术大咖涨姿势!前沿CV技术+落地应用练就CV界的最强王者
- sql 函数 汉字转拼音
- .Net Core 图片文件上传下载
- Kinect for Windows v2.0安装教程
- mac服务器证书失效,Mac OS X Server:软件更新证书过期
- C++技术沙龙主要内容
- I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard-android.sh hacking
- 使用Jupter Notebook实现简单的神经网络
- nd4j 向量_ND4J的基本操作
- CSS:修改输入框placeholder样式
- jdbc代码_Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
- 物体检测object detection object recognition和coco数据集 动手学深度学习v2 pytorch
- JS实现图片拖动验证
- 全网最全-Java简历优化-优质项目经历
- H3C/ 华为 路由交换基础知识官方 PPT
- win10如何删除微软拼音输入法
- 判断table中的tbody是否有数据
- ipcam的几个概念