如果任何数据库分布在多个服务器(例如Microsoft Sql Server)上,我们如何进行连接或过滤操作。在我的场景中,假设:
请告诉我们如何才能实现这一目标?在哪里可以获得更多详细信息?
答案 0 :(得分:0)
我认为您对SQL群集感到困惑 - 它不允许您跨多个服务器拆分表,而不是将不同的表放在同一服务器上的不同数据库中。群集用于热故障转移和冗余。
但是,我想我知道你在问什么 - 如果你想在不同的物理服务器之间拆分数据库,最简单的方法就是让一个VIEW将这些表统一在一起,然后你可以查询和过滤它。如果您从统一视图中选择某些内容,SQL Server足够智能(只要有适当的索引和统计信息)就可以将查询发送到需要的位置。
例如,假设您有两台服务器 - SERVER1和SERVER2都有一个数据库--DATABASE - 并且每台服务器都有一个表 - TABLE - 其中有一半数据(两台服务器之间,每行都有) 。只需在某个地方创建一个视图 - 服务器或其他完全 - 看起来像这样,然后为SERVER1和SERVER2添加允许SQL Server从远程位置获取数据的链接服务器:
CREATE VIEW SomeView
AS
SELECT *
FROM SERVER1.DATABASE..TABLE
UNION
ALL
SELECT *
FROM SERVER2.DATABASE..TABLE
这样,你有一个地方可以查询,你总是从它所在的服务器上获取数据,而不是自己查询每个服务器。即使您不想拆分单个表,也可以执行此操作 - 只需为要移动的每个表创建一个视图,并让视图检查表实际所在的任何服务器。
如果我错过了您的实际问题,请发表评论并做一些澄清,我们很乐意再添加一些细节。