Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: how to efficiently delete records from large tables?

Re: how to efficiently delete records from large tables?

From: Daniel Morgan <damorgan_at_exxesolutions.com>
Date: Sat, 30 Aug 2003 12:42:51 -0700
Message-ID: <3F50FE3B.80ACB55@exxesolutions.com>


Anne wrote:

> Hi,
>
> I have a speed problem deleting data from one table based on information in
> another table.
>
> I have two tables, 1.9 milion records each. Both have a primary key on field
> 'id'.
>
> TABLE_1:
> Name Type Nullable Default Comments
> ------- ------------- -------- ------- --------
> ID NUMBER(25)
>
> TABLE_2:
> Name Type Nullable Default Comments
> ------- ------------- -------- ------- --------
> ID NUMBER(25)
> NAME VARCHAR2(50)
>
> Now if I use:
> delete from table_1 t1 where t1.id in (select id from table_2 where
> name='DELETE');
>
> it takes hours to execute. (in the query explain plan I see that Oracle hash
> joins the tables using full table access on both tables, I would think that,
> since primary keys are used, Oracle should use the primary key indexes, but
> it doesn't).
>
> What can I do to increase execution speed?
>
> Thanks,
>
> please note that the reply e-mail address is disfigured to block automated
> bulk e-mail. The abbreviation for 'netherlands' is 'nl'.
>
> Anne

What version of Oracle?
Which optimizer?
Statistics current?
Have you run explain plan and you know the indexes are not being used or are you just guessing?
Why are you using IN?

--
Daniel Morgan
http://www.outreach.washington.edu/extinfo/certprog/oad/oad_crs.asp
http://www.outreach.washington.edu/extinfo/certprog/aoa/aoa_main.asp
damorgan_at_x.washington.edu
(replace 'x' with a 'u' to reply)
Received on Sat Aug 30 2003 - 14:42:51 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US