【数据库】Sql Server语句文件组分区函数分组方案对应分区表的简单步骤

305 阅读2分钟

我正在参加「掘金·启航计划」

在本篇文章中,主要讲讲sql server数据库中通过sql语句方式对组分区函数的使用
在实际项目中,sql server数据库中有分区的概念,因为在一个表存在大量数据的情况下,需要通过分区方式保存数据来提供查询性能

【文件组和文件】

使用后台代码创建,可以将名字设置成动态赋值

--分组文件1
alter database IotData add filegroup group_20200726  --【1】增加文件组
alter database IotData add file   --【2】增加文件
(
   name = data, 
   filename = 'D:\file_data_20200726.ndf', 
   size =1MB, 
   filegrowth = 5MB
)
to filegroup group_20200726
 
--分组文件2
alter database IotData add filegroup group_20200727  --【1】增加文件组
alter database IotData add file   --【2】增加文件
(
   name = data, 
   filename = 'D:\file_data_20200727.ndf', 
   size =1MB, 
   filegrowth = 5MB
)
to filegroup group_20200727

【分区函数】

分区函数是和分区表字段有关

这里表示:如果添加的记录,添加时间值是2020-07-26,那么会往分组文件-file_data_20200726.ndf-里保存数据

如果添加的记录,添加时间值是2020-07-27,那么会往分组文件-file_data_20200727.ndf-里保存数据

这就达到了分区来保存数据,方便单文件备份数据,如果是单个整体文件,那么达到几十G不好传输保存备份

create partition function [PF_Data] (datetime) as range left for values
('2020-02-26','2020-02-27')

【分区方案】

分区方案与分区函数和文件组关联

 create partition scheme PS_Data
 as partition PF_Data
 to ([PRIMARY],group_20200726,group_20200727)

【分区方案指定运用在那个表】

可以在表属性存储里查看分区列等分区信息

必须是首次创建表开始,如果表已经有数据了,那么可以先备份到临时表,然后重新创建表后,从临时表里将数据添加进来,这样也可以查看到分区方案的效果

insert into  tableName select * from tempTableName

第一种,创建表的时候创建分区表

CREATE TABLE [dbo].[tableName](
	[addTime] [datetime] NOT NULL
)  on PS_Data([addTime])

第二种,对现有表设置分区方案?