trunc函数处理时间字段对查询效率的影响
select count(*) from balance_acct_item_payed where billing_cycle_id=202005 and trunc(created_date) = trunc(sysdate-70);
select count(*) from balance_acct_item_payed where billing_cycle_id=202005 and to_char(sysdate-70,'yyyymmdd')=to_char(created_date,'yyyymmdd');
select count(*) from balance_acct_item_payed where billing_cycle_id=202005 and created_date >= trunc(SYSDATE-70, 'dd') and created_date < trunc(SYSDATE-69, 'dd');
总结:
1、时间字段使用trun函数,每条数据都要做函数处理,影响效率;需要对字段转换处理的时候,最好在固定值上处理。
2、另外在有索引字段上使用函数,索引会失效。
对于平时碰到的问题思考总结做下记录,一方面以后碰到类似的问题可以快速查看提高效率,否则每次碰到类似的问题,重新思考会浪费时间;另一方面也算是自己学习成长的痕迹,时刻提醒自己一点一滴,不然平时学到的想到的总是雁过无痕。
由于自己菜鸟一小只,不足之处望批评指正,互相学习,一起进步。加油,共勉。