sql-server – 两个不同数据库中两个表之间的连接有什么问题?

前端之家收集整理的这篇文章主要介绍了sql-server – 两个不同数据库中两个表之间的连接有什么问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对您从不同数据库加入两个或多个表的陷阱感到兴趣.我会举个例子.

假设表Table1位于DatabaseA数据库中,Table2位于DatabaseB中.
假设我有一个看法,在DatabaseA中,从Table1中提取一些数据,并在DatabaseA中提取一些其他表.

该视图用于将数据推送到另一个数据库,让我们将它们称为DatabaseC.

如果我需要表2中的一些数据,我的本能就是直接在这个视图中加入Table2,就像这个table1的内部连接DatabaseB..table2在[some columns]

这样做是非常简单快捷的,但是我头脑里有一个.叨的声音,不断地告诉我不要这样做.我的担心是无法根据表2跟踪所有的对象,所以如果我在那里改变一些东西,我必须非常的小心,记得我使用这个表的任何地方.所以,像这个视图(和两个数据库)的SRP类似,因为这个视图可以从两个不同的动作(在两个不同的数据库上执行:更改Table1或更改Table2)

我对你的意见很感兴趣这是个好主意吗?这种方法的问题是什么(性能明智,维护明智等等),如果你有一个现实世界的经验,这种做法或者是一个大错误,或者是一个救命的人.

P.S:我在google和SO上搜索过这个主题,但找不到与此相关的任何内容.我会很乐意从SO用户那里得到反对票,重复的问题和其他“谴责”,只是对这个问题有不同看法.

P.P.S:我正在使用sql Server 2005.

谢谢,希望我自己清楚:)

解决方法

如果它们在同一个服务器上,则从单独的数据库中拉出真正的问题.实际上,您可能希望将它们分开,以获得充分的理由.例如,如果您有从文件导入的事务表和查找表的组合.事务数据需要完全恢复和频繁的事务日志备份才能正确还原,查找数据不会受益于简单恢复模式下的数据库.

我们有许多不同的数据库,我们的应用程序使用,我们跨查询数据库所有的时间.只要索引正确完成,就没有明显的性能差异.最大的潜在问题是数据完整性,因为您无法跨数据库设置外键.如果需要,这可以在触发器中处理.

现在,当数据库位于不同的服务器上时,可能会出现性能问题,数据更加复杂.

猜你在找的MsSQL相关文章