本帖最后由 qq1758 于 2010-04-26 19:55:39 编辑

解决方案 »

  1.   

    stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs=stmt.executeQuery(ls_select_sql);用上面的替代stmt = dbConn.prepareStatement(ls_select_sql);
    居然两者的执行时间就差不多了,而且达到了正常的直接写name=‘book’快什么原因呢 ????
      

  2.   


    SELECT period,idCnt FROM MyTb WHERE 
    ((idCnt - 1) IN (SELECT idCnt FROM MyTb WHERE  name ='book' AND idCnt>=44905)) AND idCnt>=44905DBCC FREEPROCCACHE
    DBCC DROPCLEANBUFFERSSELECT period,idCnt FROM MyTb WHERE 
    ((idCnt - 1) IN (SELECT idCnt FROM MyTb WHERE name =
    (SELECT name FROM MyTb WHERE
     idCnt =(SELECT MAX(idCnt) FROM MyTb ))) AND idCnt>=44905) AND idCnt>=44905
    试试
      

  3.   

    stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs=stmt.executeQuery(ls_select_sql);用上面的替代stmt = dbConn.prepareStatement(ls_select_sql);
    居然两者的执行时间就差不多了,而且达到了正常的直接写name=‘book’快什么原因呢 ????