Foxtable(狐表)用户栏目专家坐堂 → 请教【提取表A not in 表B的行】的性能问题,表B-SQLGetComboListString后再用表A-SQLSelect (Not in) 的方法是正解吗?


  共有2033人关注过本帖平板打印复制链接

主题:请教【提取表A not in 表B的行】的性能问题,表B-SQLGetComboListString后再用表A-SQLSelect (Not in) 的方法是正解吗?

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/1/21 9:41:00 [只看该作者]

1、使用事务,如果不喜欢出错后一次性回滚全部,可以把上传的数据分批处理,比如一天要传1000个行,分成10次,每次100行,这100行在一个事务中,这样出错就只回滚100行。

2、如果上传后表B数据都是新增的可以考虑使用SqlBulkCopy:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=91737

3、2个表都增加一个时间列,所有新增的行都记录新增时的服务器时间,表B增加一个标记列,标记是哪个客户端上传的数据。
那么客户端在上传表A数据的时候只需要上传比之前本客户端上传的数据时间晚的数据即可,无需通过“ItemID not in”查询再上传。

4、数据同步可以做到一个独立的项目中,在服务器后台定时上传,或者手工通知后上传。这样就不会存在普通操作人员认为软件假死的现象了

 回到顶部