广告
返回顶部
首页 > 资讯 > 数据库 >Oracle Study之--Oracle等待事件(7)
  • 231
分享到

Oracle Study之--Oracle等待事件(7)

2024-04-02 19:04:59 231人浏览 独家记忆
摘要

Oracle Study之--Oracle等待事件(7) Free buffer waits    当一个会话将数据块从磁盘读到内存中时,它需要到内存中找到空闲的内存空间来存放

Oracle Study之--Oracle等待事件(7)

 Free buffer waits
    当一个会话将数据块从磁盘读到内存中时,它需要到内存中找到空闲的内存空间来存放这些数据块,当内存中没有空闲的空间时,就会产生这个等待;除此之外,还有一种情况就是会话在做一致性读时,需要构造数据块在某个时刻的前映像(p_w_picpath),此时需要申请内存来存放这些新构造的数据块,如果内存中无法找到这样的内存块,也会发生这个等待事件。
数据库中出现比较严重的free buffer waits等待事件时,可能的原因是:
(1)data buffer 太小,导致空闲空间不够
(2)内存中的脏数据太多,DBWR无法及时将这些脏数据写到磁盘中以释放空间
这个等待事件包含2个参数:
File#: 需要读取的数据块所在的数据文件的文件号。
Block#: 需要读取的数据块块号。
案例分析:

11:14:33 SYS@ prod>show parameter cache
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_16k_cache_size                    big integer 24M
db_cache_advice                      string      ON
db_cache_size                        big integer 16M
db_keep_cache_size                   big integer 0
db_recycle_cache_size                big integer 12M
11:21:17 SYS@ prod>conn scott/tiger
Connected.
11:23:16 SCOTT@ prod>begin
11:25:04   2    for i in 1..100000 loop
11:25:04   3    insert into t1 values (i);
11:25:04   4    end loop;
11:25:04   5    end;
11:25:04   6    /
PL/sql procedure successfully completed.

11:23:29 SYS@ prod>conn tom/tom
Connected.

11:23:38 TOM@ prod>create table t1 as select * from scott.t1;
Table created.
Elapsed: 00:00:02.19

11:23:52 TOM@ prod>begin
11:24:59   2    for i in 1..100000 loop
11:24:59   3    insert into t1 values (i);
11:24:59   4    end loop;
11:24:59   5    end;
11:24:59   6    /
PL/SQL procedure successfully completed.

11:25:12 SYS@ prod>select event,TOTAL_WAITS,AVERAGE_WAIT,EVENT_ID from v$system_event
  2*  where event like '%buffer%'
EVENT                                                            TOTAL_WAITS AVERAGE_WAIT   EVENT_ID
---------------------------------------------------------------- ----------- ------------ ----------
latch: cache buffers chains                                                3           .2 2779959231
free buffer waits                                                         14          .86 2701153470
buffer busy waits                                                          2          .23 2161531084
log buffer space                                                           7        40.42 3357856061
latch: cache buffers lru chain                                            17          .32 3401628503
buffer deadlock                                                           11          .03  218992928
6 rows selected.

Latch free
在10g之前的版本里,latch free 等待事件代表了所有的latch等待,在10g以后,一些常用的latch事件已经被独立了出来:

11:25:2name1 SYS@ prod>select  name from v$event_name where name like 'latch%' order by 1;
NAME
----------------------------------------------------------------
latch activity
latch free
latch: Change Notification Hash table latch
latch: In memory undo latch
latch: MQL Tracking Latch
latch: PX hash array latch
latch: Undo Hint Latch
latch: WCR: processes HT
latch: WCR: sync
latch: cache buffer handles
latch: cache buffers chains
latch: cache buffers lru chain
latch: call allocation
latch: change notification client cache latch
latch: checkpoint queue latch
latch: enqueue hash chains
latch: GC element
NAME
----------------------------------------------------------------
latch: gcs resource hash
latch: ges resource hash list
latch: lob segment dispenser latch
latch: lob segment hash table latch
latch: lob segment query latch
latch: messages
latch: object queue header operation
latch: parallel query alloc buffer
latch: redo allocation
latch: redo copy
latch: redo writing
latch: row cache objects
latch: session allocation
latch: shared pool
latch: undo global data
latch: virtual circuit queues
33 rows selected.

11:39:21 SYS@ prod>select EVENT#,EVENT_ID,NAME,PARAMETER1,PARAMETER2,PARAMETER3  from v$event_name
  2* where name like '%latch free%'

    EVENT#   EVENT_ID NAME                           PARAMETER1 PARAMETER2           PARAMETER3
---------- ---------- ------------------------------ ---------- -------------------- ------------------------------
       402 3474287957 latch free                     address    number               tries
       409 2530878290 wait list latch free           address    number               tries

       11:32:33 SYS@ prod>desc v$latchname
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 LATCH#                                                                     NUMBER
 NAME                                                                       VARCHAR2(64)
 HASH                                                                       NUMBER
所以latch free 等待事件在10g以后的版本中并不常见,而是以具体的Latch 等待事件出现。这个等待事件有三个参数:Address: 会话等待的latch 地址。Number: latch号,通过这个号,可以从v$latchname 视图中找到这个latch 的相关的信息,Tries: 会话尝试获取Latch 的次数。
11:34:25 SYS@ prod>select * from v$latchname
11:34:36   2  where name like '%buffer%';
    LATCH# NAME                                                                   HASH
