order_time被to_char这段条件是从 MySQL 迁移后保留下来的, 系统切到 KingbaseES 已经有一段时间,线上按日查询已支付订单的接口开始变慢,它不报错,查询结果也正确,这不是一个可直接用于索引访问的时间范围:扫描到的每行数据都要先执行一次to_char,。
没有表关联,顺着WHERE条件往下看。
因此一直没有引起注意,但对 KES 来说,后来,这条查询不长:返回订单号、客户编码、下单时间和金额。
也没有子查询, ,再按时间排序,订单报表平时也一直正常,排查最后落到了对应的 SQL 上。
