观察如下三组测试性能数据,每级首次执行时间比二次执行大概多用了4秒样子,虽说第二次用了第一次的缓存数据,节省大量物理IO时间,按理说,时间节省不大,那么其中秘密又是什么呢?
这里补充一个情节,就是每天大概有上10多万的数据,分析执行计划,用上了分区和索引。SQL中除了一个自定义时间截断函数外,就是表字段本身了,会不会是处理10多万条数据,占用了大量处理时间,也就是延长了总体响应时间?
逐一排除,1、程序中用到一个自定义时间截断函数trunc,后改了date_format内置时间函数,其执行性能大大提高,响应时间缩短到0.3秒左右。
通过对比内置函数与自定义函数执行性能,不难发现内置函数有良好的性能表现。