什么是表分区
一般情况下,我们建立数据库表时,表数据都存放在一个文件里。
但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。
所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高select效率,还可以对历史数据经行区分存档等。但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的开销,除啦性能还会增加实现对象的管理费用和复杂性。
怎么实现
分区和文件组个数相同
分区是要把一个表数据拆分为若干子集合,也就是把把一个数据文件拆分到多个数据文件中,然而这些文件的存放可以依托一个文件组或这多个文件组,由于多个文件组可以提高数据库的访问并发量,还可以把不同的分区配置到不同的磁盘中提高效率,所以创建时建议分区跟文件组个数相同。
1.创建文件组
可以点击数据库属性在文件组里面添加
T-SQL 语法
alter database <数据库名> add filegroup <文件组名>
如
alter database test add filegroup group1
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 testSplit add file
(name=N'ById1',filename=N'J:\Work\数据库\data\ById1.ndf',size=5Mb,filegrowth=5mb)
3.使用向导创建分区表
右键到要分区的表— >> 存储 — >> 创建分区 — >>显示向导视图 — >> 下一步 — >> 下一步。。
这里举例说下选择列的意思:
假如你选择的是int类型的列:那么你的分区可以指定为1–100W是一个分区,100W–200W是一个分区….
假如你选择的是datatime类型:那么你的分区可以指定为:2014-01-01–2014-01-31一个分区,2014-02-01–2014-02-28一个分区…
根据这样的列数据规则划分,那么在那个区间的数据,在插入数据库时就被指向那个分区存储下来。
然后下一步下一步最后你会得到分区函数和分区方案