关于多台服务器向一台服务器传递数据解决方案

longyangyxm 2010-06-25 04:34:22
本人数据库管理知识相当匮乏
希望大家能帮帮我

现在用 A,B,C 3个子数据库 D为汇总数据库

A,B,C每天用作业调度使用链接服务器向 D数据库 增删改查同张表

我想的问题
1.死锁,如果不是按循序来或时间分配不均A,B,C同时增删改查(并且有很多汇总表)。
2.远程访问的速度还真有点慢(首先要用A数据库与D数据进行数据比较得出操作)
3000条左右内部服务器间更新要4秒左右

UPDATE TS_CustomerInfo
SET MingCheng = TCustomerInfo.FCustomerName,
BianMa = TCustomerInfo.FCustomerCoding
FROM [192.168.1.18].Test.BaseInfo.KeHu AS TS_CustomerInfo,TCustomerInfo
WHERE TCustomerInfo.FCustomerID = TS_CustomerInfo.KeHuID
AND TS_CustomerInfo.ChuBanSheID = 1

ChuBanSheID 与 KeHuID 是AK
KeHuID 没建索引 我看实际执行计划
远程的扫描开销是占据的了80%(没有详细计划了)


Service Broker是否适应这个场景, 哪位能详细提供点资料也可以 谢谢了
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q315054403 2010-06-25
  • 打赏
  • 举报
回复
改为增量数据检测更改,那么定时仅需要判断一个周期<比如每天或每小时>发生更改的数据,可定制方案实现
有偿支持
longyangyxm 2010-06-25
  • 打赏
  • 举报
回复


UPDATE TS_CustomerInfo
SET MingCheng = TCustomerInfo.FCustomerName,
BianMa = TCustomerInfo.FCustomerCoding
FROM OPENQUERY([192.168.1.18], 'SELECT * FROM Test.BaseInfo.KeHu WHERE ChuBanSheID=1 ') AS TS_CustomerInfo,
TCustomerInfo
WHERE TCustomerInfo.FCustomerID = TS_CustomerInfo.KeHuID


我这样改了下反而远程扫描变到了88%开销了
时间上没有差别 基本是4秒吧
longyangyxm 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xys_777 的回复:]
远程查询改成openquery能提高40%-50%
[/Quote]

UPDATE TS_CustomerInfo
SET MingCheng = TCustomerInfo.FCustomerName,
BianMa = TCustomerInfo.FCustomerCoding
FROM [192.168.1.18].Test.BaseInfo.KeHu AS TS_CustomerInfo,TCustomerInfo
WHERE TCustomerInfo.FCustomerID = TS_CustomerInfo.KeHuID
AND TS_CustomerInfo.ChuBanSheID = 1

这种语句怎么变 MSDN 都是进行单表操作
longyangyxm 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xys_777 的回复:]
远程查询改成openquery能提高40%-50%
[/Quote]
非常谢谢 找资料看看
永生天地 2010-06-25
  • 打赏
  • 举报
回复
远程查询改成openquery能提高40%-50%
老黎 2010-06-25
  • 打赏
  • 举报
回复
可以用差异备份
第一次同步是先做一个完整备份
以后分服务器每天定时先总服务器传递差异日志
然后在总服务器中重做日志

Sharon_liu 2010-06-25
  • 打赏
  • 举报
回复
帮顶,就不胡说了。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