一个connection,对每次查询产生一个statement,执行查询操作,关闭此statement.
所以只要一个就可以了。
resultset是数据库查询的结果集,当resultset产生时,数据库查询已经结束了,结果应该都在本地了吧,所以rs.next()都是本地操作,不花多少时间的。

解决方案 »

  1.   

    “resultset是数据库查询的结果集,当resultset产生时,数据库查询已经结束了”
    那就是说rs=state_query.executeQuery(...);rs.next();
    需要1个小时是么?
    “一个connection,对每次查询产生一个statement,执行查询操作,关闭此statement.
    所以只要一个就可以了。”如果我需要同一时间保持2个查询,是不是就须要2个statement,还是说connection也须要2个?
      

  2.   

    connection不需要两个的,但是如果同时保持两个查询结果集的话,就需要两个statement的
      

  3.   

    直接点说吧:
    是这样的,我在做一个ftp的搜索引擎,建立数据库的程序已经写好了,数据库已经建立起来了,非常庞大,有2千多个表,每个活动的ip都有一个表,我现在需要在这些表中间搜索符合条件的纪录,我当然不可能让它全部找出来以后再返回结果,有什么办法?
    就是如何实现在用户提交关键字以后在数据库的这么多表的所有数据中找到符合条件的,并且找到20个就返回,并且能够继续找。
      

  4.   

    使用分页查找的机制,使用sql 的top 10子句,查出符合条件的一部分记录。查找一定要按索引或主键查找。
    同一时间保持2个查询,好像应该要两个数据库连接吧,不然会打架阿。
      

  5.   

    小弟初次涉及这样的领域,也不知道该如何设计这样的数据库,目前的情况是一个活动的ip一个表,所以大概有2000个左右的表,并且这些表的数据还会不断变化,我有线程不断scan,发现有新的服务器会增加表。数据量非常大,大概最后会有800M左右,400-500万行的数据。在这样的数据库中如何快速搜索呢?(目前数据库已经建好,如果觉得这样的设计不好,请提出自己的想法,谢谢)
       我目前是一个表一个表的扫描,我用了top子句,能够处理提交的查询请求,并且能够返回所需要数目的数据,并且能够继续查询。查询有些关键字很快,但是有些很慢,难以忍受,可能要30s-40s才会有结果。这样显然不行的,大家有什么好的建议?谢谢
      

  6.   

    前提逻辑结构相同使用分区视图:
    举例:create table [2002年数据] (编号 int,年 int check(年=2002) default 2002,数据 int,primary key(编号,年))
     
    create table [2003年数据] (编号 int,年 int check(年=2003) default 2003,数据 int,primary key(编号,年))create view 所有数据 as
    select * from [2002年数据] 
    union all
    select * from [2003年数据] 
    go如果你在条件中加了 如:select * from 所有数据 where 年=2003 ....那SQLServer会只扫描 [2003年数据] 表