이를 테스트하려면 실험에서 실제로 테이블을 분할해야합니다. 참조 http://www.kodyaz.com/articles/how-to-partition-table-non-partitioned-table-sql-server-2008.aspx를
파티셔닝 기능을 쿼리하면 파티셔닝 기능이 말하는 내용 만 알려줍니다. 데이터가 어디에 저장되어 있는지 말하지 않습니다. 여기에서 이미 설명했듯이 분할 기능을 설정하고 실제로 테이블을 분할하지 않고도 실행할 수 있습니다.
테이블을 분할하려면 분할 기능을 사용하여 함수 결과를 파일 그룹에 지정하는 파일 그룹 및 분할 체계를 작성해야합니다. 그런 다음 해당 파티션 구성표를 사용하는 테이블에 클러스터 된 키를 넣어야합니다.
파티셔닝 설정
나는 커맨드 라인 SQL의 전문가가 아닙니다. SSMS 인터페이스를 사용하여 파일 그룹 pfg1 (pf1 파일 사용) 및 pfg2 (pf2 파일 사용)를 설정했습니다. 그런 다음 파티션 기능과 체계를 선언했습니다.
CREATE PARTITION FUNCTION IDRange1 (int)
AS RANGE LEFT FOR VALUES (10) ;
GO
CREATE PARTITION SCHEME ps_IDRange1
AS PARTITION IDRange1
TO (pfg1, pfg2)
GO
테이블 및 클러스터형 인덱스 생성
CREATE TABLE [IDRanges](
[ID] [int] NOT NULL
)
GO
CREATE CLUSTERED INDEX PK_IDRanges
ON dbo.IDRanges(id) ON ps_IDRange1 (ID)
GO
이 작업을 수행 한 후 sys.partitions를 쿼리하면 (2005 년에) 테이블에 테이블에 대해 하나가 아닌 두 개의 파티션이있는 것을 볼 수 있습니다. 이것은이 테이블에 대한 파티셔닝을 완전히 구현했음을 나타냅니다.
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id index_id partition_number hobt_id 행
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 11 72057597780295680 0
72057597780361216 77067438912 72057597780361216 0
이제 두 개의 파티션 (각 행 수)이 있으므로 실험을 수행 할 수 있습니다.
행을 삽입
INSERT INTO IDRanges ([ID]) VALUES (17)
INSERT INTO IDRanges ([ID]) VALUES (7)
무슨 일이 있었는지 sys.partitions를 확인하십시오.
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id index_id partition_number hobt_id 행
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 1
72057597780361216 77067438912 72057597780361216 1
네. 각 파티션에서 하나의 행.
행을 이동하십시오.
UPDATE IDRanges
SET [ID] = 8 WHERE [ID] = 17
파티션 확인
select * from sys.partitions where object_id = object_id('IDRanges')
partition_id object_id index_id partition_number hobt_id 행
-------------------- ----------- ----------- -------- -------- -------------------- --------------------
72057597780295680 770674389 1 1 72057597780295680 2
72057597780361216 77067438912 72057597780361216 0
첫 번째 파티션에는 이제 1이 아닌 두 개의 행이 있고 두 번째 파티션에는 2가 아닌 0이 있습니다.
분할 된 테이블에서 클러스터 키를 수정 한 결과 행이 자동으로 이동되었음을 확인합니다.