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
  2where 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
  2where 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>

本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1536003,如需转载请自行联系原作者

Oracle Study之--Oracle等待事件(5)相关推荐

  1. Oracle Study之--Oracle等待事件(3)

    Oracle Study之--Oracle等待事件(3) Db file parallel read 这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系 ...

  2. oracle顺序读等待,Oracle Study之--Oracle等待事件(4)

    Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...

  3. Oracle Study之--Oracle 11g RAC设置归档路径错误案例

    Oracle Study之--Oracle 11g RAC置归档路径错误案例 系统环境: 操作系统: RedHat EL55 集群:     Oracle 11g GI Oracle:   Oracl ...

  4. Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

    Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...

  5. oracle什么时候用in,Oracle Study之---Oracle IN和NOT IN的使用

    Oracle Study之---Oracle IN和NOT IN的使用 NOT IN 与  IN 的区别: ---------------------------------------------- ...

  6. Oracle Study之--Oracle 11g RAC添加节点错误

    Oracle Study之--Oracle 11g RAC添加节点错误 系统环境:     操作系统:RedHat EL5     Cluster:  Oracle 11gR2 Grid     Or ...

  7. oracle 11g ocm 题目,Oracle Study之-Oracle 11g OCM考试(1)

    Oracle Study之-Oracle 11g OCM考试(1) 系统环境:RedHat EL64 Oracle:   Oracle 11gR2 Oracle 11g OCM考试第一题,手工建库,参 ...

  8. Oracle Study之--Oracle等待事件(2)

    Control file parallel write 当数据库中有多个控制文件的拷贝时,Oracle 需要保证信息同步地写到各个控制文件当中,这是一个并行的物理操作过程,因为称为控制文件并行写,当发 ...

  9. oracle commit_log,Oracle log file sync 等待事件 与 COMMIT_WAIT,COMMIT_LOGGING 参数说明

    在Oracle 数据库中,log file sync是一个非常常见的等待事件,导致该事件的原因主要有2个因素:一是commit提交过于频繁,二是redo log 对应的IO根不上. 所以对于log f ...

最新文章

  1. 新国立尤洋:夸父AI——用于大规模并行训练的统一深度学习系统
  2. XSS漏洞自动化攻击工具XSSer
  3. 【控制】二阶 UGV 的 时间-输入 指标性能最优解算
  4. 【Linux】- 守护进程的启动方法
  5. vsftp+tftp+dhcp+pxe+kickstart自动化安装操作系统
  6. onbeforeedit和onbeginedit数据不一致_深度解读,奔溃一致性、应用一致性的区别
  7. 代码有温度 科技需向善
  8. 苹果Mac 上的 Spotlight 除了基本的搜寻外,还有这些快捷键技巧
  9. Eclipse 反编译
  10. 如何将heic格式批量转化jpg
  11. win10下如何快速安装迷你迅雷
  12. 查看华为huawei状态码
  13. 土豆网总裁回忆与乔布斯的会面
  14. 小熊派LiteOS移植LVGL
  15. 只能输入数字的正则表达式
  16. 任职母校!C9,迎来新副校长!
  17. php递归遍历出文件夹下的所有文件和删除文件夹下的所有文件
  18. nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined
  19. 阿里云智能身份证OCR文字识别
  20. c语言 socket send,C语言中send()函数和sendto()函数的使用方法

热门文章

  1. 弗林的计算机体系结构分类
  2. 使用方法实现数组的对调与输出
  3. 方法之输出星型及其调用
  4. 汇编程序中,字符数据和ASCII的对应关系
  5. uva 10534——Wavio Sequence
  6. UVA 1329——Corporative Network
  7. 关于源文件用不同的编码方式编写,会导致执行结果不一样的现象及解决方法
  8. shell编程题(二)
  9. 第3章 文件IO | 001 文件描述符
  10. 最长递增子序列_python_算法与数据结构