SQL Server中的关系型数据仓库分区策略(1)
2007-12-27 15:32:37 来源:WEB开发网ALTER PARTITION FUNCTION PARTITION_FUNCTION()
SPLIT RANGE (200402)
GO
通过在原始的位置删除行以及在新的位置添加行,行可以在分区间移动。和此次交换有关的分区在这一期间是不可访问的。在这个例子中,新建的第二个分区将会拥有在键值范围>200401 且 <=200402内的数据。带有对应键值的数据被从第二个分区中删除并且插入到新的分区。新的分区(>200401 且 <=200402)以及第三个分区(>200402 且 <=200403)在这一期间是无法访问的。
在我们的消费者场景中,新的数据是通过在活动的结尾处分割分区函数来添加的。老的数据是通过在老化的结尾处合并分区函数来删除的。这种实现滑动窗口的方式消除了在交换进和交换出分区时的跨分区的数据移动,也就是说,新的数据被批量的导入到一个表中并且随后通过在活动的结尾处分割它来交换进分区表,具体如下所示:
ALTER TABLE NEW_PARTITION SWITCH TO PARTITIONED_TABLE PARTITION
$partition.WEEK_PARTITION_FUNCTION (200404)
GO
对于更多的信息,请参阅在SQL Server联机丛书中的“设计分区来管理数据子集”
将数据存储到一个性价比高I/O子系统的技术
一个滑动窗口的具体实现可以通过将老化的数据滑动到一个性价比高的I/O子系统中来进行扩展。例如,在我们的测试场景中,我们将老化的数据从一个高性能的I/O子系统滑出到了一个没有同等高的性能但较为经济的I/O子系统中。特殊的滑动窗口实现可能无法通过在SQL Server中的备份与还原操作来完成。有一些替换的方式可以实现这样一个策略:
◆如果源文件是可用的,将数据导入到位于性价比高的I/O子系统的其它表中。重建索引。删除老的分区并且将新近导入的表添加到分区表中。无论你的数据集的大小,down机时间将会是交换分区所需要的时间,可以忽略不计。
◆如果导入的过程中包含了转换,在性价比高的I/O子系统上,通过使用一个SELECT/INTO查询从老化的分区提取数据来创建新表并重建索引应当更为有效。down机时间将会是交换分区所需要的时间。
关系型数据仓库的分区策略
接下来的部份阐述了对你的关系型数据仓库进行分区的两个主要策略。该部份将会讨论这些策略是如何作用于影响分区的要素的。
策略 I – 将一个分区绑定到它自己的文件组
一个分区可以使用以下的步骤被逻辑的绑定到一个文件组:
◆创建带有多个文件组的数据库,每一个文件组将会逻辑的对应一个分区
◆每个文件组中有一个文件。文件组可以包含一个或多个物理文件,并且这些文件可以在一个或多个逻辑卷/物理磁盘上创建
◆创建分区函数并将分界点映射到相应的文件组,使用分区架构来创建一个在文件组和分区之间的一一对应的关系
关于如何基于这个策略来实现分区的示例代码请参阅附录D
图表3:将分区映射到其自身的文件组
策略Strategy II – 将两个或更多分区绑定到同样的文件组
第二个策略是将一个或者多个分区映射到同样的文件组。文件组可以由一个(或者多个)分布在跨越一个(或者多个)逻辑卷/物理磁盘的物理文件来组成。对于基于这个策略实现分区的示例代码,请参阅附录D
图表4:将两个或更多的分区映射到同一个文件组
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
赞助商链接