亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

oracle 常見等待事件及處理方法

2024-08-29 13:56:39
字體:
來源:轉載
供稿:網友
看書筆記db file scattered read DB ,db file sequential read DB,free buffer waits,log buffer space,log file switch,log file sync
我們可以通過視圖v$session_wait來查看系統當前的等待事件,以及與等待事件相對應的資源的相關信息,從而可確定出產生瓶頸的類型及其對象。v$session_wait的p1、p2、p3告訴我們等待事件的具體含義,根據事件不同其內容也不相同,下面就一些常見的等待事件如何處理以及如何定位熱點對象和阻塞會話作一些介紹。
<1> db file scattered read DB 文件分散讀取 (太多索引讀,全表掃描-----調整代碼,將小表放入內存)
這種情況通常顯示與全表掃描相關的等待。當全表掃描被限制在內存時,它們很少會進入連續的緩沖區內,而是分散于整個緩沖存儲器中。如果這個數目很大,就表明該表找不到索引,或者只能找到有限的索引。盡管在特定條件下執行全表掃描可能比索引掃描更有效,但如果出現這種等待時,最好檢查一下這些全表掃描是否必要。因為全表掃描被置于LRU(Least Recently Used,最近最少適用)列表的冷端(cold end),所以應盡量存儲較小的表,以避免一次又一次地重復讀取它們。
==================================================
該類事件的p1text=file#,p1是file_id,p2是block_id,通過dba_extents即可確定出熱點對象(表或索引)
select owner,segment_name,segment_type
from dba_extents
where file_id = &file_id
and &block_id between block_id and block_id + &blocks - 1;
==================================================
<2> db file sequential read DB 文件順序讀取 (表連接順序不佳-----調整代碼,特別是表連接)
這一事件通常顯示單個塊的讀取(如索引讀取)。這種等待的數目很多時,可能顯示表的連接順序不佳,或者不加選擇地進行索引。對于大量事務處理、調整良好的系統,這一數值大多是很正常的,但在某些情況下,它可能暗示著系統中存在問題。你應當將這一等待統計量與Statspack 報告中的已知問題(如效率較低的SQL)聯系起來。檢查索引掃描,以保證每個掃描都是必要的,并檢查多表連接的連接順序。DB_CACHE_SIZE 也是這些等待出現頻率的決定因素。有問題的散列區域(Hash-area)連接應當出現在PGA 內存中,但它們也會消耗大量內存,從而在順序讀取時導致大量等待。它們也可能以直接路徑讀/寫等待的形式出現。
===================================================
該類事件的p1text=file#,p1是file_id,p2是block_id,通過dba_extents即可確定出熱點對象(表或索引)
select owner,segment_name,segment_type
from dba_extents
where file_id = &file_id
and &block_id between block_id and block_id + &blocks - 1;
==================================================
<3> free buffer waits 釋放緩沖區等待 (增大DB_CACHE_SIZE,加速檢查點,調整代碼)
這種等待表明系統正在等待內存中的緩沖,因為內存中已經沒有可用的緩沖空間了。如果所有SQL 都得到了調優,這種等待可能表示你需要增大DB_BUFFER_CACHE。釋放緩沖區等待也可能表示不加選擇的SQL 導致數據溢出了帶有索引塊的緩沖存儲器,沒有為等待系統處理的特定語句留有緩沖區。這種情況通常表示正在執行相當多數量的DML(插入/更新/刪除),并且數據庫書寫器(DBWR)寫的速度不夠快,緩沖存儲器可能充滿了相同緩沖器的多個版本,從而導致效率非常低。為了解決這個問題,可能需要考慮增加檢查點、利用更多的DBWR 進程,或者增加物理磁盤的數量。
<4> buffer busy waits 緩沖區忙等待 (BUFFER熱塊)
這是為了等待一個以非共享方式使用的緩沖區,或者正在被讀入緩沖存儲器的緩沖區。緩沖區忙等待不應大于1%。檢查緩沖等待統計部分(或V$WAITSTAT):
A、如果等待處于字段頭部,應增加自由列表(freelist)的組數,或者增加pctused到pctfree之間的距離。
B、如果等待處于回退段(undo)頭部塊,可以通過增加回滾段(rollback segment)來解決緩沖區的問題;
C、如果等待處于回退段(undo)非頭部塊上,就需要降低驅動一致讀取的表中的數據密度,或者增大DB_CACHE_SIZE;
D、如果等待處于數據塊,可以將數據移到另一數據塊以避開這個"熱"數據塊、增加表中的自由列表或使用LMT表空間;
E、如果等待處于索引塊,應該重建索引、分割索引或使用反向鍵索引。
為了防止與數據塊相關的緩沖忙等待,也可以使用較小的塊:在這種情況下,單個塊中的記錄就較少,所以這個塊就不是那么"繁忙"。在執行DML(插入/更新/刪除)時,Oracle DBWR就向塊中寫入信息,包括所有對塊狀態"感興趣"的用戶(感興趣的事務表,ITL)。為減少這一區域的等待,可以增加initrans,這樣會在塊中創建空間,從而使你能夠使用多個ITL槽。你也可以增加該塊所在表中的pctfree(當根據指定的initrans 建立的槽數量不足時,這樣可以使ITL 信息數量達到maxtrans 指定的數量)。
<6> enqueue
enqueue 是一種保護共享資源的鎖定機制。該鎖定機制保護共享資源,如記錄中的數據,以避免兩個人在同一時間更新同一數據。enqueue 包括一個排隊機制,即FIFO(先進先出)排隊機制。注意:Oracle 的latch 機制不是FIFO。Enqueue 等待通常指的是ST enqueue、HW enqueue、TX4 enqueue 和TM enqueue。
A、ST enqueue 用于空間管理和字典管理的表空間的分配。利用LMT,或者試圖對區域進行預分配,或者至少使下一個區域大于有問題的字典管理的表空間。
B、HW enqueue 與段的高水位標記一起使用;手動分配區域可以避免這一等待。
C、TX4 enqueue是最常見的enqueue 等待,通常是以下三個問題之一產生的結果:
第一個問題是唯一索引中的重復索引,需要執行提交(commit)/回滾(rollback)操作來釋放enqueue。
第二個問題是對同一位圖索引段的多次更新。因為單個位圖段可能包含多個行地址(rowid),所以當多個用戶試圖更新同一段時,你需要執行提交或回滾操作,以釋放enqueue。
第三個問題,也是最可能發生的問題是多個用戶同時更新同一個塊。如果沒有自由的ITL槽,就會發生塊級鎖定。通過增大initrans 和/或maxtrans以允許使用多個ITL槽,或者增大表上的pctfree 值,就可以很輕松地避免這種情況。
D、TM enqueue 在DML 期間產生,以避免對受影響的對象使用DDL。如果有外來關鍵字,一定要對它們進行索引,以避免這種常見的鎖定問題。
<7> log buffer space 日志緩沖空間 (寫REDO慢-----增大log_buffer,redo log file放到快速磁盤上)
當日志緩沖(log buffer)寫入重做日志(redo log)的速度比LGWR 的寫入速度慢,或者是當日志轉換(log switch)太慢時,就會發生這種等待。為解決這個問題,可以增大日志文件的大小,或者增加日志緩沖器的大小,或者使用寫入速度更快的磁盤。甚至可以考慮使用固態磁盤,因為它們的速度很高。
<8> log file switch 日志文件轉換 (歸檔慢-----增加或者擴大重做日志)
有兩種情況:
A、log file switch (archiving needed)
當日志切換的時候由于日志組循環使用了一圈但日志歸檔還沒有完成,通常是io有嚴重問題,可增大日志文件和增加日志組,調整log_archive_max_processes
B、log file switch (checkpoint incomplete)
當日志切換的時候由于日志組循環使用了一圈但將被使用的日志組中的checkpoint還沒有完成造成,通常是io有嚴重問題,可增大日志文件和增加日志組
<9> log file sync 日志文件同步 (提交太頻繁----批量提交)
當用戶commit的時候通知lgwr寫日志但lwgr正忙,造成的可能原因是commit太頻繁或者lgwr一次寫日志時間太長(可能是因為一次log io size 太大),可調整 _log_io_size,結合log_buffer,使得 (_log_io_size*db_block_size)*n = log_buffer,這樣可避免和增大log_buffer引起沖突;放置日志文件于高速磁盤上
<10> library cache pin
該事件通常是發生在先有會話在運行PL/SQL,VIEW,TYPES等object時,又有另外的會話執行重新編譯這些object,即先給對象加上了一個共享鎖,然后又給它加排它鎖,這樣在加排它鎖的會話上就會出現這個等待。P1,P2可與x$kglpn和x$kglob表相關
X$KGLOB (Kernel Generic Library Cache Manager Object)
X$KGLPN (Kernel Generic Library Cache Manager Object Pins)
-- 查詢X$KGLOB,可找到相關的object,其SQL語句如下
(即把V$SESSION_WAIT中的P1raw與X$KGLOB中的KGLHDADR相關連)
select kglnaown,kglnaobj from X$KGLOB
where KGLHDADR =(select p1raw from v$session_wait
where event='library cache pin')
-- 查出引起該等待事件的阻塞者的sid
select sid from x$kglpn , v$session
where KGLPNHDL in
(select p1raw from v$session_wait
where wait_time=0 and event like 'library cache pin%')
and KGLPNMOD <> 0
and v$session.saddr=x$kglpn.kglpnuse
-- 查出阻塞者正執行的SQL語句
select sid,sql_text
from v$session, v$sqlarea
where v$session.sql_address=v$sqlarea.address
and sid=<阻塞者的sid>
這樣,就可找到"library cache pin"等待的根源,從而解決由此引起的性能問題。
<11> library cache lock
該事件通常是由于執行多個DDL操作導致的,即在library cache object上添加一個排它鎖后,又從另一個會話給它添加一個排它鎖,這樣在第二個會話就會生成等待。可通過到基表x$kgllk中查找其對應的對象。
-- 查詢引起該等待事件的阻塞者的sid、會話用戶、鎖住的對象
select b.sid,a.user_name,a.kglnaobj
from x$kgllk a , v$session b
where a.kgllkhdl in
(select p1raw from v$session_wait
where wait_time=0 and event = 'library cache lock')
and a.kgllkmod <> 0
and b.saddr=a.kgllkuse
當然也可以直接從v$locked_objects中查看,但沒有上面語句直觀根據sid可以到v$process中查出pid,然后將其kill或者其它處理。
<5> latch free (等待LATCH FREE)
latch是一種低級排隊機制(它們被準確地稱為相互排斥機制),用于保護系統全局區域(SGA)中共享內存結構。latch 就像是一種快速地被獲取和釋放的內存鎖。latch 用于防止共享內存結構被多個用戶同時訪問。如果latch 不可用,就會記錄latch 釋放失敗。大多數latch 問題都與以下操作相關:不能使用邦定變量(庫緩存latch)、重復生成問題(重復分配latch)、緩沖存儲器競爭問題(緩沖器存儲LRU 鏈),以及緩沖存儲器中的"熱"塊(緩沖存儲器鏈)。也有一些latch 等待與bug(程序錯誤)有關,如果懷疑是這種情況,可以檢查MetaLink 上的bug 報告。
該事件的熱點對象可通過以下語句查找,其中&2值是v$session_wait中的P1RAW,x$bh中的字段Hladdr表示該block buffer在哪個cache buffer chain latch 上,可以通過v$latch_children定位哪些segment是熱點塊。
===================================================
select a.hladdr, a.file#, a.dbablk, a.tch, a.obj, b.object_name
from x$bh a, dba_objects b
where (a.obj = b.object_id or a.obj = b.data_object_id)
and a.hladdr = &2
union
select hladdr, file#, dbablk, tch, obj, null
from x$bh
where obj in
(select obj from x$bh
where hladdr = &2
minus
select object_id from dba_objects
minus
select data_object_id from dba_objects)
and hladdr = &2
order by 4;
====================================================
***Latch 問題及可能解決辦法
------------------------------
* Library Cache and Shared Pool (未綁定變量---綁定變量,調整shared_pool_size)
每當執行SQL或PL/SQL存儲過程,包,函數和觸發器時,這個Latch即被用到.Parse操作中此Latch也會被頻繁使用.
* Redo Copy (增大_LOG_SIMULTANEOUS_COPIES參數)
重做拷貝Latch用來從PGA向重做日志緩沖區拷貝重做記錄.
* Redo Allocation (最小化REDO生成,避免不必要提交)
此Latch用來分配重做日志緩沖區中的空間,可以用NOLOGGING來減緩競爭.
* Row Cache Objects (增大共享池)
數據字典競爭.過度parsing.
* Cache Buffers Chains (_DB_BLOCK_HASH_BUCKETS應增大或設為質數)
"過熱"數據塊造成了內存緩沖鏈Latch競爭.
* Cache Buffers Lru Chain (調整SQL,設置DB_BLOCK_LRU_LATCHES,或使用多個緩沖區池)
掃描全部內存緩沖區塊的LRU(最近最少使用)鏈時要用到內存緩沖區LRU鏈Latch.太小內存緩沖區、過大的內存緩沖區吞吐量、過多的內存中進行的排序操作、DBWR速度跟不上工作負載等會引起此Latch競爭。
<12> db file parallel write
與DBWR進程相關的等待,一般代表了I/O能力出現了問題. 通常與配置的多個DBWR進程或者DBWU的I/O slaves個數有關.當然也可能意味著設備上存在著I/O競爭
<13> db file single write
表示在檢查點發生時與文件頭寫操作相關的等待.通常與檢查點同步數據文件頭時文件號的紊亂有關.
<14> direct path read 和 direct path write
表示與直接I/O讀相關的等待.當直接讀數據到PGA內存時,direct path read 出現.這種類型的讀請求典型地作為:排序IO(為排序不能在內存中完成的時候),并行Slave查詢或者預先讀請求等. 通常這種等待與I/O能力或者I/O競爭有關.
<15> free buffer inspected
表示在將數據讀入數據調整緩存區的時候等待進程找到足夠大的內在空間通常這類等待表示數據調整緩存區偏小.
<16> library cache load lock
表示在將對象裝載到庫高速緩存時出現了等待.這種事件通常代表著發生了負荷爾蒙很重的語句重載或者裝載,可能由于SQL語句沒有共享或者共享池區域編小造成的.
<17> log file parallel write
表示等待LGWR向操作系統請求I/O開始直到完成IO.在觸發LGWR寫的情況下如3秒、1/3、1MB、DBWR寫之前可能發生.這種事件發生通常表示日志文件發生了I/O競爭或者文件所在的驅動器較慢
<18> log file single write
表示寫日志文件頭塊時出現了等待.一般都是發生在檢查點發生時.
<19> transaction
表示發生了一個阻塞回滾操作的等待
<20> undo segment extension
表示在等待回滾段的動態擴展.這表示可能事務量過大,同時也意味著可能回滾段的寢大小不是最優,MINEXTENTS設置得偏小.考慮減少事務,或者使用最小區數更大的回滾段.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性高潮在线| 亚洲国产精品小视频| 亚洲乱亚洲乱妇无码| 国内揄拍国内精品少妇国语| 97久久超碰福利国产精品…| 久久综合色影院| 欧美在线一级视频| 亚洲精品国产suv| 中文字幕日韩在线视频| 久久99久久99精品中文字幕| 亚洲已满18点击进入在线看片| 国产精品美女网站| 亚洲a成v人在线观看| 国产亚洲欧美日韩美女| 国产精品久久一区主播| 日韩av一区在线| 欧美激情女人20p| 国产午夜精品一区理论片飘花| 91社区国产高清| 亚洲精品久久7777777| 一本色道久久综合亚洲精品小说| 欧美影院久久久| 成人激情av在线| 欧美大胆在线视频| 国产成人欧美在线观看| 精品呦交小u女在线| 欧美激情视频在线| 日韩av影片在线观看| 国产精品中文字幕在线| 久久av在线播放| 在线观看日韩专区| 国产一区二区三区免费视频| 国产精品久久久久久久久久东京| 日本欧美一级片| 亚洲午夜激情免费视频| 视频在线一区二区| 亚洲欧美一区二区精品久久久| 中文字幕日韩专区| 国产精品无码专区在线观看| 黄色成人在线播放| 九九热视频这里只有精品| 久久的精品视频| 国产精品伦子伦免费视频| 国产91网红主播在线观看| 国产成人福利夜色影视| 国产色综合天天综合网| 亚洲国产欧美久久| 欧美激情中文字幕在线| 日韩av免费在线播放| 91在线直播亚洲| 国产一区二区激情| 亚洲美女av在线| 精品国产欧美一区二区三区成人| 日韩欧美中文字幕在线播放| 中文字幕一精品亚洲无线一区| 91视频免费网站| 久久成人精品一区二区三区| 高清视频欧美一级| 国产精品你懂得| 欧美大片网站在线观看| 久久久久久久久国产精品| 国产精品久久久久久久久久尿| 啊v视频在线一区二区三区| 久久久精品影院| 亚洲香蕉成视频在线观看| 亚洲精选中文字幕| 欧美国产视频一区二区| 91国产视频在线播放| 国产99久久精品一区二区| 国产成人一区三区| 久久精品国产亚洲精品2020| 亚洲人成电影网站色…| 91国自产精品中文字幕亚洲| 国产亚洲欧美日韩精品| 在线免费观看羞羞视频一区二区| 在线观看欧美日韩国产| 欧美视频精品一区| 欧美精品videosex牲欧美| 久久精品免费电影| 日韩在线播放视频| 欧美高清视频在线观看| 成人在线观看视频网站| 综合136福利视频在线| 国产精品成人aaaaa网站| 久久久噜噜噜久久中文字免| 久久伊人精品天天| 国产美女直播视频一区| 国产又爽又黄的激情精品视频| 精品视频久久久久久| 亚洲精品白浆高清久久久久久| 国产亚洲欧美一区| 超碰精品一区二区三区乱码| 国产视频欧美视频| 国产精品亚洲片夜色在线| 国产精品一香蕉国产线看观看| 日本91av在线播放| 亚洲 日韩 国产第一| 国产999视频| 在线观看视频99| 午夜精品久久久久久久99黑人| 欧美性猛交xxxx久久久| 亚洲va欧美va在线观看| 日韩中文字幕在线视频播放| 中文字幕亚洲色图| 国产精品视频资源| 亚洲专区中文字幕| 欧美国产高跟鞋裸体秀xxxhd| 国产精品免费看久久久香蕉| 亚洲专区中文字幕| 亚洲精品电影网| 国产ts一区二区| 日本精品在线视频| 欧美性videos高清精品| 国产精品精品国产| 在线观看国产精品日韩av| 国产欧美一区二区三区久久| 国产成人一区二区三区小说| 高清在线视频日韩欧美| 亚洲福利视频久久| 综合网日日天干夜夜久久| 8x海外华人永久免费日韩内陆视频| 77777亚洲午夜久久多人| 久久精品免费电影| 亚洲一区二区三区在线视频| 欧美激情精品久久久久久蜜臀| 国产精品户外野外| 国产精品高潮呻吟久久av无限| 国产精品美乳一区二区免费| 播播国产欧美激情| 国产精品久久久久久久久久东京| 国产成人精品999| 国产一区二区欧美日韩| 在线成人免费网站| 亚洲国产欧美日韩精品| 欧美国产日韩精品| 成人黄色短视频在线观看| 国产精品入口夜色视频大尺度| 亚洲日韩欧美视频一区| 久久久久久高潮国产精品视| 中文字幕一区电影| 欧美色视频日本高清在线观看| 国产精品青青在线观看爽香蕉| 91久久夜色精品国产网站| 国产精品日韩专区| 欧美疯狂xxxx大交乱88av| 九色精品免费永久在线| 日本亚洲精品在线观看| 国产精品视频免费观看www| 97色在线观看免费视频| 国产精品久在线观看| 欧美性生活大片免费观看网址| 538国产精品一区二区免费视频| 亚洲美女视频网| 日韩中文字幕第一页| 中日韩午夜理伦电影免费| 成人亚洲激情网| 欧美巨猛xxxx猛交黑人97人| 国内揄拍国内精品| 亚洲已满18点击进入在线看片| 欧美性xxxx在线播放| 国产成人高清激情视频在线观看| 日本不卡高字幕在线2019| 国产精品亚洲аv天堂网| 国产精品99久久99久久久二8|