非原创,自己的学习笔记。参考地址: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万行数据测试一下。