系统中要求对HIS数据进行效益统计,因为HIS数据是需要第三方提供接口导入的,不清楚数据量大小,所以视图以业务为主未对其做性能优化(当时编写试图时就是几条简单的测试数据)
如今在项目接口实施完成后查看视图执行效率,发现执行了很久很久,具体执行时间忘记了,书写不规范,性能两行泪
(HIS系统就提供了近三千万条数据)
发现不仅仅浪费了大量时间,还占用了大量内存空间
我首先就是想到了建索引,速度上快了些
然后查看视图代码,缩减代码量及关注执行时间
因为视图业务较复杂,涉及的表较多
首先对嵌套查询的语句单独测试,并优化
eg. 将一个原本用left join连接的操作进行优化(这几张表数据量很小,最多的四万条,最小的几百条)
很普通的左外链接,看一下现在的性能,如此简单的表连接加上了计算列后耗费了三十多秒