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
How would you pass hints to the sql processor?
What is output spooling in sql*plus?
What sql does db2 use?
Is it possible to include an insert statement on the same table to which the trigger is assigned?
What is crud sql?
What is the difference between delete, truncate and drop command?
What is the difference between delete and truncate statement in sql?
How to change a value of the field ‘salary’ as 7500 for an employee_name ‘john’ in a table employee_details?
How can we implement rollback or commit statement in a trigger?
List the different type of joins?
What do you understand by exception handling in pl/sql?
Does view contain data?
what does the t-sql command ident_incr does? : Transact sql
How many times can we commit in a loop?
What is procedure function?