写了一个关于统计数据的存储过程,在PLSQL里面test的时候,查一天的数据大概耗时4S,查一个月的数据耗时7S左右
在JAVA里面调用,查一天的数据,也是耗时4S左右,但查两天,三天,甚至一个月的时候,却发现它的耗时就非常大了,都是与这个查询的天数成正比的增加,按道理说查询时间应该与PLSQL里面TEST的时间是一样才对啊,为什么这么大的区别呢
数据库是用的10G,WEB服务器是用的resin,请问这是什么问题引起的呢,期待高手进来指点,帮我分析分析
先送100分,不够再开贴送分

解决方案 »

  1.   

    1.LZ的数据库是正常的。
    2.调整JAVA运行时的初始(环境)参数。
      

  2.   

    在:
    1.LZ的数据库是正常的。 
    2.调整JAVA运行时的初始(环境)参数。
    3.在JAVA类里定义的日期类的取值时区的方式也要一致。随着数据量的变化,加上程序调用过程是会有较少的时间差,对于你所说的“但查两天,三天,甚至一个月的时候,却发现它的耗时就非常大了,都是与这个查询的天数成正比的增加”,按道理说查询时间与PLSQL里面TEST的时间是‘ 不样 ’才对。如果结果还是一样的话,问题应该是你的统计查询语句写得有问题,须进一步优化。
    你经常多做测试就知道了。
    对于“把参数写死,结果还是一样,所花的时间还是要五十多秒,”应该是你做的测试太少,多测试几次,检查器里显示的时间是会有差别的,至于差多少,要看你的统计查询语句写得怎样。
      

  3.   

    java可能在封装对象的时候开销了很多时间,还有PLSQL select 出来往往封装的就是第一页数据,如果要全部显示也要很久,有时候还会出现内存溢出!