时间:2024-02-14 10:20作者:下载吧人气:25
将数据库Demo中的表按照日期字段进行水平分区分表。要求数据文件按一年一个文件存储,且分区的分割点会根据时间的增长自动添加(例如现在是2017年1月1日,将其作为一个分割点,即将2017年1月1日之前的数据存储到数据文件A中,将2017年1月1日的之后的数据存储到数据文件B中;当时间到2018年1月1日时,自动将2018年1月1日添加为一个新的分区分割点,并将2017年1月1日至2018年1月1日的数据存储在数据文件B中,将2018年1月1日之后的数据存储在一个新的数据文件C中,以此类推)。
要实现这一功能,首先要了解数据库对水平分区表进行分区存储的原理。
所谓水平分区分表,就是把逻辑上的一个表,在物理上按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下。这样把一个大的文件拆分成多个小文件,便于我们对数据的管理。
l 便于存档
l 便于管理:备份恢复时可以单一的备份或者恢复某一个分区
l 提高可用性:一个分区故障,不影响其他分区的正常使用
l 提高性能:提升查询数据的速度
① 创建数据库
② 在创建的数据库中添加文件组
③ 在文件组中添加新的文件
④ 定义分区函数
⑤ 定义分区架构
⑥ 定义分区表
⑦ 定义代理作业,自动添加分区分割点
⑧ 测试数据
注意:
² 分区表依赖于分区架构,而分区架构又依赖与分区函数,所以在穿件分区函数、分区架构、分区表是要按照对应的顺序创建。
² 分区函数并不属于具体的分区架构和分区表,它们之间仅仅是使用关系。
² 分区表只能在创建的时候指定为分区表
新建数据库,并将其命名为Demo
代码格式:
ALTER DATABASE <数据库名称> ADD FILEGROUP<文件组名>
代码示例:
ALTER DATABASE DemoADD FILEGROUP DemoFileGroup
代码格式:
ALTER DATABASE <数据库名称> ADD FILE <数据标识> TO FILEGROUP<文件组名称>
注意:数据标识中name为逻辑文件名、filename为物理文件路径名、size为文件初始大小(单位:kb/mb/gb/tb)、filegrowth为文件自动增量(单位:kb/mb/gb/tb)、maxsize为文件增大的最大大小(单位:kb/mb/gb/tb/unlimited)
代码示例:
ALTER DATABASEDemo ADD FILE (
NAME=’DemoFile1′,
FILENAME=’D:ProgramFilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATADemoFile1.mdf’,
SIZE=5MB,
FILEGROWTH=5MB)
TOFILEGROUP DemoFileGroup
网友评论