应该不是JDBC的原因,查一查其他地方。另外,每用一次"+"运算符,JVM会重构一个String对象,像你学种情况,开销也相当可观,建议用StringBuffer。

解决方案 »

  1.   

    我觉得不是驱动的问题,第一次打开数据库是比较长时间,但是后面的就快了,我用ODBC检索1000条数据也就2秒不到,中间还有数据的运算,读文件等操作。我觉得是不是楼主在每次执行数据库连接的时候都进行了关闭数据库连接的操作,或者说在其他地方进行了过多的读磁盘文件操作?可以检查一下其他代码。不是这里的问题。
      

  2.   

    15*60=900,不会差这么多吧,使用String类型的不要用"+",使用StringBuffer应该可以改进很多速度
      

  3.   

    我觉得就算是重构string对象也不会那么长时间。我对1000条以上的数据还进行了3此数组之间的copy呢。也没有什么太大影响。当然,要提高速度的话用StringBuffer也不失为一个好方法。
      

  4.   

    使用String的"+"执行10000次我需要3000ms,使用StringBuffer需要15ms
      

  5.   

    一二十分钟?
    楼主应该仔细检查你的程序了
    于jdbc无关
      

  6.   

    我使用Opta_Trial_6.03连接mssqlServer,读取1000行10个字段的数据,采用StringBuffer用607ms,使用String用92375ms,不可能出现楼主说的这么大差距
      

  7.   

    首先谢谢兄弟们。
    但我先声明:
    1、用stringBuffer的确是对的,我程序中就用StringBuffer
    2、我连的数据库为MS-SQL,用MS的JDBC
    3、只是很简单的几句,程序没有问题,但速度确实无法提高why why ??
      

  8.   

    换一种思路,是不是数据库有问题?也未必一定是JDBC的问题吧,java也太冤了
      

  9.   

    appleIIappleII() 把你的完整代码发上来看看吧。大家可以帮你看看是什么问题
      

  10.   

    我遇到和你一样的问题,不过没有那么久,不知道有没有更好的办法,用了StringBuffer也不行
      

  11.   

    metadata =rs.getMetaData();
    int Columns=metadata.getColumnCount(); 你这个是取数据吗?你这个在取数据集的元数据,这个可能在实现的时候会用反射的,这个操作代表不了jdbc的性能问题。要比就比取数据。