什么是表分区
SQL Server使用三种不同类型的文件存储数据,它们分别是.mdf、.ndf和.ldf。主要数据存储在
.mdf文件中,比如表,索引,存储过程等。.ndf文件也用于储存这些数据。.ldf文件用于存储操作日志。
表默认存储在.mdf文件中。更新表时SQL Server会对表锁。那么其它的操作必须等待正在更新操作完成。
如果一个表很大,那么无论是查询操作还是更新操作,性能都会很差。如果将表分别存储在物理上独立但逻辑上连续的
分区中,那么SQL Server可以大幅优化查询操作和更新操作的性能。
分区的优点
1、提高可伸缩性和可管理性:在SQL Server 2005中建立分区,改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。
2、提高性能
3、只有将数据分区分到不同的磁盘上,才会有较大的提升。
4、因为在运行涉及表间联接的查询时,多个磁头可以同时读取数据。
分区时需注意事项
1、虽然分区可以带来众多的好处,但是同时也增加了实现对象的管理费用和复杂性。因此在进行分区之前要首先仔细的考虑以确定是否应为对象进行分区。
2、在确定了为对象进行分区后,下一步就要确定分区键和分区数。要确定分区数据,应先评估您的数据中是否存在逻辑分组和模式。
3、确定是否应使用多个文件分组。为了有助于优化性能和维护,应使用文件组分离数据。文件组是数据库数据文件的逻辑组合,它可以对数据文件进行管理和分配,以便提高数据库文件的并发访问效率。
分区的实现
alter database <数据库名> add filegroup <文件组名>
2.创建数据文件到文件组:
alter database <数据库名称> add file <数据标识> to filegroup <文件组名称> --<数据标识> (name:文件名,fliename:物理路径文件名,size:文件初始大小kb/mb/gb/tb,filegrowth:文件自动增量kb/mb/gb/tb/%,maxsize:文件可以增加到的最大大小kb/mb/gb/tb/unlimited)
3.右键要分区的表,存储选项中创建分区
4.打开创建分区向导,下一步
5.选择列后下一步,新建分区函数,写入函数名称,下一步
6.新建分区方案,写入方案名称
7.创建分区规则
左边界右边界:就是把临界值划分给上一个分区还是下一个分区。一个小于号,一个小于等于号。
8.下一步,得到分区语句 及 方案,执行后,分区完成。
SQL语句实现
1.分区函数
指定分依据区列(依据列唯一),分区数据范围规则,分区数量,然后将数据映射到一组分区上。
创建语法:
create partition function 分区函数名(<分区列类型>) as range