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 is the difference between delete and truncate commands? : Sql dba
what is the difference between char and varchar data types? : Sql dba
What is difference between ms sql and mysql?
Is stored procedure faster than query?
What is the difference between execution of triggers and stored procedures?
What are the possible values for the boolean data field?
What are hotfixes and patches?
What are the different dml commands in sql?
What are the different types of a subquery?
How does pl sql work?
what is a database lock ? : Sql dba
How to select unique records from a table?
How can I get the number of records affected by a stored procedure?
How do you create a unique index?
How do I write a cron which will run a sql query and mail the results to agroup?