IN vs NOT IN

From: <susana73_at_hotmail.com>
Date: Thu, 07 Dec 2000 17:31:56 GMT
Message-ID: <90ohic$n8h$1_at_nnrp1.deja.com>


[Quoted] Hi there,

[Quoted] [Quoted] I have 2 queries which have same logical meaning. However, the one with [Quoted] 'NOT IN' takes forever and the one with 'IN' takes just couple seconds. [Quoted] I did a EXPLAIN on them and it looks like the one with 'NOT IN' is doing [Quoted] a full table scan for both table that's why it takes so long. Could [Quoted] anyone explain to me why?

[Quoted] There are about 100k objectid.

Thanks in advance.

Susan

  • Take forever ********** SQL> select count(*) from struct where objectid NOT IN 2 (select objectid from detail where status !=0);

Execution Plan


   0 SELECT STATEMENT Optimizer=CHOOSE    1 0 SORT (AGGREGATE)

   2    1     FILTER
   3    2       TABLE ACCESS (FULL) OF 'STRUCT'
   4    2       TABLE ACCESS (FULL) OF 'DETAIL'

  • Take 30 seconds ********** SQL> select count(*) from struct where objectid IN 2 (select objectid from detail where status = 0);

Execution Plan


   0 SELECT STATEMENT Optimizer=CHOOSE    1 0 SORT (AGGREGATE)

   2    1     NESTED LOOPS
   3    2       VIEW OF 'VW_NSO_1'
   4    3         SORT (UNIQUE)
   5    4           TABLE ACCESS (FULL) OF 'OBJECT'
   6    2       INDEX (RANGE SCAN) OF 'PKEY_STRUCT_IDX' (NON-UNIQU
          E)


Sent via Deja.com http://www.deja.com/
Before you buy. Received on Thu Dec 07 2000 - 18:31:56 CET

Original text of this message