[zt] 處理LOB(大物件)表enqueue HW問題的一個方法
在RDBMS系統中,發生enqueue等待特別是enqueue TX-contention是再正常不過的了,原因很簡單,為了滿足ACID原則。但如果是enqueue HW-contention,你遇到的機會就要稍微少一些了,因為這一般只發生在大量資料裝載或者是OLTP業務非常繁忙的系統中。
這不,我們的一個銀行用好,恰巧就發生了這麼一個問題,當大批次資料裝載時,系統CPU使用率接近100%(這可是128CPU的HP superdome),而這其中的90%以上,是在等待enqueue HW 。當然,這個系統的架構有其特殊性,每個表只有兩個欄位,一個number,一個LOB(這個時候,你可能就會發現架構師對效能的影響有多麼巨大了)。
HW=HighWatermark,所謂的高水位競爭。就是當資料插入的session過多,對最後一個可用塊的競爭,以得到下一個空閒塊(或者extent)。
這種情況,如果是普通表,使用alter table
但是含有LOB(clob)欄位的表,據客戶反應,用這個方法在loading裝載開始後的2分鐘之內是有效的,但之後就不靈了,原因和在? 原因處在lob方式。
解決方式分兩種,在ASSM表空間之內的:
a) As temporary workaround, manually add extra space to the LOB segment
ALTER TABLE
MODIFY LOB () (allocate extent (size ));
OR
b) It may related .
Refer to “Bug 6376915 HW enqueue contention for ASSM LOB segments”
In 10.2.0.4 or above, this fix has been included, and can be enabled by setting event 44951 to a value
between 1 and 1024. A higher value would be more beneficial in reducing contention.
EVENT=”44951 TRACE NAME CONTEXT FOREVER, LEVEL < 1 – 1024 >”
OR
c) Consider partitioning the LOB in a manner that will evenly distribute concurrent DML across multiple
partitions
使用MSSM的:
a) As temporary workaround, manually add extra space to the LOB segment
ALTER TABLE
MODIFY LOB () (allocate extent (size ));
OR
b) Consider partitioning the LOB in a manner that will evenly distribute concurrent DML across multiple
partitions
如我先去提到的,由於表的欄位只有兩個,lob欄位中包含的內容實在太複雜,所以partition方式無法處理這個問題。只能是每次裝載前,使用批處理的方式,預先分配200G左右的lob extent。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-674354/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- zt_enqueue:HW問題分析與解決ENQ
- 《轉》ORACLE LOB 大物件處理Oracle物件
- enq: HW - contention 問題的處理ENQ
- 一個NBU問題的處理
- windows的一個問題處理Windows
- Bug 6376915 - HW enqueue contention for ASSM LOB segments (文件 ID 6376915.8)ENQSSM
- 處理問題的方法
- ZT:處理Oracle資料庫中一張有效的Drop大表Oracle資料庫
- 插入LOB物件的方法物件
- 一個物件多處引用的維護問題物件
- oracle系統表空間過大問題處理Oracle
- oracle enqueue(zt)OracleENQ
- enqueue HW wait 引起表空間突然大量擴充套件ENQAI套件
- zt_Oracle批量更新】根據一個大表批量更新另一大表的方法比較Oracle
- enqueue的種類(zt)ENQ
- [zt] 手工處理Standby 歸檔間隔(gap)的問題
- 處理表的行遷移的問題
- 一個建立物件的問題物件
- 處理TEMP表空間滿的問題
- 問一個動態物件的問題物件
- Java 大資料量處理問題Java大資料
- ORA-38760 問題處理方法
- [zt] 總結logminer使用及各種問題處理
- sysaux 表空間不足問題處理UX
- 資料庫出現兩個Listener問題的官方處理方法資料庫
- 一次PLSQL處理LOB欄位的優化SQL優化
- ASMCMD處理問題一則ASM
- 關於HW-contention等待的處理
- 一次efi的問題處理
- zt 運用 Range 物件處理 Word 文件內容物件
- Oracle資料庫無效物件問題處理Oracle資料庫物件
- SELECT大表的處理
- 從問題的處理方式感悟學習方法
- zt_如何從遠端返回LOB物件_db link物件
- 在SQLServer處理中的一些問題及解決方法SQLServer
- Vector儲存物件的一個問題物件
- 傳輸表空間及問題處理
- sysaux表空間檔案損壞的處理(zt)UX