用的三层结构;在实际工作中遇到问题:
  在客户端更改量比较庞大(delta 数据量比较大),当提交修改时ApplyUpdate
时,程序想死机似的,需要好长时间,用户不能接受(说是在我难于接受)。 
  现恳求各位大侠,指点迷津;不胜感激。  我想了一个方法,将Delta分割;但遇到的问题是,利用什么方法,分割后每一份都是一完整的Delta; 同时每次ApplyUpdate 对应一个数据事务,这同 所有的每份Delta 应属于统一个数据事务 矛盾; 难啊。  望大家,不吝赐教。
  
  

解决方案 »

  1.   

    数据多到象死机那可不好优化了,怎么搞都得跳出DELPHI框架自己实现点东西。
    不过有个稍微取巧的办法,客户端改在子线程里提交。这样不会冻结主线程。完事通知主线程,这样改得少。
    分割DELTA很简单,别把UPDATE行给分割为两部分就行了。
      

  2.   

    十分感谢你,你提出的方法挺好的。 对于分割Delta我很感兴趣,不知道你能给出具体的方法吗,还有怎样让多次ApplyUpdates 处于同一个事务;
        再次感谢你。 工作顺利。
      

  3.   

    有个TPACKETDATASET做这个最好。把DELTA 赋值给此对象的DATA,然后循环处理即可。每行可以读UPDATEKIND属性判断出是DELETE,UPDATE或INSERT。只需要注意每个UPDATE有两行,别给拆到两个不同包中就行。
    APPLYUPDATES我没用过,我的方式从来都是自己分析DELTA批量生成SQL后一次提交。
    不过再怎么优化该写10万行数据还是一行也跑不了,这个时间耗在DATASERVER上最多。所以在DATASERVER上优化表也很重要。