Difference between IN and EXISTS

Answer Posted / subathra

IN: Inner query executes first and drives the outer query.
EXISTS: Outer query executes first and compares tge rows
retrived with the inner query.
Consider table tab1 has 1000 rows and table tab2 has 1000
rows.
IN: select t1.empid from tab1 t1 where t1.code in (select
t2.code from tab2 t2) -- All rows in t1 will read with t2
and the effect is 1000 X 1000 rows.
EXISTS: select t1.empid from tab1 t1 where exists (select 1
from tab2 t2 where t1.code=t2.code) -- Max of 1 row will be
read for each row of t1 and thus reduces the processing
overhead.
Thumb rule:
1) If the majority of the filtering are in the sub query
then use IN.
1) If the majority of the filtering are in the outer query
then use EXISTS.

Is This Answer Correct ?    4 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What does an inner join do?

543


What is sp_helptext?

578


What is the size of partition table?

538


What is constant in pl sql?

506


What is forward declaration in pl sql?

577






What is data type in sql?

544


What kind of join is join?

543


How to start oracle sql developer?

550


How do you explain an index number?

519


What is full join in sql?

510


How do you define a foreign key?

518


What is the use of desc in sql?

479


What are two statement types in sql?

526


what is the difference between join and union? : Sql dba

535


Why we use stored procedure instead of query?

519