imp的buffer和commit分析

dotaddjj發表於2012-02-22

Impcommitbuffer分析:

Impcommit影響:

impcommit主要用於大表資料插入時減少回滾段的壓力,以免出現長時間匯入而出現的回滾段過久ora-01555,結合buffer設定則能按照buffer的大小進行分批提交,可以有效的減輕undo壓力。

但是如果對於插入loblongrefrowid等欄位時設定commit=y則會逐條commit,我們都清楚對於批次插入資料逐條commit會降低效能,所以這裡需要依據表中的具體資訊。

而且還存在一個因素則是結合buffer區大小批次commit提交時,如果出現表空間,連線丟失等問題導致imp失敗,則可能只提交一批資料,此時帶來的影響還是很大的,即使再次插入根據主鍵篩選依然會出現大量的錯誤,而imp對這些錯誤的排查則會降低大量效能,這也可能是oracle預設的imp工具中commit=n緣由吧。

Impbuffer效果

生產環境下,oracle 9Isga大概8Gpga大概6g,需要匯入一個2.7g以上的大表到成產庫中,由於是同事著手運用imp工具的預設buffer=30K,用時大概一個小時還沒有結果,考慮到pga還是很大的,跟同事商議加上buffer=409600000設定buffer大概400M的,15分鐘內imp完成。當然運用impdp然後運用parallel=n效率當然更加理想了!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1057420/,如需轉載,請註明出處,否則將追究法律責任。

相關文章