以下的方法具体我也没有去试过,参考一下吧利用临时表加快查询
  select * from table1 innerjoin table2 on table1.field=table2.field   有时这个查询很快就完成了,但却在返回结果的时候花费了大量时间.  我发现如果我把第一个查询的结果插入到一个临时表中时,情况就大不一样了,改变后的查询如下:
  select * into #temptable from table1 innerjoin table2 on table1.field=table2.field   select * from #temptable   其中 "#temptable" 可以任意改成一个你觉得顺眼的名字。在与数据库的连接关闭后,这个临时表就自动被删除掉了。  现在对大批量数据而言,速度有了明显的提高。  

解决方案 »

  1.   

    绝对不能说ADO的速度慢,ADO的优势在于多层.
      

  2.   

    速度慢原来是由于该字段是TEXT类型引起的。一个SELECT 下去,不知道服务器在干什么,就是不把数据传过来。现在问题解决了,我把TEXT字段拆成了N个VARCHAR字段存到一个临时表中去,N根据LENGTH动态产生,再从这个临时表中去取数据,速度太快了(取600K数据的时间由1分10秒缩短到0.5秒),试验表明VARCHAR字段越少速度越快,由于VARCHAR字段的字符数有10485760(大概是这个数)的限制,我把字符数设成了1M。以上就是我的解决方案。