SQL Server横向扩展:设计,实现与维护(2)- 分布式分区视图
为了使得朋友们对分布式分区视图有个概念,也为了方便后面的内容展开,我们先看看下面一个图:
讲述分布式分区视图之前,很有必要将之与我们常常熟悉的分区表和索引进行区别。
首先,分布式分区视图是一个横向扩展的方案(Scale out),而分区表却是一个纵向扩展的方案(Scale up)。通过使用分布式分区视图,我们可以把数据放在多个数据库实例(或者服务器)上面;使用分区表,我们可以把数据库中的数据放在同一服务器上的不同的物理文件上。分区表中的分区都在同一个数据库中,而且里面的分区不能跨数据库或者跨服务器。
分区表被分区分割成多个文件组,而这些文件组可以存在于同一个物理磁盘,或者在不同的磁盘上面。另外,分区表中的索引也可以根据分区进行分布。当查询优化器评估一个数据请求,而且这个请求中涉及到使用分区表,那么优化器可以优化这个请求只去合适的分区上面寻找合适的数据。(更多有关分区表的知识,大家可以参考我们站点发布的“深入浅出分区表”系列文章)
虽然说,我们本篇讲述分布式分区视图,其实在SQL Server 2005(以及后续版本),也是支持“本地分区视图”,这里是一个相对的概念。因为在SQL Server2005以后已经有了分区表的引入,所以,很多时候,“本地分区视图”仅仅只是用来与之前的数据库版本兼容。现在我们直接采用分区表来替代“本地分区视图”。
当我们用分区的时候,主要有两个目的:
1.把历史的当前数据分开
2.用它来把数据划分为不同范围,如把某个大型的Customer表中的数据按照用户名字的字母顺序分开,如A-F,G-N,O-Z,分为三个区。
其实当我们在横向扩展方案中拆分数据的时候,也会进行一些类似分区的操作,但是,使用分区的时候,情况就没有在一个数据库上面使用分区划分数据那么的简单了,因为数据此时已经拆分到了不同的数据库实例中,甚至不同的服务器上面,,此时,我们就要考虑一些分布式情况,如下:
到现在为止,也说了一些分布式分区视图的一些概念,朋友可能已经有些迫不及待的要知道如何实现,那么,我这里先缓缓。我们先来看几个与它相关的重要的内容。
假设,现在分布式的视图已经建立好了,我们下一步要做的就是如何使用它。
下面,我们就谈谈实现分布式视图的实现的原理和分布式查询相关的知识。
分布式分区视图工作原理
分布式查询和分布式分区视图中使用了OLE DB提供程序来实现数据库实例之间间信息沟通。
访问远程数据库中的数据采用的是Linked Server技术(链接服务器)。一个链接服务器其实就是位于数据库实例中的一个对象。查询引擎是建立在OLE DB之上的,所以,不管是从当前本地的数据库存储引擎中检索数据,还是从远程的数据库的存储引擎中检索数据,他们的机制都是一样的。如果大家对数据库的内部结构稍微知道一点,就非常容易理解这个问题:
朋友们看到上面的图,查询引擎(也称之为“关系引擎”)通过存储引擎提供的OLE DB接口访问达到访问方法。在这里,OLE DB提供程序就可以访问远程的存储引擎的反问方法。
SQL Server横向扩展:设计,实现与维护(2)- 分布式分区视图的更多相关文章
- SQL索引管理器 - 用于SQL Server和Azure上的索引维护的免费GUI工具
我作为SQL Server DBA工作了8年多,管理和优化服务器的性能.在我的空闲时间,我想为宇宙和我的同事做一些有用的事情.这就是我们最终为SQL Server和Azure 提供免费索引维护工具的方 ...
- 通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
原文:通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了? 问题就是,一个很简单的语句,在不同的服务器上执行,所需要的时间相差很大,特别提到在性能差的服务器上反而快,在性能 ...
- SQL Server 2005/2008/2012中应用分布式分区视图
自2000版本起,SQL Server企业版中引入分布式分区视图,允许你为分布在不同的SQL 实例的两个或多个水平分区表创建视图. 简要步骤如下:根据Check约束中定义的一组值把大表分割成更小的一些 ...
- SQL SERVER 判断是否存在数据库、表、列、视图
SQL SERVER 判断是否存在数据库.表.列.视图 --1. 判断数据库是否存在 IF EXISTS (SELECT * FROM SYS.DATABASES WHERE NAME = '数据库名 ...
- SQL Server分区表,能否按照多个列作为分区函数的分区依据(转载)
问: Hi, I have a table workcachedetail with 40 million rows which has 8 columns.We decided to partiti ...
- Microsoft SQL Server 管理 (常用管理及维护命令)
--查询当前连接的实例名 select @@servername --察看任何数据库属性 sp_helpdb master --设置单用户模式,同时立即断开所有用户 alter database No ...
- SQL Server 禁用扩展存储过程
概述 扩展存储过程是 SQL Server 实例可以动态加载和运行的 DLL.扩展存储过程是使用 SQL Server 扩展存储过程 API 编写的,可直接在 SQL Server 实例的地址空间中运 ...
- sql server 主从库设计和数据库镜像设计
sql server 主从设计可以通过sql server 的发布订阅实现,在大数据量的时候不要用快照发布,要使用事务发布的方式实现. 主从的设计后,要将数据库的读写分离,实现数据库效率的提示 而数据 ...
- SQL Server datetime数据类型设计、优化误区
一.场景 在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你看到表的记录如下图所示,你最先想到的是什么呢? (图1:数据列 ...
随机推荐
- 使用RawComparator加速Hadoop程序
使用RawComparator加速Hadoop程序 在前面两篇文章[1][2]中我们介绍了Hadoop序列化的相关知识,包括Writable接口与Writable对象以及如何编写定制的Writable ...
- jeecg中选择的数据字典
<t:dictSelect field="fjingji" hasLabel="false" typeGroupCode="fjingji&qu ...
- DOM的基本概念
1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Window对象操作 一.属性和方法: 属性(值或者子对象): op ...
- free 命令结果完全剖析
free 命令结果完全剖析 total 总物理内存大小. used 已分配的大小,注意,对操作系统来说任何被使用的内存都是used. free 未被分配的物理内存大小. shared 共享内存大小,主 ...
- 第八章 搭建hadoop2.2.0集群,Zookeeper集群和hbase-0.98.0-hadoop2-bin.tar.gz集群
安装配置jdk,SSH 一.首先,先搭建三台小集群,虚拟机的话,创建三个 下面为这三台机器分别分配IP地址及相应的角色:集群有个特点,三台机子用户名最好一致,要不你就创建一个组,把这些用户放到组里面去 ...
- 017:磁盘I/0介绍和测试
一. 磁盘 1. 磁盘的访问模式 顺序访问 顺序的访问磁盘上的块: 一般经过测试后,得到该值的单位是MB/s,表示为磁盘带宽,普通硬盘在 50~ 100 MB/s 随机访问 随机的访问磁盘上的块 也可 ...
- 条件随机场(CRF)-基础
条件随机场(conditional random fields,简称 CRF,或CRFs)下文简称CRF,是一种典型的判别模型,相比隐马尔可夫模型可以没有很强的假设存在,在分词.词性标注.命名实体识别 ...
- redis改密码
一. 如何初始化redis的密码? 总共2个步骤: a.在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数. 比如 requirepass test123 b.配置 ...
- TCP粘包拆包基本解决方案
上个小节我们浅析了在Netty的使用的时候TCP的粘包和拆包的现象,Netty对此问题提供了相对比较丰富的解决方案 Netty提供了几个常用的解码器,帮助我们解决这些问题,其实上述的粘包和拆包的问题, ...
- 微信小程序中this关键字使用技巧
转自:https://blog.csdn.net/qq_33956478/article/details/81348453 微信小程序中,在wx.request({});方法调用成功或者失败之后,有时 ...