性能分析的時候遇到了enq: HW - contention的一個事件。
第一步:分析原因
在statspack報告中,發現了大量的Insert文,查閱資料得到的結果是:
存有LOB大物件的表的并發插入、更新引起的LOB Segment High Water Mark是常見的LOb并發爭用。
在SQL文的插入欄位中果然發現了LOB欄位。
對策:
1.ALTER TABLE <lob_table>
MODIFY LOB (<column_name>) (allocate extent (size <extent size>));
產生高水位線鎖的原因是因為extent小,且有大量的并發插入,那么我們就可以通過增大extent來緩解頻繁的移動高水位線。
但是這個extent size增大多少,我目前還不知道根據什么來判定。
2.引入44951 event
44951 event的LEVEL引數定義了在ASSM下當LOB segment的HWM上升時一次獲取的chunks數目,一般推薦設定為1024,即一次get 1024個chunk,由于單次躍升的HWM更高了,這讓進入enq HW – contention等待的機會變少了。 需要注意的是該44951 event僅僅對ASSM表空間上的LOB SEGMENT有效。
alter system set events ‘44951 trace name context forever, level 1024’;
3.BasicFiles遷移變成SecureFiles存盤方式
oracle 11G 新機能。具體步驟略!
以上是專案中得到的幾個結論。第一次寫,不足之處還請見諒
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/76457.html
標籤:基礎和管理
