2007-04-10

SQL Server分布式分区视图分解数据表

来源: builder.com.cn 作者:builder.com.cn 评论 0 条
 

分布式分区视图可以将来自一个或多个SQL Server数据库中的数据连接起来。当开发一个水平分区数据库环境时,你可以使用分布式分区视图将来自不同服务器的分区表连接起来,使得这些数据看起来像来自同一个服务器。

你可以设计这些视图,因此,假如你的潜在数据表结构设计合理的话,查询优化器就可以知道从那个数据表得到查询需要的数据,从而加速运行。一个设计合理的分布式分区视图还可以实现更新、插入和删除。我们将在本文的下一部分深入探讨它是如何实现这样操作的。

示例

本例中,我们假设SalesHistory表非常大,假如水平分割表中的各行记录到不同的服务器上,这将对我们很有利。每个服务器上的SalesHistory表的表结构是一样的,不过,一台服务器上存放该国东部地区的销售信息,而另外一台存放该国西部地区的销售信息。

我们根据Region(地区)字段和SaleID 来区分表中的各条记录。其中SaleID字段是整型数据域,我们为该国不同的地区设定了不同的SaleID。

这个字段对于设计概念来说非常重要,因为这是我们用来作为分区键值字段。(注重:要在缩小场景中进行表的设计,这一点极其重要,因为这样表中的各行是唯一的,从而可区别于其它服务器上的表。)这个字段集合是分区键。

设计很多SaleHistory表,根据所在的表SaleID始终是唯一可区别的。我们可以通过CHECK约束来实现这一点。

我们将使用两个独立的SQL Server实例,对于本例,这两个实例在同一台机器上。服务器的名字叫Chapman,实例分别称为实例A和实例B。这两个实例都是SQL Server 2005开发版,答应远程连接以及Windows和SQL Server认证。

使用脚本创建SalesDB数据库,设置每台服务器的lazy schema validation选项,使用该选项在SQL Server中通过确保在确实需要服务器上的数据时才进行服务器链接请求来提高性能。

列表A中的脚本需要在两个数据库实例上运行。列表B用来创建SalesDB数据库中的读者登录及用户,该脚本也需要在两个数据库实例上运行。

列表A: 

CREATE DATABASE SalesDB;



EXECUTE sp_serveroption 

@server = 'CHAPMANServerA,

@optname = 'lazy schema validation',@optvalue = 'true'

列表B:

CREATE LOGIN reader WITH Password = '654asod3e**!!'

USE SalesDB

CREATE USER reader FROM LOGIN reader


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:教你在SQL Server中由原子建立分子查询  
下一篇:运行SQL Server的计算机间移动数据库
    评论加载中…
列表C:

ServerA:

EXECUTE sp_addlinkedserver

'CHAPMANServerB',

'SQL Server'



EXEC sp_addlinkedsrvlogin 'CHAPMANServerB', 

'false',NULL,'reader','654asod3e**!!'

ServerB:

EXEC sp_addlinkedserver

'CHAPMANServerA',

'SQL Server'



EXEC sp_addlinkedsrvlogin 'CHAPMANServerA', 

'false',NULL,'reader','654asod3e**!!'
共2页: 上一页 1 [2] 下一页
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号