如何提升客戶端數據存儲到服務器的速度。。(30分)

  • 主题发起人 主题发起人 mc888
  • 开始时间 开始时间
M

mc888

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi + ado + sql server 保三層應用系統, 客戶的表單(報價單)一般有2-3千行,使用clientDataSet.applyUpdate方式更新數據,會不會顯得很慢????<br><br>另外請教:ADO更新數據到服務器時,是否每筆記錄都會產生一次網絡調用來更新數據???
 
各位大俠,請幫忙,急呀
 
肯定不会慢的,困为更新时,clientDataSet只把有更新的数据通过网络写入服务器,<br>第二个问题: 前台把修改的数据先放到本机内存中,只通过applyUpdate时,才写入数据库,建议你去看看李维的三层的书
 
收到一个陌生的传呼就把我诳到这里来了.<br>很抱歉我没有做过C/S的东西,直接从DeskTop转向B/S.<br>自从10年前离开.dbf,后来做东西就不再往头上套什么数据库的紧箍咒.<br>若用ASP+FSO结合的思路,表单有2-3k行那么多的内容,应该还是以文件上传的方式效率更高些.<br>我不清楚ADO在服务器端操作数据库的机制,我想那些所谓的什么并发、独占、事务之类的新概念无外就是要达到超市收银台那样的效果:<br>同一时间只能服务一位顾客,其他人排队。<br>搞清楚了这些原理,从底层就能解决了。<br>不好意思答非所问。就相当于帮你顶一顶吧。祝你好运!
 
to :ycluo<br>新增單據時,總要把這2K條記錄上傳到服務器吧,,
 
新增單據,我可以一条也不读到工作站上, 又不查询与统计分析
 
不明白你的意思。。
 
新增时, 以前输入数据就不用显示出来,
 
两种情况:<br>1. 你在一个事务里更新了2-3K条记录。而这个更新是没有固定逻辑的,只能由客户端逐条修改(例如你根据客户端的一个数据文件读入内容),最后你一次性提交。这样必定是慢的,无论你用什么方法都会慢。<br><br>2. 你在一个事务里更新了2-3K条记录。但这个更新的逻辑是可以放在服务器端的。例如元旦的时候所有人员虚岁加一之类。这种更新不应该在TClientDataset里改,而应该在应用服务器里做成WebService或者在数据库中做成储存过程
 
传输一条SQL语句需要进行的内容如下<br>探测工作站到服务器连接是否可用<br>连接到服务器<br>提交一条SQL语句<br>返回一个提交结果。<br>基本上都需要与服务器通信3次才能完成一条SQL语句,<br>而在当地缓存存储2000条,也就是把上面的提交一条,改变成提交2000条,与2000条分别提交减少了4000次的与服务器的通信。<br>,我们再来计算一下传输时间,10M网络,1MByte/s 每条SQL语句200个字节,加上TCP 传输打包,就按照500个字节算,那么2000条语句1s 也就传输执行完毕,所以不必要担心,2000条的速度,不过如果是2w 200w一定要分开处理的。
 
后退
顶部