I want to execute the following SQL statement for a single emp.emp_id.
Just adding and emp.emp_id=256 to the end of the statement results in
a SQL statement that on average takes 5.5 seconds.
I've tried various permutations of the statement where I add "and
emp.emp_id=256" or "em.emp_id= 256" but fundamentally, I don't know how
to approach optimizing this statement for a single row.
Your tips would be of help.
Thanks.
SELECT emp.emp_id,
emp.first_name,
emp.middle,
emp.last_name,
emp.login,
emp.email,
emp.emp_number,
emp.cube,
emp.phone,
emp.workstation ,
coalesce(depart ments.corp_depa rtment, '') corp_department ,
coalesce(groups .corp_group, '') corp_group,
building.buildi ng ,
emp_type.emp_ty pe,
user_type.user_ type,
emp.office,
emp.my_favourit es,
emp.flag,
emp.last_visite d_date,
emp.no_of_visit s FROM bobnet.employee emp
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name corp_department FROM
employee em
LEFT OUTER JOIN emp_group eg ON em.emp_id=eg.em p_id
LEFT OUTER JOIN bobnet.group_lo okup gl ON eg.group_id
=gl.group_id
WHERE gl.attribute='C orp Department' ) departments
ON emp.emp_id = departments.emp _id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name corp_group FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='C orp Group' ) groups
ON emp.emp_id=grou ps.emp_id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name building FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='B uilding' ) building
ON emp.emp_id=buil ding.emp_id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name emp_type FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='C orp EmpType' ) emp_type
ON emp.emp_id=emp_ type.emp_id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name user_type FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='U serType' ) user_type
ON emp.emp_id=user _type.emp_id
where emp.phone <'111-111-1111' and user_type.user_ type='Corporate '
Just adding and emp.emp_id=256 to the end of the statement results in
a SQL statement that on average takes 5.5 seconds.
I've tried various permutations of the statement where I add "and
emp.emp_id=256" or "em.emp_id= 256" but fundamentally, I don't know how
to approach optimizing this statement for a single row.
Your tips would be of help.
Thanks.
SELECT emp.emp_id,
emp.first_name,
emp.middle,
emp.last_name,
emp.login,
emp.email,
emp.emp_number,
emp.cube,
emp.phone,
emp.workstation ,
coalesce(depart ments.corp_depa rtment, '') corp_department ,
coalesce(groups .corp_group, '') corp_group,
building.buildi ng ,
emp_type.emp_ty pe,
user_type.user_ type,
emp.office,
emp.my_favourit es,
emp.flag,
emp.last_visite d_date,
emp.no_of_visit s FROM bobnet.employee emp
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name corp_department FROM
employee em
LEFT OUTER JOIN emp_group eg ON em.emp_id=eg.em p_id
LEFT OUTER JOIN bobnet.group_lo okup gl ON eg.group_id
=gl.group_id
WHERE gl.attribute='C orp Department' ) departments
ON emp.emp_id = departments.emp _id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name corp_group FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='C orp Group' ) groups
ON emp.emp_id=grou ps.emp_id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name building FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='B uilding' ) building
ON emp.emp_id=buil ding.emp_id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name emp_type FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='C orp EmpType' ) emp_type
ON emp.emp_id=emp_ type.emp_id
LEFT OUTER JOIN (SELECT em.emp_id, gl.group_name user_type FROM
employee em
LEFT OUTER JOIN bobnet.emp_grou p eg
ON em.emp_id=eg.em p_id
LEFT OUTER JOIN group_lookup gl
ON eg.group_id =gl.group_id
WHERE gl.attribute='U serType' ) user_type
ON emp.emp_id=user _type.emp_id
where emp.phone <'111-111-1111' and user_type.user_ type='Corporate '
Comment