Sql server表分区 - 我可以跨服务器分发表吗?

时间:2010-07-16 15:09:46

标签: sql-server sql-server-2008-r2

我读过许多网站,指南等;还要注意我无法测试我要问的是因为没有两台电脑。

表分区只是意味着表在逻辑上是分开的,这样特定的分区只能通过减少负载并允许并行来处理特定的分区。

有人提到分区位于不同的硬盘上,但从来没有提到分区在不同的计算机上。

这可能吗?

例如,id <50000的数据将存储在一台计算机上,其余的数据将存储在另一台计算机上?

2 个答案:

答案 0 :(得分:3)

SQL 2005中引入的分区函数不支持此AFAIK

当您创建联合分区视图时,您必须使用链接服务器来执行此操作

服务器1上的示例

create view MyView
as
Select * from Database.dbo.Table1
union all
Select * from Server2.Database.dbo.Table1
服务器2上的

create view MyView
as
Select * from Database.dbo.Table1
union all
Select * from Server1.Database.dbo.Table1

在每台服务器上,您将拥有此视图...但是(但这很大)如果其中一台服务器关闭,则视图将无法在所有服务器上使用

另请查看此链接:http://blogs.msdn.com/b/sqlcat/archive/2007/06/20/distributed-partitioned-views-federated-databases-lessons-learned.aspx

答案 1 :(得分:1)

跨计算机分发不是标准SQL Server的内置功能。 Partitioning并没有真正减少负载,也没有为索引做任何特别好的并行操作。它可以更轻松地管理交换分区。分区可以存储在不同的文件组中,以便于存储管理。

现在有一个SQL Server Parallel Data Warehouse设备产品(来自收购DATAllegro)。