imp commit,buffer 引數

season0891發表於2012-06-29

imp commit,buffer 引數

imp user/password fromuser=user touser=user file=E:\11.dump tables= table_name buffer= 209715200 commit =yes feedback=100000 indexes=no ignore=yes

default COMMIT=N
COMMIT=Y 的優點在於可以避免大資料量匯入的時候,對回滾段造成的壓力。

在Oracle中頻繁的COMMIT資料不但不會帶來效能的提升,反而會降低COMMIT的效能。透過IMP匯入時,如果設定了COMMIT=Y,效能明顯會比不設定COMMIT=Y要差。
COMMIT=Y不會針對每條記錄去COMMIT的,而是針對BUFFER中容納的所有資料。可以透過加大BUFFER的方式來避免COMMIT=Y帶來的效能影響。但是這個觀點有一個前提。那就是表中不能包含LONG、LOB、REF、ROWID和UROWID列。如果包含了這些列,那麼陣列繫結插入將失效,每條記錄的插入之後都會執行COMMIT操作。所以,設定了COMMIT=Y後,包含這些列的表的匯入效能會嚴重下降。最後簡單說一句,Oracle的文件中除了上面的這些列,還提到了DATE列,但是根據我的發現,DATE列似乎採用的就是陣列插入的方式,懷疑文件這裡有誤。

匯入時設定COMMIT=Y不僅會帶來效能方面的影響,更重要的時,設定了這個引數有可能導致資料的一致性出現問題,尤其是配合IGNORE=Y引數一起使用的時候。如果設定了COMMIT=Y,那麼匯入過程會在一條資料或buffer中所有的資料插入後,進行提交。這意味著匯入操作不再是一個事務。因此,當匯入過程中途失敗,Oracle回滾的只是最後一次插入的事務,而前面插入的資料都以及提交了。這可能意味著使用者將很難恢復到匯入開始的時刻,而且也很難繼續匯入未完的資料。當然,兩種情況可以避免出現這種問題。第一種情況就是匯入的表本身不存在,或者是空的。這樣可以簡單的DROP TABLE或TRUNCATE TABLE清除所有已經匯入的資料。第二種情況是表本身有主鍵、唯一約束或唯一索引。這種情況雖然不是很容易恢復到匯入之前的狀態,但是利用主鍵等唯一約束,再次執行匯入時,所有以及插入的資料在重新匯入時都會報錯,而上次未匯入的資料則可以順利匯入。這種情況的問題是,由於匯入操作會導致唯一性衝突錯誤,IMP時會報大量的錯誤,匯入效能嚴重下降。匯入的效率可能下降將近10倍。

所以在對以及存在資料的表執行IMP的時候,應該儘量的避免設定COMMIT=Y引數。

Default: n
Specifies whether Import should commit after each array insert. By default, Import commits only after loading each table, and Import performs a rollback when an error occurs, before continuing with the next object.
If a table has nested table columns or attributes, the contents of the nested tables are imported as separate tables. Therefore, the contents of the nested tables are always committed in a transaction distinct from the transaction used to commit the outer table.
If COMMIT=n and a table is partitioned, each partition and subpartition in the Export file is imported in a separate transaction.
For tables containing LOBs, LONG, BFILE, REF, ROWID, or UROWID columns, array inserts are not done. If COMMIT=y, Import commits these tables after each row.

come from:http://space.itpub.net/673608/viewspace-626821

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

相關文章