[转]SqlServer 表分区详细介绍
分区请三思:
1 虽然分区可以带来众多的好处,但是同时也增加了实现对象的管理费用和复杂性。因此在进行分区之前要首先仔细的考虑以确定是否应为对象进行分区。
2 在确定了为对象进行分区后,下一步就有确定分区键和分区数。要确定分区数据,应先评估您的数据中是否存在逻辑分组和模式。
3 确定是否应使用多个文件分组。为了有助于优化性能和维护,应使用文件组分离数据。文件组是数据库文件的逻辑组合,它可以对数据文件进行管理和分配,以便提高数据库文件的并发访问效率。
为了简化操作,Sqlserver2008中为表分区提供了相关的操作。
操作顺序:
1 先定义文件组
2 指定哪些辅助数据库文件属于这个文件组。
3 将表放入到文件组中
数据库分文件组(指定磁盘):
数据实际上是依附于表来存在的,我们将表放入到文件组中,而文件组是一个逻辑的概念,其实体是辅助数据库文件(ndr), 所以就等于将我们指定的数据库放入到了指定的辅助数据库文件中,然后如果将这些辅助数据库文件放入在不同的磁盘分区中,就可以最终实现有针对性的对相应的数据实现性能的优化。
创建文件组时,定义不同的文件组名称,可以有序的进行下一步表分区的分区映射文件组,如上图(选择数据库,右键查看属性图)。
一个水平区表中有多个分区,每个分区对应一个文件组,这样就产生了很多文件组,因此性能也会有所提升,包括I/O性能提升,因为所有分区可以驻扎在一个不同的磁盘上。另一个好处是可以通过备份文件组单独备份一个分区。此外,SqlServer数据库引擎可以智能判断哪个分区上存放了什么数据。如果不止一个分区被访问,那么可以借助多处理器实现数据检索。这种设计也充分利用了分区表的优势。
1、 提高可伸缩性和管理性:在SqlServer2005中简历分区,改善大型表以及具有各种访问模式的表的可伸缩性和可管理学。
2、提高性能。
3、只有将数据分区到不同的磁盘上,才会有较大的性能提升。因为在运行涉及多表链接查询时,多个磁头可以同时读取数据。
对SqlServer数据表进行分区的过程分为三个步骤:
1、建立分区函数
2、建立分区方案
3、对表格进行分区
步骤如下: