1.提高服务器配置2.用多线程处理(程序设计方面)3.改三层结构,用中间层先分析过滤数据,减轻服务器处理负担及网络传输负担4.批量发送处理语句,不要逐条发送
  例如,多条insert语句可以组合成下面的形式发送:
  insert 表 select 值1
  union all select 值2
  ....
  union all select 值n5.考虑使用服务器集群,平衡负载

解决方案 »

  1.   

    有点不赞同楼主的说法:首先
    SQL中的每条处理语句都是一个事务,换句话说,你执行100次插入的话,就会进行100次事务处理,而将SQL语句组合成一条的话,就会减少事务处理而在前台组合SQL语句的话,因为前台不存在事务的问题,所以速度当然比数据库中快
    而拼接字符,也不是越大越好,就像你说的,拼接字符串如果长的话,时间花的肯定多.
    其次
    频繁地向数据库发出插入指令,这样肯定会加重服务器的处理负担,造成服务器的I/O拥堵(包括网络的堵塞)
    而如果是花大量时间在程序中去接字符串的话,则千万程序的负担,这时服务器是闲置的.
    所以这是一个负载平衡的问题,就是说要考虑程序中拼多长的字符串,然后就发送到服务器
      

  2.   

    道理我是清楚的,不过连接字符串实在太慢,差不多连接200条记录时就已经很慢了,而且CPU占有率也达到了100%(单线程),好象比以前还要慢,其实刚开始我也认为邹大哥的方法比较好,可实际的结果不太理想,主要还是想让邹大哥想想更好的方法。我现在用ADO的Recordset的AddNew()和UpdateBatch() 试试,不知道运气怎么样,主要是自己对ADO不了解,邹大哥能不能帮我分析一下Recordset的效率问题。现在发现要稍微饿补一下ADO了,如果大家有什么好的资料给我介绍介绍,[email protected]
      

  3.   

    生一格式规范的txt文件
    用bcp导入