久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Oracle數(shù)據(jù)庫等待事件說明及處理方法

瀏覽:25日期:2023-11-27 13:59:01
等待事件參數(shù)說明:

事件號:145

事件名:buffer busy waits

參數(shù)一:file#

參數(shù)二:block#

參數(shù)三:9i -原因碼,10g - block class#

事件說明:

一、Oracle會話正在等待PIN住一個緩沖區(qū),會話必須在讀取或修改緩沖區(qū)之前將該緩沖區(qū)PIN住。

二、在任何時侯只有一個進程可以PIN住一個緩沖區(qū)。

三、buffer busy waits表明讀/讀、讀/寫、寫/寫爭用。

四、根據(jù)P3中指明的原因碼有不同的處理方式。

五、現(xiàn)象描述:

會話在SGA中讀取或修改緩沖區(qū)之前,必須要先獲取cahce buffers chains鎖存器,獲取后然后遍歷這個緩沖區(qū)鏈,直到發(fā)現(xiàn)它需要的緩沖區(qū)頭。然后以共享方式或獨占方式獲取該緩沖區(qū)鎖或緩沖區(qū)頭部的PIN,一旦緩沖區(qū)被PIN住,會話即釋放cache buffers chains鎖存器。如果無法獲得PIN,會話就在buffer busy waits等待事件上等待。

六、該事件只與SGA中緩沖區(qū)相關,與會話私有的PGA中執(zhí)行的讀/寫操作無關。

七、處理該等待事件時主要注意以下四方面:

(1) 該等待事件主要的原因碼是什么?(參數(shù)P3)

(2) buffer busy waits事件需要的塊類?(由P1即可找出等待塊的類列)

(3)緩沖區(qū)所屬的段(由P1和P2參數(shù)配合視圖v$extents即可找出等待塊的所屬段)

select s.segment_name, s.partition_name

from dba_extents s

where between s.block_id and (s.block_id + s.blocks -1) and s.file_id =

八、雖然buffer busy waits事件的發(fā)生可能至少有十個不同的原因,但是代碼130和220是最常見的原因。基本上,小于200的代碼號意味著這種等待是和I/O有關的。

