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 exception handling is done in advance pl/sql?
What are the two characteristics of a primary key?
Can you select everything, but 1 or 2 fields, without writer's cramp?
write an sql query to get third maximum salary of an employee from a table named employee_table. : Sql dba
how many values can the set function of mysql take? : Sql dba
what is view? : Sql dba
What is insert command in sql?
Is join an inner join?
What does where 1 1 mean in sql?
what are enums used for in mysql? : Sql dba
What operators deal with null?
What is the plv (pl/vision) package offers?
Can you load data into multiple tables at once? : aql loader
How do you rank data in sql?
How do you determine the current isolation level? : Transact sql