扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
2007年4月7日
关键字: SQL Server 数据库
列表D的脚本在每台服务器上创建SalesHistory表,并给每个表加载数据。我们为每个表中的SaleID字段创建一个“检查”约束,这个约束用来确保只有确定的SaleID值才能进入SalesHistroy表中。
这个字段将作为我们的分区主键,当我们查询分布式分区视图时,它可以使得查询优化器来决定是从本地表还是远程表中获得数据。
现在需要赋予读者SQL登录的权限,来对SalesHistoty表中的元数据进行插入、更新、删除和浏览等操作。在每台服务器上执行列表E中的脚本即可。
列表F中的脚本在每台服务器上创建分布式分区视图。需要注意的是在服务器A上创建的视图通过查询本地SalesHistory表,然后将结果集聚集到服务器B上的SalesHistoty表中。
优点
使得查询优化器可以很容易的知道使用哪个服务器来查询,在分布式环境中利用分区主键可以大大提高性能。你可以通过查看当你依靠该视图运行查询时的执行计划表来检验一下。
对于需要从远程服务器返回记录的查询,它会返回所有记录,但是当仅用本地数据就可以满足查询时,就根本不需要查询远程服务器。
当你需要插入、更新或删除数据时,又有什么帮助呢?实际上,它以同样的方式给我们提供便利,因为分区键是数据表的主键(至少它总是主键的一部分)。
SQL Server总是知道该在何处插入新记录并且在本地或远程执行相应的动作。这同样适用于更新和删除,SQL Server使用分区键来更新和删除数据,这也是为什么我将本文前面定义的权限赋予用户的原因。
这样,用户就可以在需要的时候对SalesHistory表进行读写。因为该视图存在于每个服务器上,我只要在应用层就可以执行视图上的操作,所以应用层不用知道潜在数据表的结构,只需要关心更新视图就可以。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者