问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sqlserver 2012 怎么建立分区

发布网友 发布时间:2022-04-22 23:58

我来回答

2个回答

懂视网 时间:2022-05-01 11:58

DATABASE [Test] ADD FILEGROUP FG2010 ALTER DATABASE [Test] ADD FILEGROUP FG2011 ALTER DATABASE [Test] ADD FILEGROUP FGAll

2、新增分区文件

ALTER DATABASE [Test] ADD FILE (NAME=‘File2010‘,FILENAME=N‘D:Program FilesDataFile2010.ndf‘) TO FILEGROUP FG2010
ALTER DATABASE [Test] ADD FILE (NAME=‘File2011‘,FILENAME=N‘D:Program FilesDataFile2011.ndf‘) TO FILEGROUP FG2011
ALTER DATABASE [Test] ADD FILE (NAME=‘FileAll‘,FILENAME=N‘D:Program FilesDataFileAll.ndf‘) TO FILEGROUP FGAll

3、创建分区函数

--该分区函数创建3个分区(<=2010-01-01、2010-01-01~2011-01-01,>2011-01-01)
--RANGE LEFT标识边界值在左边

CREATE PARTITION FUNCTION OrderPartitionFn(datetime)
AS RANGE LEFT
FOR VALUES(‘2010-01-01‘,‘2011-01-01‘)

4、创建分区方案

CREATE PARTITION SCHEME OrderPartitionScheme
AS PARTITION OrderPartitionFn
TO 
(
 FG2010,
 FG2011,
 FGAll
)

5、创建分区表

CREATE TABLE OrderRecords
(
 Id uniqueidentifier,
 CreateTime datetime,
 Total int,
)
 --OrderPartitionScheme是刚刚定义的分区架构,括号内为指定的分区列
ON OrderPartitionScheme(CreateTime)

6、定义执行自动分区操作

使用sql job 定期执行操作

DECLARE @maxValue DATETIME,
 @fileGroupName VARCHAR(200),
 @fileNamePath VARCHAR(200),
 @partitionFnName VARCHAR(200),
 @schemeName VARCHAR(200),
 @fileName VARCHAR(200),
 @sql NVARCHAR(1000)

--分区函数
SET @partitionFnName=‘OrderPartitionFn‘;
--分区方案
SET @schemeName=‘OrderPartitionScheme‘;

--获取当前分区函数最大边界值
SELECT @MaxValue = Convert(datetime,MAX(value))
FROM SYS.PARTITION_RANGE_VALUES PRV
LEFT JOIN SYS.partition_functions fun on prv.function_id=fun.function_id
WHERE FUN.name=@partitionFnName--分区函数名

SET @fileGroupName=‘FG‘+CONVERT(varchar,(YEAR(@MaxValue)+1))

--D:Program FilesDataFile2016.ndf
SET @fileNamePath=‘D:Program FilesDataFile‘+ CONVERT(varchar,(YEAR(@MaxValue)+1))+‘.ndf‘
--File2016
SET @fileName=N‘File‘+ CONVERT(varchar,(YEAR(@MaxValue)+1))

--使用ALTER语句新增一个文件组
SET @sql=‘ALTER DATABASE [Test] ADD FILEGROUP ‘+@fileGroupName
PRINT @sql
EXEC(@sql)

SET @sql=‘ALTER DATABASE [Test] ADD FILE (NAME=‘‘‘+@fileName+‘‘‘,FILENAME=N‘‘‘+@fileNamePath+‘‘‘) TO FILEGROUP‘+‘ ‘+@fileGroupName
PRINT @sql
EXEC(@sql)
--修改分区方案,用一个新的文件组存放下一新增的数据
SET @sql=‘ALTER PARTITION SCHEME [‘+@schemeName+‘] NEXT USED‘+‘ ‘+@fileGroupName
PRINT @sql;
EXEC(@sql)

SET @sql=‘ALTER PARTITION FUNCTION ‘+@partitionFnName+‘() SPLIT RANGE (‘‘‘+Convert(varchar,DATEADD(YEAR,1,@maxValue),120)+‘‘‘)‘;
print @sql;
EXEC(@sql)

 

SqlServer自动化分区

标签:

热心网友 时间:2022-05-01 09:06

本文是我关于数据库分区的方案的一些想法,或许有些问题。仅供大家讨论。SqlServer (SqlServer 2005\SqlServer 2008)实现分区需要在企业版下进行.
SqlServer的分区分为大致有以下个过程:1、创建文件组用以存放数据文件 2、创建文件组用户数据文件 3、创建分区函数 4、创建分区方案 5、在分区方案下创建表
本文是在SqlServer2012 下完成的。
http://blog.csdn.net/fwj380891124/article/details/48372791
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
LG棒棒糖GD580这么看书 lg gd580怎么用moto看小说 各种海鲜馅饺子大全 海鲜水饺都有什么馅儿的 用网上交易系统进行股票操作资金安全吗,我是在中信建投开的户 北京瀚正化妆学校包就业吗 通江车检在哪里,可以摩托车年审不? 摩托车年审在通江县哪里啊 我是四川省通江县人、我是摩托车驾驶证,以快到期,请问我在江苏无锡... 通江县哪里可以托运摩托车 sqlserver2008怎么实现自动分区表 如何对一个已经存在的SQL Server表分区 如何使用SQLServer数据库按月创建表分区 sql server怎么建立分区表 求救!!!为什么我下载的软件都是文件夹形式 下载文件夹加密软件,急求哇? *文件夹加密软a件下载? 如何下载文件夹加密软件 谁知道 根据下载路径创建本地文件夹的下载软件? 18款宝马3GT招回什么意思 下载了的软件在哪个文件夹里 豪华车和跑车中的GT是啥意思? 下载到手机u盘上的软在哪个文件夹? 怪物猎人3gT10是什么意思? 圆弧齿同步带轮 S3M和3GT是什么区别啊? 交了订金了宝马3gt 有没有电子版的使用手册,先看看,谢谢了 pt950 JD01 3GT是什么意思? 3GM值,3GT值。是什么意思? C:&#92;WINDOWS&#92;SoftwareDistribution&#92;Download文件夹下所有的文件都可以删除吗? 套餐中的3GM值、3GT值什么意思 SQL server 表分区问题,大家帮忙看看吧,谢啦 SQLSERVER 即将存储大量的数据,怎么设计表好点? 怎么在mysql表中创建分区表 在SQL 中怎么创建表格? 如何利用MySQL数据库命令创建和查看分区情况 如何对已经存在的数据表进行分区 请教关于SQLSERVER表分区的应用。 数据库表分区优化 SQL server 怎样可以让一个数据库用几个磁盘分区 如何每天创建一个表分区 db2数据库 怎么按日或者按月 自动创建表分区? 如何建立DB2分区数据库 小鸡腿的家常做法是什么? 小鸡腿怎么样做好吃 小鸡腿怎么烧比较好吃? 炒鸡腿怎么炒 怎样做小鸡腿,更好吃 如何做出美味的红烧小鸡腿,简单易学 B2驾驶证每年都要年检吗? b2驾驶证几年审一次?