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写的,好像这里也有吧。