SQL Server表分区

非原创,自己的学习笔记。参考地址:http://www.cnblogs.com/knowledgesea/p/3696912.html

第一步,创建文件组

(1)右击数据库—>属性—>文件组

(2)T-SQL

ALTER DATABASE <数据库名称> ADD FILEGROUP <文件组名>

实例:ALTER DATABASE BusSystem ADD FILEGROUP TestGroup1

第二步,创建数据文件到文件组

(1)右击数据库—>属性—>文件

(2)T-SQL

alter database <数据库名称> add file <数据标识> to filegroup <文件组名称>

--<数据标识> (name:文件名,fliename:物理路径文件名,size:文件初始大小kb/mb/gb/tb,filegrowth:文件自动增量kb/mb/gb/tb/%,maxsize:文件可以增加到的最大大小kb/mb/gb/tb/unlimited)

实例:

ALTER DATABASE BusSystem ADD FILE (NAME=N'TestFile1',filename=N'E:SoftDatabaseFilesTestFile1.ndf',size=5Mb,filegrowth=5mb)
to filegroup TestGroup1

执行完成后,右键数据库看文件组跟文件里面是不是多出来啦这些文件组跟文件。

第三步,使用向导创建分区表

右键到要分区的表--- >> 存储 --- >> 创建分区 --- >>显示向导视图 --- >> 下一步 --- >> 下一步。。

原文作者解释:

这里举例说下选择列的意思:

假如你选择的是int类型的列:那么你的分区可以指定为1--100W是一个分区,100W--200W是一个分区....

假如你选择的是datatime类型:那么你的分区可以指定为:2014-01-01--2014-01-31一个分区,2014-02-01--2014-02-28一个分区...

根据这样的列数据规则划分,那么在那个区间的数据,在插入数据库时就被指向那个分区存储下来。

 

我这里选用orderid int类型 --- >> 下一步 --- >>

我对表分区的工作原理的理解是: 按照某一列来做计算,超过多少就到下一个分区。按照int类型的列分区,比如超过100万就插到下一个分区;比如按照时间类型的列分区,比如超过某个时间就到下一个分区。把一张表的数据分别存储到多个文件里面,这样避免在一个文件做操作,也许这样查询就能更快一些。。。

我按照原文作者操作完成,等明天插入1000万行数据测试一下。

原文地址:https://www.cnblogs.com/fjzhang/p/6929632.html