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

SQL Server 2000中的DPV?
最近在看SQL   Server   的   scalability方面的资料,也提了一个问题,可惜回答的人不多啊。http://community.csdn.net/Expert/TopicView.asp?id=5726681

大部分资料中都提及了DPV(Distributed   Partition   View)来实现Federated   Database,一般做法,使用水平分割,在每个DB上都建立Table,放各自的数据,然后创建View,使用UNION   ALL来获取其它DB上的数据,对于需要访问DB的Application来说,需要一个Data   Routing过程,也就是在执行SQL   statement之前,先判断所访问的DB应该是哪个,然后在该DB上执行SQL   statement,这儿,我有一些疑惑关于SQL   statement的执行对象。

1)   SQL   statement是直接访问DB上的table嘛?如果这样,为什么每个DB都需要创建View
2)   SQL   statement访问DB上的View,是否对于DPV来说,SQL   Statement从来都是只访问某个DB上的View,不单独直接访问DB?
3)   Application需要实现Data   Routing,那么DPV的透明性体现在哪里?
4)   即然不管怎么样,都需要执行Data   Routing,那能否不使用DPV,直接分割数据并使用Data   Routing,Application直接访问DB中的Table呢?毕竟,DPV限制太多

请哪位熟悉的人指点一下,数据库特别是Enterprise级别的,资料太少了。

------解决方案--------------------
1、每个DB创建的视图是有区别的,有服务器区分。
2、是只访问VIEW,VIEW里定向到哪个服务器的。
3、我怎么记得不用程序里实现啊,直接DPV可以实现定向啊。
4、应该可以吧,但是VIEW的目的还可以实现数据规范性,当然,程序也能实现。
建议你看下<SQLSERVER2000宝典>,PAUL NIELSON写的,里面有联合服务器的方法和说明。
或者是<SQLSERVER2000 存储过程和XML>,DEJAN SUNDERIC写的,好像这里也有吧。