SQL sever分区表实验

实验过程与结果:

1. sql语言创建数据库DB_test为例,代码如下:

use master;

 go



 --检查在当前服务器系统中的所有数据里面是否有该数据库

IF EXISTS(SELECT * FROM sysdatabases WHERE NAME='DB_test')

--如果有删除该数据库

 DROP DATABASE DB_test

-- 创建该数据库

 CREATE DATABASE DB_test  ---DB_Yun 数据名称

 ON PRIMARY

 (

 NAME='DB_test',  --主数据文件的逻辑名

 FILENAME='D:\develop\sqldata\DB_test.mdf', --主数据文件存储位置

 SIZE=16MB,  --主数据文件的初始大小

 FILEGROWTH=8MB, --每次增容时增加的容量大小

 MAXSIZE=UNLIMITED  --增量速度 unlimited无限制

 )

 LOG  ON(

    NAME='DB_test.LDF',  --日志文件

    FILENAME='D:\develop\sqldata\DB_test.ldf', --日志文件存储位置

    SIZE=16MB,  --日志文件初始大小

    FILEGROWTH=8MB,  --日志文件每次增加的容量大小

    MAXSIZE=UNLIMITED

)

2. 使用数据库

3. 创建4个分区

4.在每个文件组创建一个文件,即创建四个文件(注意:这里不同文件组,最好放在不同的路径)

5.创建分区函数:按照范围分为四个部分(小于等于1,1到100,100到1000,大于1000)

6.创建分区方案,将四个区域分别对应四个文件中

7. 创建分区表

8. 用系统存储过程来查询所创建的分区表

(1)查看是否有名为PartitionTable的表

(2)查询表有多少个分区

如下图,可见有四个分区,各自的范围如图中最后两列所示

(3)初始时表为空

(4)执行插入语句

(5)再次查询,插入成功

SQL Server 支持按月自动扩展表分区的功能,需要使用到 Partition Function 和 Partition Scheme,在创建时需要指定分区的范围和分区方式。具体步骤如下: 1. 创建分区函数 ``` CREATE PARTITION FUNCTION pf_monthly(datetime) AS RANGE RIGHT FOR VALUES ( '20210101', '20210201', '20210301', '20210401', '20210501' ); ``` 这里使用 datetime 类型作为分区函数的参数,指定了分区的范围为每个月的第一天。 2. 创建分区方案 ``` CREATE PARTITION SCHEME ps_monthly AS PARTITION pf_monthly TO ( [PRIMARY], [PARTITION Jan2021] , [PARTITION Feb2021] , [PARTITION Mar2021] , [PARTITION Apr2021] , [PARTITION May2021] , [PARTITION AllOthers] ); ``` 这里创建了一个分区方案,将分区函数 pf_monthly 分成了六个分区,前五个分区分别对应每个月,最后一个分区 AllOthers 则包含了所有没有被分区的数据。 3. 创建表并指定分区方案 ``` CREATE TABLE Sales ( SaleDate datetime, SaleAmount money ) ON ps_monthly(SaleDate); ``` 这里创建了一个 Sales 表,并将 SaleDate 列作为分区键,指定了分区方案为 ps_monthly。 4. 添加新分区 当需要添加新的分区时,可以使用 ALTER PARTITION FUNCTION 命令进行添加。例如,要添加 20210601 到 20210701 的分区,可以执行以下命令: ``` ALTER PARTITION FUNCTION pf_monthly() ADD RANGE ('20210601', '20210701'); ``` 这样就会在分区函数中添加一个新的分区范围,然后可以使用 ALTER PARTITION SCHEME 命令将新的分区添加到分区方案中。 注意,如果需要自动扩展分区,可以使用 SQL Server Agent 的作业来自动执行添加分区的命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值