一张大表(>1000万数据),要对他进行各种不同条件的查询,将每个结果的count显示在首页,例如:今日等待A任务数:XX
今日等待B任务数:YY
今日等待C任务数:ZZ用户有几十个种类的任务数需要显示,现在每一个单独的查询用时需要0.5-1秒(已经无法再优化了,查询条件比较复杂),这样全部加载出来就要将近1分钟。我试了将这些统计在多线程中执行,想让他们有部分能够并行执行,但是由于oracle自己会限制同时发起连接数,所以效果不明显,只提升了不到20%。请问有什么好的思路能够提升加载速度?

解决方案 »

  1.   

    千万级数据量  有很多统计值 0.5-1秒 应该不错了
    考虑其他方法吧
    如果可以延时查询  可以用job跑出统计值插入一张表中
    如果当天实时查    可以将今天的数据先用一张新表存储  晚上在转入实际表中
    不然好像没什么别的办法的
      

  2.   

    你有多少CPU?多线程的个数和CPU个数都会影响性能的
    比如我们这一个程序,4个CPU时10个线程数性能最优,当然具体情况还与你环境有关