为了优化这个SQL查询,可以考虑以下几点:

  1. 索引优化:确保表中的关联字段都有相应的索引,例如PEA.ID、PEAE.ACTIVITY_ID、PEAE.EXAMINER_ID和PEE.ID等。

  2. 子查询优化:子查询可以使用JOIN来替代,这样可以减少查询的次数。可以将子查询中的PFQA_EXAMINE_EVALUATION表与主查询中的PFQA_EVALUATION_EXAMINER表进行JOIN。

  3. 避免使用不必要的列:只选择需要的列,避免选择不必要的列,以减少数据读取和传输的开销。

  4. EXISTS改为INNER JOIN:将EXISTS子查询改为INNER JOIN,可以提高查询性能。

下面是优化后的SQL查询:

SELECT PEA.name as activity_name, PEE.EMP_NAME, PEE.EMP_CODE, PEE.ORG_NAME, PEE.DEPT_NAME, PEE.POSITION_NAME, PEAE.STATUS FROM PFQA_EVALUATION_ACTIVITY PEA INNER JOIN PFQA_EXAMINER_ACTIV_EVALUATION PEAE ON PEAE.ACTIVITY_ID = PEA.ID INNER JOIN PFQA_EVALUATION_EXAMINER PEE ON PEE.ID = PEAE.EXAMINER_ID INNER JOIN PFQA_EXAMINE_EVALUATION PEEN ON PEEN.EXAMINER_ID = PEE.ID WHERE PEA.TENANT_ID = ? AND PEA.IS_DELETE = '0' AND PEA.STATUS ='progress' AND PEAE.STATUS <> 3 AND PEEN.IS_ABSTENTION = 0

通过优化索引、改进子查询和减少不必要的列选择,可以提高查询性能

sql优化 SELECT PEAname as activity_name PEEEMP_NAME PEEEMP_CODE PEEORG_NAME PEEDEPT_NAME PEEPOSITION_NAME PEAESTATUS FROM PFQA_EVALUATION_ACTIVITY pea INNER JOIN PFQA_EXAMINER_ACTIV_EVALUATION peae ON P

原文地址: http://www.cveoy.top/t/topic/iisr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录