大数据量跨系统人员信息同步比较高效方案

 

《大数据量跨系统人员信息同步比较高效方案》By landray LD 2011-09-01

背景:

1、  用户有近3w的用户信息在其他系统中需要同步到ad目录中去

2、  原系统没有提供修改时间,只能提供即时的全人员信息表

思路:

1、  我们需要每次都比较3w用户的变更情况,得出1张变化差异表

2、  根据差异表修改ad目录

方案(只介绍比较用户得到差异表):

1、  建立中间表、临时表、历史表和差异表

2、  取信息表到中间临时表,另外再增加2列,1列是整合人员的唯一编号,2列是加总所有的需要变更的信息的列

3、  临时表与历史表分别进行新增、删除、变更的比较,产生的差异数据写入到差异表中

4、  同步成功后把临时表数据完全写入历史表,备下次进行比较

测试效果:

Ibm X61上win7 64位系统装sql server 2005,运行1.6w人员信息运行完成存储过程只需要几秒!

 

附录1:创建几个表的sql

drop table [dbo].[union_active_directory]

go

 

CREATE TABLE [dbo].[union_active_directory] (

  [source] varchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [user_id] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [user_nm] varchar(40) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [area_id] varchar(20) COLLATE Chinese_PRC_CI_AS NULL,

  [area_nm] varchar(250) COLLATE Chinese_PRC_CI_AS NULL,

  [company_id] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [company_nm] varchar(100) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [postname] varchar(250) COLLATE Chinese_PRC_CI_AS NULL,

  [brand] varchar(250) COLLATE Chinese_PRC_CI_AS NULL,

  [mobile] varchar(40) COLLATE Chinese_PRC_CI_AS NULL,

  [telephone] varchar(40) COLLATE Chinese_PRC_CI_AS NULL,

  [email] varchar(100) COLLATE Chinese_PRC_CI_AS NULL,

  [memo] varchar(250) COLLATE Chinese_PRC_CI_AS NULL,

  [lastmodify] datetime NULL,

  [mark] varchar(10) COLLATE Chinese_PRC_CI_AS NULL,

  CONSTRAINT [PK_union_active_directory] PRIMARY KEY CLUSTERED ([source], [user_id], [company_id])

)

ON [PRIMARY]

go

 

drop table [dbo].[union_active_difference]

go

 

CREATE TABLE [dbo].[union_active_difference] (

  [source] varchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [unique_id] varchar(40) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [user_nm] varchar(40) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [area_id] varchar(20) COLLATE Chinese_PRC_CI_AS NULL,

  [area_nm] varchar(250) COLLATE Chinese_PRC_CI_AS NULL,

  [company_unid] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [company_nm] varchar(100) COLLATE Chinese_PRC_CI_AS NOT NULL,

  [postname] varchar(250) COLLATE Chinese_PRC_CI_AS N

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值