sqlserver 分区表

当数据库表中数据量能够被预测到将会非常大,或者已经拥有庞大的数据时,我们应该选择分表或者分区(即使用多个数据库)来解决数据访问时的性能问题。

为什么要分区分表呢?因为分区分表有如下几个有点:

1.改善查询性能,对分区对象的查询可以仅搜索自己关系的分区,提高检索速度。
2.增强可用性,如果表的某个分区出现故障,表在其他分区的数据仍然可用。
3.维护方面,如果表的某个分区出现故障,需要修复数据,只修复该分区即可。
4.均衡I/O,可以把不同的分区映射到磁盘以平衡I/O,改善整个性能。

 

--数据库添加文件组
alter database testdb add filegroup day_20180427;
alter database testdb add filegroup day_20180428;
alter database testdb add filegroup day_20180429;
alter database testdb add filegroup day_20180430;


--文件组添加文件  
alter database testdb
add file(name=N'day_20180427',filename='C:\DB\test_partition\day_20180427.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180427;
alter database testdb
add file(name=N'day_20180428',filename='C:\DB\test_partition\day_20180428.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180428;
alter database testdb
add file(name=N'day_20180429',filename='C:\DB\test_partition\day_20180429.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180429;
alter database testdb
add file(name=N'day_20180430',filename='C:\DB\test_partition\day_20180430.ndf',
size=5mb, filegrowth=5mb) to filegroup day_20180430;


--创建分区函数 
use testdb;
--drop partition function F_Date_Day;
create partition function F_Date_Day(datetime)
as range right for values
('2018-04-28','2018-04-29','2018-04-30');


--创建分区方案
--drop partition scheme P_Date_Day;
create partition scheme P_Date_Day
as partition F_Date_Day
to(day_20180427,day_20180428,day_20180429,day_20180430);

--在分区方案上创建表
CREATE TABLE [dbo].[test_part](
  [ID] [int] identity(1,1),
  [empno] [int] NULL,
  [jointime] [datetime] NULL
)on P_Date_Day(jointime);
--在分区方案上创建表索引
CREATE CLUSTERED INDEX [ClI_testpart_jointime] ON [dbo].[test_part]
(
  [jointime] ASC
)on P_Date_Day(jointime);

--对表数据进行页压缩
USE [testdb];
ALTER TABLE [dbo].[test_part] REBUILD PARTITION = 1 WITH(DATA_COMPRESSION=PAGE);
ALTER TABLE [dbo].[test_part] REBUILD PARTITION= 2 WITH(DATA_COMPRESSION=PAGE);
ALTER TABLE [dbo].[test_part] REBUILD PARTITION= 3 WITH(DATA_COMPRESSION=PAGE);
ALTER TABLE [dbo].[test_part] REBUILD PARTITION= 4 WITH(DATA_COMPRESSION=PAGE);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值