sql 分区表

理解SQL SERVER中的分区表

     在回答标题的问题之前,需要说明的是,表分区这个特性只有在企业版或者开发版中才有,还有理解表分区的概念还需要理解SQL SERVER中文件和文件组的概念.

     对表进行分区在多种场景下都需要被用到.通常来说,使用表分区最主要是用于:

  •      存档,比如将销售记录中1年前的数据分到一个专门存档的服务器中
  •      便于管理,比如把一个大表分成若干个小表,则备份和恢复的时候不再需要备份整个表,可以单独备份分区
  •      提高可用性,当一个分区跪了以后,只有一个分区不可用,其它分区不受影响
  •      提高性能,这个往往是大多数人分区的目的,把一个表分布到不同的硬盘或其他存储介质中,会大大提升查询的速度.

分区函数只定义键,而不定义数据在磁盘上的物理位置。数据的位置由分区架构决定。换句话说,架构将数据映射到一个或多个文件组,文件组将数据映射到特定的文件,文件又将数据映射到磁盘。分区架构通常使用函数来实现此目的:如果函数定义了五个分区,则架构必须使用五个文件组。文件组不需要各不相同;但是,如果拥有多个磁盘(最好是多个 CPU),使用不同的文件组可以获得更好的性能。将架构与表一起使用时,您需要定义用作分区函数的参数的列。

确定是否应使用多个文件组

为了有助于优化性能和维护,应使用文件组分离数据。文件组的数目一定程度上由硬件资源决定:一般情况下,文件组数最好与分区数相同,并且这些文件组通常位于不同的磁盘上。但是,这主要适用于打算对整个数据集进行分析的系统。如果您有多个 CPU,SQL Server 则可以并行处理多个分区,从而大大缩短处理大量复杂报表和分析的总体时间。这种情况下,可以获得并行处理以及在分区表中移入和移出分区的好处。

索引分区

除了对表的数据集进行分区之外,还可以对索引进行分区。使用相同的函数对表及其索引进行分区通常可以优化性能。当索引和表按照相同的顺序使用相同的分区函数和列时,表和索引将对齐。如果在已经分区的表中建立索引,SQL Server 会自动将新索引与该表的分区架构对齐,除非该索引的分区明显不同。当表及其索引对齐后,SQL Server 则可以更有效地将分区移入和移出分区表,因为所有相关的数据和索引都使用相同的算法进行划分。

如果定义表和索引时不仅使用了相同的分区函数,还使用了相同的分区架构,则这些表和索引将被认为是按存储位置对齐。按存储位置对齐的一个优点是,相同边界内的所有数据都位于相同的物理磁盘上。在这种情况下,可以单独在某个时间段内执行备份操作,还可以根据数据的变化在备份频率和备份类型方面改变您的策略。如果连接或收集了相同文件或文件组中的表和索引,则可以发现更多的好处。SQL Server 可以通过在多个分区中并行操作来获益。在按存储位置对齐和多 CPU 的情况下,每个处理器都可以直接处理特定的文件或文件组,而不会与数据访问产生任何冲突,因为所有需要的数据都位于同一个磁盘上。这样,可以并行运行多个进程,而不会相互干扰。

 

我的理解:

记录添加到分区表时,分区字段是否已经固定,不能修改;如以日期进行分区,根据日期直接添加到某分区,日期不会变,一直保留在分区;若在oa中想实现根据完成状态进行划分,是否不可行,因为完成状态从未完成变成完成。

 

 

http://msdn.microsoft.com/zh-cn/library/ms345146(SQL.90).aspx 微软server 2005分区的概念

http://www.cnblogs.com/gaizai/archive/2011/07/01/2095539.html

http://www.cnblogs.com/gaizai/archive/2011/05/31/2064931.html

http://msdn.microsoft.com/en-us/library/ms175533.aspx 2008中的分区,选择左上角更改中文

CREATE PARTITION FUNCTION (Transact-SQL)  http://msdn.microsoft.com/zh-cn/library/ms187802(v=sql.105).aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值