在一个数据库中,有同类型表N张(表1),现在要取这些表中数据,按时间顺序排列写入到文件中。(有一张表专门记录这些表的表名:表2)。我想有多线程实现同时取数据,然后取出数据。怎么实现呢 ?

解决方案 »

  1.   

    每个线程分别取出一部分,select语句中使用top关键字和order by关键字检索
      

  2.   

    我的一个思想:
        第一步,取表2得出表名,放入一个LIST里面。
        第二步,把LIST分成5段。
        第三步,开5个线程线程,分别读取这五段表,返回最早时间的记录。(select top 1 * from " + tableName + " order by 时间)
        第四步,把时间写入文件。我现在的问题是第三步,我不知道如何处理。
      

  3.   

    “我现在的问题是第三步,我不知道如何处理。 ”有什么难处吗?你只需要定义sql语句从特定的表段中读就行了,例如,假定你的第三个线程要读编号为100~150个记录,那么你只需要在sql语句中加上限定条件就可以了。
      

  4.   

    不是这个,我是说多线程的我问题,我的想法是读取多张表,把800多张表用5个线程去读,每一个线程取去表记录中时间最早的一条数据就可以了。现在我的程序做了改进了。觉得多线程对速度上没有什么特别的提高。如果取得数据量比较大的话,JAVA虚拟机很容易报内存溢出的错误!