百万条记录的表中插入数据的问题?

qi7 2005-08-19 07:10:25
表有主键,所以不能写入重复主键的记录:
1.直接插入;
2.查询是否存在主键相同的记录,如果不存在则插入,如果存在则退出;
上面的2种方式哪个用的时间短?
...全文
182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
缪军 2005-08-20
  • 打赏
  • 举报
回复
我是用ADO做的连接, 我发现就算和数据库的连接断开了, ado照样连接正常;
楼主能说明白点吗?
缪军 2005-08-20
  • 打赏
  • 举报
回复
无论主键是自动编号还是别的,或者是唯一索引,服务器都进行维护
重复记录是不可能添加成功的,我觉得只要在客户端捕获这种错误
然后根据自己的需要处理或是忽略就可以了,我就是这样做的
一是服务器的维护始终是在后台运行的,不利用是一种浪费
二是作为安全的代码,错误处理也必须要写得,只不过多写一行
Case或Catch而已,无论从代码量和执行效率上都比较好
qi7 2005-08-20
  • 打赏
  • 举报
回复
主键是 编号+时间 构成的;
主要是想缩短每个数据的处理时间; 我是用线程解析数据,然后入库的. 在日志中发现, 有的数据从开始处理到处理结束最长可能达到10s, 而正常情况下不到1s应该处理完毕.

还想问一下,怎么判断程序和数据库的连接是否正常?
我是用ADO做的连接, 我发现就算和数据库的连接断开了, ado照样连接正常;
请大家回答,我可以加分.
iwl 2005-08-20
  • 打赏
  • 举报
回复
看你的主键是怎么样构成的,如果是自动编号,newid()就不会重复,如果是有一定的规则,则要检查
缪军 2005-08-19
  • 打赏
  • 举报
回复
楼主的情况在我的项目中也有,我用的
是第一种方法,在客户端调用存储过程逐个添加
记录,错误处理部分只忽略主键(或者唯一索引)
重复的错误号
我感觉这样是利用服务器自维护功能实现的
应该比另外做查询判断来得快,无论你要添加的
记录是否满足约束条件,服务器总是要进行这样的
维护步骤的,它实现并不知道要插入的数据是否合法
就像一个安全的函数无论如何都要对输入的参数进行
验证一样
个人拙见,望专家指正
zlp321002 2005-08-19
  • 打赏
  • 举报
回复
--方式2是必须的!!要考虑主键相同的记录!
MorningTea 2005-08-19
  • 打赏
  • 举报
回复
1.直接插入;--遇到重复的会中断你的程序,往下如果不是重复的可能也跑不下去啦
2.查询是否存在主键相同的记录,如果不存在则插入,如果存在则退出;
上面的2种方式哪个用的时间短?--因为有主键,所以呢搜寻速度会加快,所以判断时间不会太长,倒是因为主键的存在影响更新,插入,这个第一种方法也有!
netcoder 2005-08-19
  • 打赏
  • 举报
回复
具体说说怎么回事情吧

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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