---------- ---------------------------------------------------------------- ----------
        33 SGA IO buffer pool latch                                         2719726273
        63 IPC stats buffer allocation latch                                1449990452
       106 KJC global post event buffer                                     3098969798
       145 cache buffers lru chain                                          3559635447
       146 buffer pool                                                       510014793
       150 cache buffers chains                                             3563305585
       151 cache buffer handles                                              892398878
       196 media recovery process out of buffers                            2731251867
       197 mapped buffers lru chain                                           93631960
       208 lock DBA buffer during media recovery                            3620457631
       350 virtual circuit buffers                                          1577520421
       378 parallel query alloc buffer                                       291345605
       416 p_w_picpath handles of buffered messages latch                         3223585260
       476 buffer pin latch                                                 3925519355
14 rows selected.


您可能感兴趣的文档:

--结束END--

本文标题: Oracle Study之--Oracle等待事件(7)

本文链接: https://www.lsjlt.com/news/44216.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle Study之--Oracle等待事件(7)
    Oracle Study之--Oracle等待事件(7) Free buffer waits    当一个会话将数据块从磁盘读到内存中时,它需要到内存中找到空闲的内存空间来存放...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(5)
    Oracle Study之--Oracle等待事件(5) Db file single write这个等待事件通常只发生在一种情况下,就是Oracle 更新数据文件头信息时(比如发生Checkpo...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(3)
    Oracle Study之--Oracle等待事件(3)Db file parallel read这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系。 这个事...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(4)
    Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(2)
    Oracle Study之--Oracle等待事件(2)Control file parallel write当数据库中有多个控制文件的拷贝时,Oracle 需要保证信息同步地写到各个控制文件当中,这是一个...
    99+
    2022-10-18
  • Oracle Study之-- enq:SQ contention等待事件
    Oracle Study之-- enq:SQ contention等待事件通过AWR Report发现“enq:SQ contention”等待事件:应用环境:转自:http://www.xuebuyuan...
    99+
    2022-10-18
  • Oracle Study之--resmgr:cpu quantum等待事件
    Oracle Study之--resmgr:cpu quantum等待事件在AWR Report中出现“resmgr:cpu quantum”等待事件:“resmgr:cpu quantum”等待事件:参考...
    99+
    2022-10-18
  • Oracle Study中Oracle等待事件怎么用
    这篇文章主要为大家展示了“Oracle Study中Oracle等待事件怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle Study中Oracl...
    99+
    2022-10-19
  • oracle等待事件之enq: CF – contentio
    Enqueue 是一种保护共享资源的锁定机制,避免因并发操作而损坏数据,Enqueue 采用排队机制,即 FIFO(先进先出)来控制资源的使用。在任何需要读取控制文件的动作时,就会发生等待事件enq: CF...
    99+
    2022-10-18
  • Oracle 等待事件之 free buffer waits
    free buffer waits官网解释:    This wait event indicates that a server process was unabl...
    99+
    2022-10-18
  • Oracle 等待事件之 buffer busy waits
    buffer busy waits (热块儿争用)官网解释:    This wait indicates that there are some buffers i...
    99+
    2022-10-18
  • Oracle等待事件之enq: TM – contention
    执行DML 期间,为防止对与DML 相关的对象进行修改,执行DML 的进程必须对该表获得TM 锁。 P1 = name|mode P2 = object # P3 = table/partition ...
    99+
    2022-10-18
  • oracle等待事件之free buffer waits
    1.什么时候会发生free buffer waits呢?     简单来说,当需要在buffer cache中寻找可用块但是找不到时,就会发生这个等待。找寻可用块的理由包括...
    99+
    2022-10-18
  • Oracle 等待事件之 db file sequential read
    db file sequential read:官网解释:This event signifies that the user process is reading a buffer into the SG...
    99+
    2022-10-18
  • Oracle 等待事件之 db file parallel read
    db file parallel read官网解释:    This happens during recovery. It can also happen duri...
    99+
    2022-10-18
  • Oracle 等待事件之 db file scattered read
    db file scattered read官网解释:This event signifies that the user process is reading buffers into the SGA ...
    99+
    2022-10-18
  • Oracle local write wait等待事件
    Note 1:         TypicallyDBWR has to free up some buffers when ...
    99+
    2022-10-18
  • oracle之 等待事件LOG FILE SYNC (awr)优化
    log file sycn是ORACLE里最普遍的等待事件之一,一般log file sycn的等待时间都非常短 1-5ms,不会有什么问题,但是一旦出问题,往往都比较难解决。什么时候会产生log fi...
    99+
    2022-10-18
  • Oracle中有哪些等待事件
    这篇文章给大家介绍Oracle中有哪些等待事件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待...
    99+
    2022-10-18
  • Oracle面试宝典-等待事件篇
    Oracle 面试宝典 - 等待事件篇 请问Oracle 数据库中等待事件的作用是什么 一、等待事件由来 因为指标体系的发展,才导致等待事件的引入。总结一下,Oracle 的指标体系...
    99+
    2022-11-30
    oracle 事件 宝典
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作