SQL Server表分区详解

jopen 6年前

        分区请三思:

        1、虽然分区可以带来众多的好处,但是同时也增加了实现对象的管理费用和复杂性。因此在进行分区之前要首先仔细的考虑以确定是否应为对象进行分区。

        2、在确定了为对象进行分区后,下一步就要确定分区键和分区数。要确定分区数据,应先评估您的数据中是否存在逻辑分组和模式。

        3、确定是否应使用多个文件分组。为了有助于优化性能和维护,应使用文件组分离数据。文件组是数据库数据文件的逻辑组合,它可以对数据文件进行管理和分配,以便提高数据库文件的并发访问效率。

        为了简化操作,SQL Server 2008中为表分区提供了相关的操作。  

        操作的顺序:
     1、先定义文件组
     2、指定哪些辅助数据库文件属于这个文件组
     3、将表放入到文件组中

        数据库分文件组(指定磁盘):

        数据实际上是依附于表来存在的,我们将表放入到文件组中,而文件组是一个逻辑的概念,其实体是辅助数据库文件(ndr),所以就等于将我们指定 的数据放入到了指定的辅助数据库文件中,然后如果将这些辅助数据库文件放入在不同的磁盘分区中,就可以最终实现有针对性的对相应的数据实现性能的优化。

SQL Server表分区详解

        创建文件组时,定义不同的文件组名称,可以有序地进行下一步表分区的分区映射文件组,如上图(选择数据库,右键查看属性图)。

        一个水平分区表中有多个分区,每个分区对应一个文件组,这样就产生了很多文件组,因此性能也会有所提升,包括I/O性能提升,因为所有分区可以 驻扎在一个不同的磁盘上。另一个好处是可以通过备份文件组单独备份一个分区。此外,SQL Server数据库引擎可以智能判断哪个分区上存放了什么数据,如果不止一个分区被访问,那么还可以借助多处理器实现并行数据检索。这种设计也充分利用了 分区表的优势。

        1、提高可伸缩性和可管理性:在SQL Server 2005中建立分区,改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。 

        2、提高性能

        3、只有将数据分区分到不同的磁盘上,才会有较大的提升。

        4、因为在运行涉及表间联接的查询时,多个磁头可以同时读取数据。

        对SQL Server数据表进行分区的过程分为三个步骤:

        1) 建立分区函数

        2) 建立分区方案

        3) 对表格进行分区

        步骤如下:

SQL Server表分区详解

 SQL Server表分区详解

SQL Server表分区详解

 SQL Server表分区详解

 SQL Server表分区详解

SQL Server表分区详解

SQL Server表分区详解

来自:http://www.cnblogs.com/Fooo/archive/2011/01/25/1944395.html