如果任何数据库跨多个服务器(例如。Microsoft Sql Server),我们如何加入或过滤操作。在我的场景中,假设:
请让我知道我们如何才能做到这一点,我可以从哪里得到更多的细节?
发布于 2010-05-24 18:39:22
我认为您对SQL集群感到困惑-它不允许您在多个服务器上拆分表,就像在同一台服务器上的不同数据库中放置不同的表一样。聚类用于热故障转移和冗余。
然而,我想我明白了你的要求--如果你想在不同的物理服务器之间分割一个数据库,最简单的方法可能是在一个地方拥有一个将这些表统一在一起的视图,然后你可以查询和过滤它。SQL Server是足够聪明的(只要有索引和统计信息来做出决策),如果您从统一视图中选择某项内容,则可以将查询发送到需要去的地方。
例如,假设您有两台服务器-- SERVER1和SERVER2,它们都有一个数据库--数据库--每个服务器都有一个表--其中有一半的数据(在两台服务器之间,每一行都有)。只需在某个地方创建一个类似于此的视图--要么是服务器,要么是其他的视图,然后为SERVER1和SERVER2添加链接服务器,这些服务器允许server从远程位置获取数据:
CREATE VIEW SomeView
AS
SELECT *
FROM SERVER1.DATABASE..TABLE
UNION
ALL
SELECT *
FROM SERVER2.DATABASE..TABLE这样,您就有一个地方可以查询,并且总是从它所在的任何服务器获取数据,而不是单独查询每个服务器。即使不想分割单个表,也可以这样做--只需为要移动的每个表创建一个视图,并让视图检查该表实际位于的任何服务器。
如果我错过了你的实际问题,请留下评论和一些澄清,我很高兴补充一些更多的细节。
https://stackoverflow.com/questions/2898650
复制相似问题