슬라이딩 윈도우 기법을 이용한 파티션 관리
자동화 처리
CREATE PROC usp_Partition_SlidingWindowProcess
AS
/* 이미 파티션이 추가가됐는지 확인한다.*/
/* 먼저 추가될 파티션DB의 파일그룹을 생성한다.
현재 예제에서 2011-04월까지의 파티션이 존재하므로 이후의 파티션을 자동으로 추가하는 프로시저이다.
경계값 및 파일그룹명은 시스템에 맞게 수정해야 한다.
*/
DECLARE @FileGroupName CHAR(2)
,@strSQL VARCHAR(1000)
,@PartitionRange VARCHAR(10)
SET @FileGroupName = REPLACE(STR(DATEPART(MM,DATEADD(MM,1,'2011-04-01 00:00:00.000')),2),' ','0');
SET @PartitionRange = CONVERT(VARCHAR(8),DATEADD(MM,1, '2011-04-01 00:00:00.000'),121) + '01'
SET @strSQL = 'USE Partition_DB
ALTER DATABASE Partition_DB ADD FILEGROUP Partition_' + @FileGroupName + ''
EXEC(@strSQL)
SET @strSQL = ''
/* 추가된 파일그룹에 매핑할 파일을생성한다. 파일사이즈는 목적에맞게 설정해주면 된다. */
SET @strSQL = 'USE Partition_DB
ALTER DATABASE Partition_DB ADD FILE (NAME= ''Partition_'+@FileGroupName+'''
, FILENAME = ''D:\DBFile\Partition_'+@FileGroupName+'.ndf'') TO FILEGROUP Partition_'+@FileGroupName+'';
EXEC(@strSQL)
/* 파티션스키마의 다음범위를 지정한다. 현재월까지분리가돼 있고 다음은 5월범위 가되야한다. */
SET @strSQL = 'USE Partition_DB
ALTER PARTITION scheme PS_Date NEXT used Partition_'+@FileGroupName+''
EXEC(@strSQL)
/* 파티션함수의 마지막범위를 분리한다. */
SET @strSQL = 'USE Partition_DB
ALTER PARTITION FUNCTION PF_Date() SPLIT RANGE('''+@PartitionRange+''')'
EXEC(@strSQL)
GO
--[스크립트7-186] 슬라이딩 윈도우 처리 프로시저 실행
EXEC dbo.usp_Partition_SlidingWindowProcess
GO