一张大表(>1000万数据),要对他进行各种不同条件的查询,将每个结果的count显示在首页,例如:
今日等待A任务数:XX
今日等待B任务数:YY
今日等待C任务数:ZZ
用户有几十个种类的任务数需要显示,现在每一个单独的查询用时需要0.5-1秒(已经无法再优化了,查询条件比较复杂),这样全部加载出来就要将近1分钟。
我试了将这些统计在多线程中执行,想让他们有部分能够并行执行,但是由于oracle自己会限制同时发起连接数,所以效果不明显,只提升了不到20%。
请问有什么好的思路能够提升加载速度?
------解决方案--------------------------------------------------------
1.看你的查询任务,大都是跟时间相关吧(‘今日’),在时间上有没有建立索引?
2.是不是所有的查询结果都是必须动态实时查询,如果不是可以尝试建立专门的一张表,存储预处理查询结果。
------解决方案--------------------------------------------------------
bulk + rowid