Oracle Study之--Oracle等待事件(7)
admin
2023-05-14 01:22:03
0

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.


相关内容

热门资讯

以军士兵集体丢掉武器抗命,大喊... 据凤凰卫视报道,以色列国防军一军事基地7月30日发生士兵抗命事件,约120名士兵抗议指挥官做法,将武...
蒋成华任商务部副部长 国务院任免国家工作人员。任命蒋成华为商务部副部长。免去蒋成华的商务部国际贸易谈判副代表职务。
伊朗驻华大使:在军事威胁下,不... 新华社北京7月31日电(记者刁慧琳) 伊朗驻华大使法兹里7月28日表示,伊美回到谈判桌的前提是美国必...
伊朗革命卫队在霍尔木兹海峡击中... 当地时间31日,伊朗伊斯兰革命卫队发布声明称,革命卫队海军当天在霍尔木兹海峡击中并扣留了两艘违反禁令...
美媒:特朗普,遇到了一个更强硬... 据《纽约时报》7月29日报道,就在特朗普总统看似放弃战事升级计划几天后,美国再次与伊朗交火。上周末,...
女子做气管镜时不幸身亡,丈夫称... 7月29日,西安刘先生反映妻子在当地医院做支气管镜检查时死亡,看监控时发现医生疑有违规操作。刘先生表...
全网“帮卖西瓜”,然后呢? 近日,河南部分地区西瓜滞销的消息在网上热度很高。很多地方也伸出援手:有景区收购千斤西瓜、免费赠予游客...
美媒:乌克兰袭击伊朗船只,险引... 据《纽约时报》7月28日报道,据伊朗和西方官员称,伊朗曾考虑攻击乌克兰的一个港口,以报复乌克兰对一艘...
20年里,他只画美女,用东方风... 迈进KIM在上海的工作室,迎面是一整墙的美女们。她们像是刚从一场时髦的沙龙里退场,或倚或立,眉宇间是...
Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...