帶有原因碼130的數(shù)據(jù)塊(類#1)爭用

(1) 等待集中在數(shù)據(jù)塊上,并且原因碼是130,則意味著多個會話并發(fā)請求相同的數(shù)據(jù)塊,但該數(shù)據(jù)塊并不在緩沖存儲器中,并且必須從磁盤讀取。

(2)當多個會話請求不在緩沖存儲器中的相同數(shù)據(jù)塊時,ORACLE可以聰明地防止每個會話進行相同的操作系統(tǒng)I/O調(diào)用。否則,這可能嚴重地增加系統(tǒng)I/O的數(shù)量,所以,ORACLE只允許一個會話執(zhí)行實際的I/O,而其他的會話在buffer busy waits上等待塊,執(zhí)行I/O的會話在db file sequential read或db file scattered read等待事件上等待。

(3)可在v$session視圖中檢查SESSION的注冊時間,并且等待事件db file sequential(scattered) read和buffer busy waits等待相同的文件號和塊號。

(4)解決方法:優(yōu)化SQL語句,盡可能地減少邏輯讀和物理讀;

帶有原因碼220的數(shù)據(jù)塊(類#1)爭用

(1)等待集中在數(shù)據(jù)塊上,并且原因碼是220,則意味著多個會話同時在相同的對象上執(zhí)行DML(相同塊中的不同行)。

(2)如果數(shù)據(jù)塊的尺寸較大(>=16K),則可能強化這種現(xiàn)象,因為較大的塊一般在每個塊中包含更多的行。

(3)減少這種情況的等待的方法:減少并發(fā);減少塊中行的數(shù)量;在另一個具有較小塊尺寸的表空間中重新構建對象。

(4)具體方法說明:

使用較大的PCTFREE重新構建表或索引;

使用alter table minimize records_pre_block命令改變表以最小化每個塊的最小行數(shù)

從ORACLE9i開始,可以在另一個具有較小塊尺寸的表空間中移動或重新構建對象。

注:雖然這些方法可以最小化buffer busy waits問題,但它們無疑會增加全表掃描時間和磁盤空間利用率。

數(shù)據(jù)段頭(類#4)的爭用

(1) 如果buffer busy waits的等待事件主要集中在數(shù)據(jù)段頭(即表或索引段頭,并且不是UNDO段頭)上,這意味著數(shù)據(jù)庫中一些表或索引有高段頭活動。

注:進程出于兩個主要原因訪問段頭,一是,獲得或修改FREELISTS信息;二是,為了擴展高水位標記(HWM)。

(2) 減少這種情況的等待的方法:

>> 對使用自由表進行段管理的表,增加確認對象的FREELISTS和FREELIST GROUPS(注:FREELIST GROUPS的增加也是必須的);

>> 確保FCTFREE和PCTUSED之間的間隙不是太小,從而可以最小化FREELIST的塊循環(huán)。

>> 下一區(qū)的尺寸不能太小,當區(qū)高速擴張時,建立的新區(qū)需要修改在段頭中區(qū)映射表。可以考慮將對象移動到合理的、統(tǒng)一尺寸的本地管理的表空間中。

撤銷段頭(類#17)的爭用

(1) 如果buffer busy waits等待事件主要集中在撤銷段頭,這表明數(shù)據(jù)庫中的回滾段過少或者是它們的區(qū)尺寸太小,從而造成對段頭的頻繁更新。如果使用ORACLE9I的由數(shù)據(jù)庫系統(tǒng)管理UNDO段,就不需要處理這種問題,因為ORACLE會根據(jù)需要增加額外的的UNDO段。

(2) 可以創(chuàng)建并啟用私有回滾段,以減少每個回滾段的事務數(shù)量。需要修改init.ora文件中的ROLLBACK_SEGMENTS參數(shù)。

(3) 如果使用公用回滾段可以減少初始化參數(shù)transactions_per_rollback_segment的值,ORACLE通過transactions/transactions_per_rollback_segment來獲取公有回滾段的最小數(shù)量。

撤銷塊的爭用(類#18)

(1) 如果buffer busy waits等待事件主要集中在撤銷塊上,這表明有多個并發(fā)會話為保證一致性讀同時查詢更新的數(shù)據(jù)。

(2)這是應用程序存在問題,當應用程序在不同時間內(nèi)運行查詢和DML時,這種問題不會存在。

注釋:

查看系統(tǒng)所有段的有關buffer busy waits事件的統(tǒng)計:

SELECT *

FROM v$segment_statistics s

WHERE s.statistic_name = 'buffer busy waits'

AND s.owner <> 'SYS'

主站蜘蛛池模板: 中文精品在线 | 国产欧美一区二区三区在线看 | 精品一区二区三区四区视频 | 中文字幕视频在线免费观看 | 99国产精品一区 | 裸体的日本在线观看 | 亚洲欧美网址 | 黄色毛片在线观看 | 自拍视频免费 | 国产高清亚洲 | 91久久精品一区二区二区 | 久久精品亚洲精品国产欧美kt∨ | 毛片网页 | 国产精品久久久久9999鸭 | 97成人在线视频 | 成人精品一区 | 亚洲毛片在线 | 91精品啪啪 | 亚洲高清视频在线 | 亚洲精品一区二区三区 | 国产黄色精品 | 成人免费一区二区三区视频网站 | 国产黄色一级大片 | 成人超碰在线观看 | 嫩草成人影院 | av成人免费在线观看 | 午夜国产羞羞视频免费网站 | 精品国产黄a∨片高清在线 激情网站免费 | 久久天堂| 国产精品成人国产乱一区 | 国产成人aⅴ| 在线日韩视频 | 成人国产在线 | 中文字幕在线综合 | 午夜视频 | av在线免费观看网址 | 亚洲精品一区二区三区在线播放 | 久久国产精品久久久久久久久久 | 欧美日韩视频第一页 | 国产一级免费 | av免费网|