注册

SQL性能优化

杨海 2024/12/10 420 8

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:windows11
【CPU】:
【问题描述】*:有SQL:

SELECT count(person.id) FROM ( SELECT t2.* FROM ( SELECT person_id, max(modify_time) AS modify_time FROM ehr_org_person_history WHERE org_id = '8876686154421706446' AND modify_time<= '2024-12-09 23:59:59.999' GROUP BY person_id ) AS t1 INNER JOIN ehr_org_person_history AS t2 ON t1.modify_time = t2.modify_time AND t1.person_id = t2.person_id) as person WHERE person.org_id in ('8876686154421706446') and person.is_outer = 0 and person.del_flag = 1 and person.state in (1,2,4);

数据量有370000+数据
以创建复合索引 org_id,modify_time,person_id
et为:
image.png

执行计划为:
image.png
结果为:26002,但耗时为2s多。

回答 0
暂无回答
扫一扫
联系客服