问题描述
大表使用时间字段进行了分区, 并且使用 创建了local index 索引, 表中 接近2千万条记录, 直接使用plsql 带索引条件查询不到1秒, web 应用 时间 1分多种。
问题的解决
链接: link. 从这里得到启发,应用中除了索引字段条件还包括时间条件:
修改前:
// d 为Date类型, 数据库该字段类型 为 timestamp
criteria.andGreaterThanOrEqualTo("checkTime",d);
修改后:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datetime = sdf.format(ddcwv.getEndttime());
criteria.andCondition("to_date('"+datetime+"','YYYY-MM-DD HH24:MI:SS') <= check_time");
问题产生原因
还望高人指点