【发布时间】:2017-10-30 12:42:07
【问题描述】:
INSERT INTO temp_cl_user_pks
SELECT DISTINCT
tb_abc_login.pk_tb_login_master login_master, --Modified for Pega_S-121214-007856 (Defect #7551)
tb_user_details.email_id email
FROM tb_abc_login tb_abc_login,
tb_user_details tb_user_details,
tb_unit tb_unit,
tb_user_hierarchy tb_user_hierarchy,
tb_company_lmn tb_company_lmn,
tb_user_company tb_user_company,
temp_cl_units_hierarchy aa
WHERE tb_unit.processor_key LIKE aa.cl_region_key
AND tb_abc_login.pk_tb_abc_login = tb_user_details.fk_tb_abc_login
AND tb_abc_login.rec_status = 'AC'
AND tb_user_value.rec_status = 'AC'
AND tb_unit.unit_id = tb_user_hierarchy.fk_unit_id
AND tb_unit.purgeid IS NULL
AND tb_user_hierarchy.fk_tb_abc_login = tb_abc_login.pk_tb_abc_login
AND tb_user_hierarchy.rec_status = 'AC'
AND tb_user_company.fk_tb_company_lmn = tb_company_lmn.pk_tb_company_lmn
AND tb_user_company.fk_tb_abc_login = tb_abc_login.pk_tb_abc_login
AND tb_user_company.rec_status = 'AC'
AND tb_company_lmn.rec_status = 'AC'
AND UPPER(tb_user_value.email_id) LIKE email ESCAPE '\'
AND tb_company_lmn.pk_tb_company_lmn = aa.fk_tb_ref_hierarchy
AND tb_user_hierarchy.fk_tb_ref_hierarchy = tb_company_lmn.pk_tb_company_lmn
AND tb_unit.restricted_flag ='Y'
--AND tb_user_company.secure_hierarchy ='Y'
AND aa.region_short_code ='LMN';
【问题讨论】:
-
可能不相关,但切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 -
没有通配符时为什么要 LIKE? (或者表数据是否包含通配符?)
-
性能问题应该包括
EXPLAIN ANALYZE和一些关于表大小、索引、当前时间性能、期望时间等的信息。Slow是一个相对术语,我们需要一个真实的值来比较。 -
添加表和索引定义。并说明计划。
-
请不要破坏您的问题。
标签: sql oracle query-optimization