Está en la página 1de 2

The Append hint ( Direct Path Load ) The append hint tells Oracle not to look for space

in the existing extents of the table but to create new extents that can be filled using direct path, i.e. bypass the buffer cache and write directly to datafiles. Also you can combine this with NOLOGGING which generates very little redo or undo, as all Oracle would need to do is rollback the storage allocation. INSERT /*+ APPEND */ INTO ANDY SELECT * FROM ANDY2;

The other thing that APPEND does is to write out the data a block at a time. It builds a block in memory and then writes it to the datafile all at once. This is a major speed improvement over inserting one record at a time that has to find available space and then rewrite the block with the modified data for every record.

If you are doing one big load at the end of the month, and a series of small loads (or even individual row inserts) throuought the month, then you should not have much, if any, "wasted space". The APPEND hint for the big load will cause Oracle to insert the new rows above the high water mark of the table, ignoring any free space in the existing blocks of the table. However, the small loads done without the APPEND hint will use the free space in the existing blocks, thus "backfilling" the space "wasted" by using APPEND.

If the LOGGING attribute of the table is enabled (which is the default), redo records are not generated in NOARCHIVELOG mode with the append hint, whereas they are in ARCHIVELOG mode. So I don't think we can say "that NOARCHIVELOG and LOGGING (or the append hint) have nothing to do with eachother". NOARCHIVELOG mode + LOGGING redo records are not generated. ARCHIVELOG mode + LOGGING redo records are generated.

http://www.csee.umbc.edu/help/oracle8/server.815/a67775/ch25_pex.htm Oracle8i Tuning Release 8.1.5 A67775-01 The APPEND hint applies to both serial and parallel insert: even serial inserts are faster if you use this hint. APPEND, however, does require more space and locking overhead.

You can use NOLOGGING with APPEND to make the process even faster. PARALLEL APPEND hint optional / implied by the PARALLEL hint. Serial APPEND hint NO LOGGING - means that no redo log is generated for the operation. NOLOGGING is never the default; use it when you wish to optimize performance. It should not normally be used when recovery is needed for the table or partition. If recovery is needed, be sure to take a backup immediately after the operation. Use the ALTER TABLE [NO]LOGGING statement to set the appropriate value. http://www.ddbcinc.com/askddbc/post.asp? method=ReplyQuote&REPLY_ID=1749&TOPIC_ID=856&FORUM_ID=2
The APPEND hint instructs Oracle to insert data into blocks above the high-water mark. If a table is marked as NOLOGGING, or the database is in NOARCHIVELOG mode, this allows Oracle to generate redo only for the changes made to the data dictionary, not for changes that are made to the table. If the operation fails in the middle, Oracle simply rolls back the changes to the data dictionary and the additions to the table are rolled back as a side effect. Note that if there are indexes on the table, redo will be generated for updates to the indexes, since you need to insert data "in the middle" of the index data structure.

http://asktom.oracle.com/pls/asktom/f? p=100:11:0::::P11_QUESTION_ID:1951476814728 http://asktom.oracle.com/pls/asktom/f?p=100:1:0::NO:RP:: Elapsed: 00:00:49.07 Elapsed: 00:00:13.08 http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html table/tablespace compression http://sysdba.wordpress.com/2006/06/27/table-compression-in-oracle-9ir2-and-beyond/

También podría gustarte