日期:2014-05-18  浏览次数:20602 次

sqlserver分布式数据库概念性问题
为每个服务器按原始数据库中的表水平分区若干个成员表,请问这个成员表是不是根据原始表按键值水平分区后的部分纪录的组合,而分布式视图是不是取自原始表中的所有纪录。

------解决方案--------------------
水平分区的成员表就是原始表的一部分,至于按什么进行分区完全决定于你的分区视图(如果定义了的话)或者你的应用处理逻辑(如果没有定义分区视图)。
分布式视图就是取自原始表的所有记录(视图中一般通过union 在所有成员服务器中获取数据,如果水平分区定义的好的话,可以使得视图尽量少的访问成员服务器从而提高性能),并且所有成员服务器的分区视图得到的结果应该一致,前提是你的分区视图是这样定义的,并且也应该这样定义。
如果是可更新的分区视图,在定义视图的触发器时也要按照定义的逻辑编写更新策略。
总而言之,水平分区一般建议采用分区视图,分区视图的定义决定了所有的一切,SQL SERVER 只是提供了一个通道,该怎么干还是你自己的事。