数据查询设置索引后,查询速度依然缓慢,最后查出4000多条数据,
sql:
select --此处省略120个字段项-- WHERE ifhistory=0 and unit_id like '%关键词%' and audit_code=? and service_op=? order by design_date desc,build_unit
数据查询设置索引后,查询速度依然缓慢,最后查出4000多条数据,
select --此处省略120个字段项-- WHERE ifhistory=0 and unit_id like '%关键词%' and audit_code=? and service_op=? order by design_date desc,build_unit
表的总数据量多少? 符合audit_code=? and service_op=? 的条件记录数数多少?
根据个人经验,1亿数据量的表,查询出3000条左右的数据,索引合适的话需要7-8秒时间,当然这个只能参考,和硬件环境关系比较大。
这个语句,建议按照audit_code 和 service_op联立联合索引,然后看一下执行计划是否能使用索引。
8 回答6.8k 阅读
4 回答1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
4 回答501 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答651 阅读✓ 已解决
2 回答1.2k 阅读
建议将模糊查询放在最后,将更明确的标识查询往前放例如id,name等,当然也有人证明过 oracle 中where条件执行顺序是从右到左,这个可能要因数据库而异,或者自己进行一下测试!
另外像楼上说的一样,最好尽量少使用或不使用模糊查询或将 like '%%' 改为 like '%'
然后你的 表中为什么会有什么多字段.....