Oracle等待事件之01(Buffer busy waits)

  1. 創(chuàng)建測試用表
[oracle@DB01 bin]$ sql xag/123456@127.0.0.1:1521/MPTEST;

SQL> set sqlformat ansiconsole;

create table test_wait(id int,name varchar2(10));

begin
  for i in 1..20 loop
   insert into test_wait values (i,'usr'||i);
  end loop;
  commit;
end;
/

SQL> select id,rowid,
      dbms_rowid.rowid_object(rowid)  as "object_id(數(shù)據(jù)對象號(hào))",
      dbms_rowid.rowid_relative_fno(rowid) as "file_id(相對文件號(hào))",
      dbms_rowid.rowid_block_number(rowid) as "block_id(在第幾個(gè)塊)",
      dbms_rowid.rowid_row_number(rowid) as "num(在block中的行數(shù))"
    from test_wait;
ID  ROWID               object_id(數(shù)據(jù)對象號(hào))  file_id(相對文件號(hào))  block_id(在第幾個(gè)塊)  num(在block中的行數(shù))  
1   AAAUKcAFyAAAACjAAA  82588                 370                 163                  0                
2   AAAUKcAFyAAAACjAAB  82588                 370                 163                  1                
3   AAAUKcAFyAAAACjAAC  82588                 370                 163                  2                
4   AAAUKcAFyAAAACjAAD  82588                 370                 163                  3                
5   AAAUKcAFyAAAACjAAE  82588                 370                 163                  4                
6   AAAUKcAFyAAAACjAAF  82588                 370                 163                  5                
7   AAAUKcAFyAAAACjAAG  82588                 370                 163                  6                
8   AAAUKcAFyAAAACjAAH  82588                 370                 163                  7                
9   AAAUKcAFyAAAACjAAI  82588                 370                 163                  8                
10  AAAUKcAFyAAAACjAAJ  82588                 370                 163                  9                
11  AAAUKcAFyAAAACjAAK  82588                 370                 163                  10               
12  AAAUKcAFyAAAACjAAL  82588                 370                 163                  11               
13  AAAUKcAFyAAAACjAAM  82588                 370                 163                  12               
14  AAAUKcAFyAAAACjAAN  82588                 370                 163                  13               
15  AAAUKcAFyAAAACjAAO  82588                 370                 163                  14               
16  AAAUKcAFyAAAACjAAP  82588                 370                 163                  15               
17  AAAUKcAFyAAAACjAAQ  82588                 370                 163                  16               
18  AAAUKcAFyAAAACjAAR  82588                 370                 163                  17               
19  AAAUKcAFyAAAACjAAS  82588                 370                 163                  18               
20  AAAUKcAFyAAAACjAAT  82588                 370                 163                  19 
  1. 測試等待事件
#會(huì)話1
#查看當(dāng)前用戶的sid和serial#:
SQL> select sid, serial#, status from v$session where audsid=userenv('sessionid');
SID  SERIAL#  STATUS  
782  15440    ACTIVE 

begin 
 for i in 1..5000000 loop
   update test_wait set name='session 1' where id=1;
   commit;
 end loop;
end;
/

#新開會(huì)話2
[oracle@DB01 XAG]$ sql xag/123456@127.0.0.1:1521/MPTEST;
SQL> set sqlformat ansiconsole;

#查看當(dāng)前用戶的sid和serial#:
SQL> select sid, serial#, status from v$session where audsid=userenv('sessionid');
SID   SERIAL#  STATUS  
1199  5993     ACTIVE

begin 
 for i in 1..5000000 loop
   update test_wait set name='session 2' where id=2;
   commit;
 end loop;
end;
/

#新開會(huì)話3
[oracle@DB01 XAG]$ sql xag/123456@127.0.0.1:1521/MPTEST;

SQL> set sqlformat ansiconsole;

#查看當(dāng)前用戶的sid和serial#:
SQL> select sid, serial#, status from v$session where audsid=userenv('sessionid');
SID  SERIAL#  STATUS  
113  22734    ACTIVE  

