还有,当SQL语句出错的时候,能否从Exception中取得出错的位置?

解决方案 »

  1.   

    (1)优化你的SQL语句(例如将 in 改成 exists 等等)
    (2)调整你的数据库(例如添加索引等等)(*)Select有索引的表,速度快n倍
      

  2.   

    关键问题是,SQL语句是最简单的“SELECT * FORM test”。还要怎么优化?源码如下:
        public boolean execute(String LsSql) throws SQLException {
            clearResult();        if(bIsSelect = oStatement.execute(LsSql)) {
                oResultSet = oStatement.getResultSet();
                oResultSetMetaData = oResultSet.getMetaData();
                iColumnCount = oResultSetMetaData.getColumnCount();
                sColumnNames = new String[iColumnCount];            for(int i = 0; i < iColumnCount; i++)
                    sColumnNames[i] = oResultSetMetaData.getColumnLabel(i+1);            oResultSet.setFetchSize(1000);
                iRowCount = 0;
                while(oResultSet.next()) iRowCount++;            oSelectResult = new Object[iRowCount][iColumnCount];
    ...
    以下省略(没有匹配大括号,看个意思就行了)我是想说,为什么同样的数据、同样的SQL语句,使用jdbc:oracle要比jdbc:odbc慢3倍之多。还要,谁能解释一下SQLWarning怎么用?怎么能找到错误出在SQL语句的哪个字符上?(PL/SQL Developer就可以实现定位错误位置。别告诉我是自己做语法分析)JDK1.3.1
      

  3.   

    用Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")连接,进行检索用38秒;
    用Class.forName("oracle.jdbc.driver.OracleDriver")连接,进行检索用11秒。
    其他的全一样(当然包括SQL语句)。
      

  4.   

    jdbc-odbc这种驱动肯定是很慢了拉。
      

  5.   

    楼上的,是jdbc:oracle...这个慢(消耗38秒),jdbc:odbc...这个快(消耗11秒)
      

  6.   

    用Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")连接,进行检索用38秒;  
    用Class.forName("oracle.jdbc.driver.OracleDriver")连接,进行检索用11秒。  
    其他的全一样(当然包括SQL语句)。 -------------------
    写错了,正确的如下:
    用Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")连接,进行检索用11秒;  
    用Class.forName("oracle.jdbc.driver.OracleDriver")连接,进行检索用38秒。  
    其他的全一样(当然包括SQL语句)。 
      

  7.   

    没试过,可能是微软欺负sun,去unix上试试