之前一直搞ORACLE数据库的,最近有个项目要用SQLSERVER数据库,虽然操作差不多但还是有个问题。
   这个项目需要频繁读取数据并立即插入sql数据库,之前在用oracle时都是读出3000-5000条在内存中,然后提交一次,这样能够增加速度,不知SQLSERVER处理此类问题采用什么机制,如果类似这种情况,我是一条条往SQLSERVER里面插,还是也像ORACLE那样处理,请有经验的朋友不吝赐教,谢谢!

解决方案 »

  1.   

    SQL SERVER中也可以分批插入 一条条的插入用游标  效率不会很高
      

  2.   

    oracle能这么操作吗?怀疑中...sql server是一条条往里面插入数据,不存在批量的数据插入.你理解的也许是把数据暂时放在某个地方,然后一次性插入数据表.
    但是:即使是这样,也是一条条插入表里.
      

  3.   

    我用socket监听接收数据,可能同时有几千个连接,我接收数据插入数据库;请问怎样处理效率会高些;我用tcp协议接收,数据一条条插入数据库不影响效率吗
      

  4.   

    这叫批量提交,也就是说可以将几千条sql语句按一个包的方式传给数据库服务器,服务器将结果返回.省去了一条执行后,再给数据库服务器再穿一条的网络交互.好象ms做不到这一点.这几天正在研究ms sqlserver
      

  5.   

    拼成XML是可以成批插入的,这是个思路
      

  6.   

    你的sqlserver是什么版本的,sqlserver2008有个表值参数TVP可以实现类似功能,之前的版本有变通的处理方法,将你的数据在内存里组成一个结构体数组用binary(N)的形式传入,再循环解析到表变量里,一次性插入。不过你说几千个链接有些太多了吧,最好由中间层服务器分成几十到几百链接的队列。
    sqlsever处理并发连接有推荐的上限的,你可以查询下相关资料。二楼我怎么看着你的图标就想砸显示器呢