问题描述
我现在的情况是:用存储过程插入数据,底层方法是每次插入都打开、关闭数据库。现在需要插入大量条数据,到底是读一条(网页抓取的)插一条,还是读到一个List中,再统一插入呢?哪样做性能比较好?另外恳请讲下大致原理?
解决方案
解决方案二:
使用存储过程插入,然后。大数量,可以分块插入,比如5秒之后插入多少条数据。时间间隔来插入,不要一次性插入!
解决方案三:
如果你是每次插入都打开、关闭数据库批次插入数据性能会更好
解决方案四:
批次插入是指?一次插入一批?
解决方案五:
存到一个list再统一插入比较好
解决方案六:
储到一个list当中,但每次插入还是一条条插入啊!
解决方案七:
引用5楼yjxsf8313的回复:
储到一个list当中,但每次插入还是一条条插入啊!
sqlserver2008一次可以插入多个insertintoa(id)values(1),(2),(3);
解决方案八:
stringcmd="insert...............;insert................;"
解决方案九:
引用楼主yjxsf8313的回复:
我现在的情况是:用存储过程插入数据,底层方法是每次插入都打开、关闭数据库。现在需要插入大量条数据,到底是读一条(网页抓取的)插一条,还是读到一个List中,再统一插入呢?哪样做性能比较好?另外恳请讲下大致原理?
直接构建一个批次的sql语句完了打开连接后一起执行
解决方案十:
如果目标数据库是sqlserver2008还可以这样写;insert。。。。values(........),(。。。。。。。。。。。),(。。。。。。。)
解决方案十一:
批量当然性能更优,同2楼:批量插入要分块,比如一次插入2000条,提交一次。
解决方案十二:
单纯插入的话用SqlBulkCopy试试
解决方案十三:
先丢到文本文件里面,然后一次性导入
解决方案十四:
引用8楼yanbuodiao的回复:
引用楼主yjxsf8313的回复:我现在的情况是:用存储过程插入数据,底层方法是每次插入都打开、关闭数据库。现在需要插入大量条数据,到底是读一条(网页抓取的)插一条,还是读到一个List中,再统一插入呢?哪样做性能比较好?另外恳请讲下大致原理?直接构建一个批次的sql语句完了打开连接后一起执行
up
解决方案十五:
引用5楼yjxsf8313的回复:
储到一个list当中,但每次插入还是一条条插入啊!
不是啊,可能上面的人没讲清楚,需要用到“sql事务处理”http://www.baidu.com/s?wd=sqltransaction&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&oq=sqltrans&rsp=0&f=3&inputT=3391百度sqltransactionhttp://zhidao.baidu.com/question/93887018.html参考这个,意思是批量执行4条sql语句,要么都执行成功,执行失败则回滚。
解决方案:
依照业务逻辑再考虑速度的定义不唯一啊.
解决方案:
该回复于2012-03-13 15:05:16被版主删除