sql一次性插入多条记录的问题

chmdh421360732 2013-03-26 02:42:30
insert into table(a,b,c) select a1,b1,c1 from table1 where d1 in(125,456,864,620,789)
像上面的插入多条数据性能如何,还有谁推荐个批量插入数据库多条数据的其它的方法,提示:一次性最多插入50条数据
...全文
175 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
starseeker7 2013-03-27
  • 打赏
  • 举报
回复
跟WEB版没有啥关系吧? 数据还是要先到服务器端,再将数据库插入数据啊 若你真的觉得有性能问题,那肯定是 “d1 in(125,456,864,620,789)”要么存在索引缺失,要么更改in写法为exists。 先出了性能问题再说吧。你这个数据量若有性能都不在插入上,在查询上。发现性能问题,你用sqlprofiler捕捉下来。再贴执行计划上来看看了。
chmdh421360732 2013-03-26
  • 打赏
  • 举报
回复
引用 4 楼 Ivy_zheng 的回复:
错题要做标记吧,把标记错的查出来加入就行,用太多的常数分析比较慢,常数少时才快。 只有50条记录,真的不必考虑优化了,到10万级再考虑吧。
是web版的,还要和用户绑定,不能在题上做标记,不是数据库里有50条记录,是一次最多插入50条数据
七不语v 2013-03-26
  • 打赏
  • 举报
回复
楼上几位正解。这样最快了。数据少不用考虑性能。
最后一只恐龙 2013-03-26
  • 打赏
  • 举报
回复
错题要做标记吧,把标记错的查出来加入就行,用太多的常数分析比较慢,常数少时才快。 只有50条记录,真的不必考虑优化了,到10万级再考虑吧。
chmdh421360732 2013-03-26
  • 打赏
  • 举报
回复
引用 1 楼 Ivy_zheng 的回复:
排除你写的Select语句的效率问题,这样插入就是效率最高的了,因为DBMS自己就搞定了,不需要与外部交换大量的数据。
其实环境是这样的,一个在线考试系统,学生把全部试题答完题后交卷,判卷后将错题加入错题本这个表中,由于传入存储过程的是题目的id,又是答错的可能是好几道题,所以只能用这个select语句了,不知道是否还有更好的方法实现这个功能,谢谢
chuanzhang5687 2013-03-26
  • 打赏
  • 举报
回复
五十条数据,那就别考虑性能了,你这个写法就行
最后一只恐龙 2013-03-26
  • 打赏
  • 举报
回复
排除你写的Select语句的效率问题,这样插入就是效率最高的了,因为DBMS自己就搞定了,不需要与外部交换大量的数据。

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