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
What schema means?
How does sql*loader handles newline characters in a record? : aql loader
What mean sql?
What is over () in sql?
what are null values? : Sql dba
Can we write ddl statements in functions?
What is trigger and how to use it in sql?
What are the types of join in sql?
what is datawarehouse? : Sql dba
How many types of privileges are available in sql?
GLOBAL TEMPORARY TABLE over Views in advantages insolving mutating error?
How to process query result in pl/sql?
Why does sql need a server?
What is pl sql in oracle?
What is a recursive join sql?