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
Mention what does plvtab enables you to do when you showthe contents of pl/sql tables?
Can we use pl sql in sql server?
What can I use instead of union in sql?
How to revise and re-run the last sql command?
What does trigger mean in slang?
How to order siblings in oracle hierarchy queries?
Is it possible to update views?
Does view store data in sql?
What is the difference between cross join and natural join?
Explain commit, rollback and savepoint.
How do you rank data in sql?
What is pragma in pl sql?
Can a varchar be a primary key?
How do I view a procedure in sql?
How many sectors are in a partition?