CREATE PARTITION FUNCTION(Transact-SQL)
현재 데이터베이스에서 지정된 열 값에 기반하여 테이블 또는 인덱스의 행을 파티션에 매핑하는 함수를 만듭니다. 분할된 테이블 또는 인덱스를 만드는 첫 번째 단계는 CREATE PARTITION FUNCTION을 사용하는 것입니다.
1. int 열에 RANGE LEFT 파티션 함수 만들기
다음 파티션 함수는 테이블이나 인덱스를 4개의 파티션으로 분할합니다.
CREATE PARTITION FUNCTION myRangePF1 (int) AS RANGE LEFT FOR VALUES (1, 100, 1000);
다음 표에서는 분할 열 col1에 대해 이 파티션 함수를 사용하는 테이블이 분할되는 방식을 보여 줍니다.
파티션 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
값 | col1 <= 1 | col1 > 1 AND col1 <= 100 | col1 > 100 AND col1 <=1000 | col1 > 1000 |
2. int 열에 RANGE RIGHT 파티션 함수 만들기
다음 파티션 함수는 RANGE RIGHT를 지정한다는 점을 제외하고 boundary_value [ ,...n ]에 위 예와 동일한 값을 사용합니다.
CREATE PARTITION FUNCTION myRangePF2 (int) AS RANGE RIGHT FOR VALUES (1, 100, 1000);
다음 표에서는 분할 열 col1에 대해 이 파티션 함수를 사용하는 테이블이 분할되는 방식을 보여 줍니다.
파티션 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
값 | col1 < 1 | col1 >= 1 AND col1 < 100 | col1 >= 100 AND col1 < 1000 | col1 >= 1000 |
3. datetime 열에 RANGE RIGHT 파티션 함수 만들기
다음 파티션 함수는 테이블이나 인덱스를 12개 파티션으로 분할합니다. 즉, 일년의 값을 분할하여 datetime 열에 각 달에 대한 하나의 파티션을 만듭니다.
CREATE PARTITION FUNCTION [myDateRangePF1] (datetime)
AS RANGE RIGHT FOR VALUES ('20030201', '20030301', '20030401',
'20030501', '20030601', '20030701', '20030801',
'20030901', '20031001', '20031101', '20031201');
다음 표에서는 분할 열 datecol에 대해 이 파티션 함수를 사용하는 테이블 또는 인덱스가 분할되는 방식을 보여 줍니다.
파티션 | 1 | 2 | ... | 11 | 12 |
|---|---|---|---|---|---|
값 | datecol < February 1, 2003 | datecol >= February 1, 2003 AND datecol < March 1, 2003 |
| datecol >= November 1, 2003 AND col1 < December 1, 2003 | col1 >= December 1, 2003 |
4. char 열에 파티션 함수 만들기
다음 파티션 함수는 테이블이나 인덱스를 4개의 파티션으로 분할합니다.
CREATE PARTITION FUNCTION myRangePF3 (char(20))
AS RANGE RIGHT FOR VALUES ('EX', 'RXE', 'XR');
다음 표에서는 분할 열 col1에 대해 이 파티션 함수를 사용하는 테이블이 분할되는 방식을 보여 줍니다.
파티션 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
값 | col1 < EX... | col1 >= EX AND col1 < RXE... | col1 >= RXE AND col1 < XR... | col1 >= XR |