#查看全部會(huì)話
SQL> select username,sid,serial# from v$session where username is not null;
USERNAME  SID   SERIAL#  
SYS       3     10073    
XAG       113   22734    
XAG       782   15440    
XAG       1199  5993 

#查詢等待事件
SQL> select event,sid,p1,p2,p3 from v$session_wait where sid in (782,1199) and "WAIT_CLASS#"!=6;
EVENT              SID   P1   P2   P3  
buffer busy waits  1199  370  163  1 

SQL> SELECT name,parameter1,parameter2,parameter3 FROM v$event_name WHERE name='buffer busy waits';
NAME               PARAMETER1  PARAMETER2  PARAMETER3  
buffer busy waits  file#       block#      class# 

產(chǎn)生buffer busy waits的對象在file#為370冯遂,block_id為163上

#data block產(chǎn)生大量的等待 (8311厘秒=83秒)
SQL> select * from v$waitstat where count>0;
CLASS              COUNT   TIME  CON_ID  
data block         351448  8311  7       
segment header     29      0     7       
1st level bmb      5       0     7       
3rd level bmb      37      1     7       
file header block  10      158   7       
undo header        57533   92    7       
undo block         415     35    7 

#在test_wait 表上產(chǎn)生了熱塊 
SQL> select sql_text from V$sqlarea  where (address,hash_value) in (select sql_address,sql_hash_value from v$session  where event like '%buffer busy%');
SQL_TEXT                                                                                                                                                                 
begin   for i in 1..5000000 loop    update test_wait set name='session 1' where id=1;    commit;  end loop; end;   
begin   for i in 1..5000000 loop    update test_wait set name='session 2' where id=2;    commit;  end loop; end; 

SQL> select sql_text from v$sqlarea where sql_text like '%test_wait%';
SQL_TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
begin   for i in 1..5000000 loop    update test_wait set name='session 1' where id=1;    commit;  end loop; end;                                                                                                                         
begin   for i in 1..5000000 loop    update test_wait set name='session 2' where id=2;    commit;  end loop; end;          
                                                                                                                                                   
#查看XAG用戶對象TEST_WAIT所在的塊:(160-167) 包含上面的 163塊
SQL> select owner,SEGMENT_NAME,SEGMENT_TYPE,FILE_ID,BLOCK_ID,BLOCKS from dba_extents where segment_name='TEST_WAIT';
OWNER  SEGMENT_NAME  SEGMENT_TYPE  FILE_ID  BLOCK_ID  BLOCKS  
XAG    TEST_WAIT     TABLE         370      160       8 

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拙泽,更是在濱河造成了極大的恐慌涡相,老刑警劉巖埋哟,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痰憎,死亡現(xiàn)場離奇詭異芜抒,居然都是意外死亡罚勾,警方通過查閱死者的電腦和手機(jī)毅人,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尖殃,“玉大人丈莺,你說我怎么就攤上這事∷头幔” “怎么了缔俄?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長器躏。 經(jīng)常有香客問我俐载,道長,這世上最難降的妖魔是什么邀桑? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任瞎疼,我火速辦了婚禮,結(jié)果婚禮上壁畸,老公的妹妹穿的比我還像新娘贼急。我一直安慰自己,他們只是感情好捏萍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布太抓。 她就那樣靜靜地躺著,像睡著了一般令杈。 火紅的嫁衣襯著肌膚如雪走敌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天逗噩,我揣著相機(jī)與錄音掉丽,去河邊找鬼。 笑死异雁,一個(gè)胖子當(dāng)著我的面吹牛捶障,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纲刀,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼项炼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锭部,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤暂论,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拌禾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體取胎,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蹋砚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扼菠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坝咐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出析恢,到底是詐尸還是另有隱情墨坚,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布映挂,位于F島的核電站泽篮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柑船。R本人自食惡果不足惜帽撑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鞍时。 院中可真熱鬧亏拉,春花似錦、人聲如沸逆巍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锐极。三九已至笙僚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灵再,已是汗流浹背肋层。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留翎迁,地道東北人栋猖。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像鸳兽,于是被迫代替她去往敵國和親掂铐。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容