如何解决网络传输大数据量的问题?这样做合理吗?(100分)

  • 主题发起人 主题发起人 ZRWeng
  • 开始时间 开始时间
Z

ZRWeng

Unregistered / Unconfirmed
GUEST, unregistred user!
要实现操作是:
当检测到网络畅通时,能及时将本地数据库中符合条件的
所有记录,添加到后端SQL数据库中。

为了不影响操作界面,我用一个线程用来将前端
数据添加到后端数据库SQL Server(用ADOConnction连接
后端SQL Server数据库,在前端本地数据库查询出符合条件的所有记录,
然后Append到后端SQL Server),当数据量较大时,前端(>=4台计算机)
~~~~~~~~~~~~~~
同时往后端数据库Append数据,这样造成传输慢,网络拥挤
有些数据还不能Append到后台数据库中 .

想请教各位是如何解决这样的问题?这样做合理吗?
期盼各位给我答疑解惑。
 
首先,如果用了transaction,则每次的纪录数不要太多
其次,建立到数据库服务器的网络连接将消耗大量CPU时间,所以应该尽量不要断开连接
还有,你的数据库结构是否合理
 
这种操作应当说不上合理不合理,只要你保证你传输的数据都是必须传输的.现在的网络比如
100M或者1000M网应当在速度上不成问题.如果感觉慢的话,可能是ado的问题,而不是网络.
 
to G5Studio:
>>如果用了transaction,则每次的纪录数不要太多
为什么呢?
to windbell
数据都是必须传输的。“是ado的问题”不明白呀。
 
老弟用的是什么前端,2层还是3层啊,我在3层情况下,50多个用户同时用也没问题啊。
车站售票系统,SQL SERVER服务器,MIDAS,TCP/IP协议。
 
如果用了transaction,单次transaction地记录数太多,
可能会造成SQL死锁,原来SYBASE公司的工程师给我的建议就是小批量,多批次提交
如果真的是死锁的话,你这个问题就好办了

如果你真的觉得慢的话(不是因为数据量大而慢),我说的问题和ADO本身的效率可能是你思考的重点

 
to haczcg:
大哥,小于10台还用不到3层吧。 :)
to G5Studio
那么如何小批量,多批次提交数据呢?
是这样吗:
比如有1000条记录,每次提交100条,要提交10次。
查询出符合前100条数据 Select top 100 from tableName where 条件
然后开始事务,Append完这100条记录后,确认事务。如果还有记录,则继续开始事务.
 
踢一脚》》》
 
差不多哦,越走越近了
 
多人接受答案了。
 
后退
顶部