数据插入-(单条和批量插入)

hu9 2003-03-23 07:11:20
想请教一下:
在有大量录入工作而且要响应速度快的情况下(例如:有十几台机器,直接面对客户收银,每天录入几万条销售记录,以后可能会增加到四、五十台,每天录入上十万条记录)。

因为大部分客户一次可能购买多种商品,有俩种方式实现:
1、录入完客户需买的所有商品,然后将这些记录一次性提交到数据库保存。
2、每录入一条商品,就将这条记录提交到数据库保存。

现在:我和同事各支持一种方式,我支持前者。

我的理由:每条记录保存会增大系统的负荷,因为有十几台机器,收银员同保存的可能性增加,这样会增大并发冲突。而且由于误操作或客户原因,如果要修改前面的商品信息,都要对数据库进行修改,而第一种方式就直接在内存种改了。修改的操作可能占到录入工作的10%。
他的理由:一次性提交对服务器的负荷会瞬间加得比较大,因为要用事务保证数据得一致性。而每次保存一条等于是平衡了负载,而对以前的记录进行修改速度也比较快。
我一想想他也有他的道理,但是我也觉得我自己也有理,谁也说服不了谁。

请各位高手评评理,用哪种方式插入数据比较好。

谢谢!
...全文
349 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cryingboy 2003-03-28
  • 打赏
  • 举报
回复
我支持前者,原因
支持前者:
我相信每顾客一次买东西所要记录的数据量不大,50条记录一般不会超过在实现的时间很容易找个结构就存起来了,还有一次向SQL server写字50条记录,确对比50条一条条写入快得多得多,你可以做个测试写50,和写1条记录应该没有多大的差异。还有就是无论是一下起写还是一条一条的写在本地都要建立一个临时表,因为收银你肯定要打印收银条(不会收一条打一条吧),要计算总额。
反对后者:“ 他的理由:一次性提交对服务器的负荷会瞬间加得比较大,因为要用事务保证数据得一致性。而每次保存一条等于是平衡了负载,而对以前的记录进行修改速度也比较快。”我想如果有40-50台一起工作,把每一台的写入操作都可以看成原来的一条记录操作来分析问题,再来看负载的平衡,同时一条一条的写发生时间是不定的,同样一起写50台一起写发生的时间也是不定的,一起写的性能可要好一些。
hu9 2003-03-28
  • 打赏
  • 举报
回复
up
hu9 2003-03-28
  • 打赏
  • 举报
回复
up
vikingleo 2003-03-26
  • 打赏
  • 举报
回复
我觉得在本地先放一个临时表,然后逐条写入临时表,然后在一次性提交.
huntsman 2003-03-24
  • 打赏
  • 举报
回复
我也支持前面的方法,这样数据可能更安全
cpflj 2003-03-24
  • 打赏
  • 举报
回复
俺支持前者!!!一次性插入肯定更安全.
HawaiiLeo 2003-03-24
  • 打赏
  • 举报
回复
对啊,说出更好的理由来反驳楼主的同事啊。
kingcky 2003-03-24
  • 打赏
  • 举报
回复
大虾们,你们也要说说其中道理才行啊。
yoki 2003-03-24
  • 打赏
  • 举报
回复
我支持前者
hu9 2003-03-24
  • 打赏
  • 举报
回复
cpflj(飞鹏)和huntsman()

为什么会更安全呢?

我想了想:
有一种情况比较麻烦点。如:某个客户购买了10种商品,操作员录入到第N(N<10)条时,Down机了,正好客户有的商品不要了或有的商品数量不要那么多了,在这种情况下,可能要冲掉前面的记录(需要修改的记录),然后再按客户需要录入。

有没有更好的建议呢?比如从性能上的。。。

谢谢!
happydreamer 2003-03-23
  • 打赏
  • 举报
回复
1 比较好 全部完成再提交
caiyunxia 2003-03-23
  • 打赏
  • 举报
回复
up
pengdali 2003-03-23
  • 打赏
  • 举报
回复
1、录入完客户需买的所有商品,然后将这些记录一次性提交到数据库保存。

肯定是前者了!
hu9 2003-03-23
  • 打赏
  • 举报
回复
还有:
数据库是:Ms Sql Server2000
开发语言是:VB6

22,209

社区成员

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

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