【发布时间】:2014-01-09 21:04:12
【问题描述】:
我们有一个 SQL Server 2008 数据库。数据库需要从 3 个独立的服务器复制数据。复制数据后,我们进行数据转换(反规范化等)
使用在夜间小窗口(3 小时)中运行的 SSIS 包复制数据。例如:
- 作业 A 在 1-2 之间运行
- 工作 B 2-3
- 工作4 2-3
这会导致一些问题:
- 随着数据的增长,作业 A 无法在 2 之前完成,作业 B 启动并失败
- 有时,作业会在维护窗口之外运行
- 每个数据复制作业都会创建一些其他 SQL 作业
- 生成的 SQL 作业发生冲突,导致错误
我正在考虑解决此问题的一种方法是 - 使用单独的临时数据库,它将整天复制数据,然后设置 SQL 复制到生产数据库。
我们还需要一个排队系统,以便作业可以具有优先级、依赖关系等,因为有些作业是顺序的,有些可以并行运行。
还有其他更好的方法来解决这个问题吗?对于我们的选项的任何帮助将不胜感激。
【问题讨论】:
-
你可能想要实现某种代理链 - dba.stackexchange.com/questions/3605/…
-
我同意小野仙台。为了让工作更快——如果服务器核心允许——尽可能使用并行:technet.microsoft.com/en-us/library/dd795221(v=sql.100).aspx
标签: .net sql-server architecture ssis etl