Stephen,

I agree with everything you suggested except #3 -- if he is deleting
that many rows, Oracle will ignore the indexes and will full table scan
the delete anyway. Last I heard (from Oracle University) was that if
Oracle expects more than 5-8% of the table to return from the query, it
will do a full table scan no matter what

Rachel

--- "Karniotis, Stephen" <[EMAIL PROTECTED]> wrote:
> OK.  Everyone is assuming that your deletion of millions of rows may
> be
> expedited by simply truncating the table.  Now, that would be perfect
> if you
> were simply emptying the table.  However, if data is to remain in the
> table,
> then truncate is not the preferred choice.  Here are some options
> along with
> some cautions.
> 
> 1. PL/SQL procedure to perform delete - If you are deleting data
> based on
> values in another table, you could use a DELETE with a correlated
> sub-query
> to delete data.  You could also add a counter to the PL/SQL code to
> delete
> 50,000 rows, commit the deletion and then continue.  Unfortunately,
> if you
> make a mistake with the DELETE, you must recover the table from
> Offline
> archivedlogs.  PL/SQL has never been the preferred choice for working
> with
> LOTS of data.
> 2. CTAS - Create Table as SELECT is another alternative.  If you can
> create
> another table with only the data you want, delete the original table
> and
> simply rename this new table to the old name, you may speed up the
> process.
> Additionally, creating the table as UNRECOVERABLE helps as it reduces
> the
> amount of redo data generated by Oracle.
> 3. Use indexes with the delete process - If your delete process is
> referencing non-indexed columns, you are performing a full table scan
> for
> the DELETE.  Using indexes will help performance significantly
> because the
> amount of data scanned is significantly reduced.
> 4. Traditional DELETE wit subquery - Same as PL/SQL offering except
> you
> cannot control the amount of data deleted between commits.
> 
>   These are four options.  Good luck.
> 
> Thank You
> 
> Stephen P. Karniotis
> Technical Alliance Manager
> Compuware Corporation
> Direct:       (248) 865-4350
> Mobile:       (248) 408-2918
> Email:        [EMAIL PROTECTED]
> Web:  www.compuware.com
> 
> 
>  -----Original Message-----
> Sent: Thursday, December 27, 2001 3:15 PM
> To:   Multiple recipients of list ORACLE-L
> Subject:      RE: HOW TO MAKE DELETION FAST
> 
> TRUNCATE TABLE :-)
> 
> 
> -----Original Message-----
> Sent: Thursday, December 27, 2001 3:00 PM
> To: Multiple recipients of list ORACLE-L
> 
> 
> Hi Gurus
> How to make deletetion of millions rows faster?
> Please suggest.
> Thx
> Seema
> 
> 
> 
> _________________________________________________________________
> Join the world's largest e-mail service with MSN Hotmail. 
> http://www.hotmail.com
> 
> -- 
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> -- 
> Author: Seema Singh
>   INET: [EMAIL PROTECTED]
> 
> Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> San Diego, California        -- Public Internet access / Mailing
> Lists
> --------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from).  You may
> also send the HELP command for other information (like subscribing).
> -- 
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> -- 
> Author: 
>   INET: [EMAIL PROTECTED]
> 
> Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> San Diego, California        -- Public Internet access / Mailing
> Lists
> --------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from).  You may
> also send the HELP command for other information (like subscribing).
> -- 
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> -- 
> Author: Karniotis, Stephen
>   INET: [EMAIL PROTECTED]
> 
> Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> San Diego, California        -- Public Internet access / Mailing
> Lists
> --------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from).  You may
> also send the HELP command for other information (like subscribing).


__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Rachel Carmichael
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to