If you use LEFT OUTER JOIN and "OR" condition in Oracle, even though you have the indexes on tables, table scan will be performed. Instead you can try 'EQUI-JOIN". There is no issue in Sqlserver.
Eg:
Bad query:
select * from employee left outer join department on employee.dept_id=department.dept_id and (employee.profile_id = department.profile_id or employee.group_id = department.group_id). Even indexes on profile_id and group_id, table scan will be performed.
Instead use just equi join.
Eg:
Bad query:
select * from employee left outer join department on employee.dept_id=department.dept_id and (employee.profile_id = department.profile_id or employee.group_id = department.group_id). Even indexes on profile_id and group_id, table scan will be performed.
Instead use just equi join.
No comments:
Post a Comment