SQL Server 复制(跨数据库查询和约束)

Posted

技术标签:

【中文标题】SQL Server 复制(跨数据库查询和约束)【英文标题】:SQL Server Replication (cross-database queries & constraints) 【发布时间】:2009-11-09 18:54:02 【问题描述】:

我们希望将数据从一个数据库复制到其他几个数据库(在另一台服务器上)。将这些表复制到另一台服务器上的共享数据库并让我们的跨数据库查询引用共享数据库是否有意义......或者复制到另一台服务器上的每个单独数据库是否更有意义?跨数据库连接会影响性能吗?跨数据库约束会按预期工作吗?

复制一次到共享数据库将有助于复制性能...我正在尝试评估由于跨数据库查询或约束而导致的任何性能损失是否值得。

编辑:在 sql server 中似乎无法实现跨数据库约束?如果这是真的,那么我们将不得不复制到每个数据库

【问题讨论】:

【参考方案1】:

跨数据库查询比在同一个数据库中查询要慢一些。外键仅在同一个数据库中起作用。通常的方法是在每个数据库中创建一个单独的模式(如 ETL),然后将这些表复制到该模式。在数据集市之间复制维度表时,实际上经常使用这种方法。

当使用跨数据库方法时,使用触发器来实现约束——可能会很慢而且很复杂。 根据您的应用程序,您可以将外键实现为“仅逻辑”并运行定期“查找孤儿”查询以处理参照完整性。

【讨论】:

以上是关于SQL Server 复制(跨数据库查询和约束)的主要内容,如果未能解决你的问题,请参考以下文章

sql server2008 跨服务器之间复制表数据

SQL server基础知识(表操作数据约束多表链接查询)

sqlserver数据库里怎么查找一个表里的约束,要查出 约束名、列名、约束类型?用sql语句查询

sql server 查询约束键在哪个表的脚本

SQL Server 跨数据库查询

SQL Server 跨数据库查询