我一个java页面,进行搜索的时候要在5万条记录里搜索,当显示的时候,有时显示上千条,这样就有一段很长的等待时间,
请问这个等待时间是如何产生的,我的数据库时oracle 的,请问应该如何处理

解决方案 »

  1.   

    检索数据库时因为记录比较多,所以产生延迟显现,如不用分页显示,一般的方法是用PLSql优化。
      

  2.   

    lz的技术分为0,这样的帖子回了n天才有分。
      

  3.   

    不能分页?优化sql吧,这个可以发到数据库板块区去.
      

  4.   

    界面显示上并不花太多的时间,因为需要显示的数据都是动态的调用:getElement(int index), 即显示在界面中的数据才会请求,隐藏的那几千条,界面并不关心,所以即使你的数据再多,也并不影响真正显示的效率。而时间主要是花在从数据库提取数据,然后把这些数据加入model中,其中要创建大量的对象,分配大量的内存。所以,如果不分页显示,即使你使用的PLsql来优化,那也是优化了查询速度,在Java端做的事仍然是必须要花那么多时间与资源的。
      

  5.   

    现在找到一个方法,让界面显示的速度与数据的多寡几乎没有关系:使用简单的JList为例:
    事先设置好JList的fixedCellWidth和fixedCellHeight的值或者prototypeValue的值,这样,JList在显示数据的时候,就不会去计算每个项的高度与宽度了(这一个动作会在JList显示之前访问要显示的所有数据,然后计算出JList的高度与宽度,大量数据的时候,会占用非常多的时间),这时,JList只有在要显示某条数据项的时候,才会去调用ListModel.getElementAt(int index)去取得数据,然后显示,即显示的速度与数据量没有任何关系了。JTable等具体的细节还没看,也许能用这个思路,解决一定速度上的问题。
      

  6.   


    在每个关键步骤之后算出话费时间,看看到底哪里花时间多;在stm.excuse()后;
    迭代结果集完成后;
    等等;