AdventureWorks 예제 데이터베이스에서 분할
SQL Server 2005 에는 AdventureWorks 예제 데이터베이스에 대해 실행되어 분할 시나리오를 구현할 수 있는 두 개의 예제 Transact-SQL 스크립트가 포함되어 있습니다. 스크립트를 설치하고 실행하는 방법은 Readme_PartitioningScript 및 Readme_SlidingWindow를 참조하십시오.
첫 번째 스크립트인 PartitionAW.sql에서는 TransactionHistory 및 TransactionHistoryArchive라는 AdventureWorks 테이블을 분할합니다. TransactionHistory 테이블에는 현재 연도의 판매 기록이 포함되어 있습니다. 이 테이블은 주로 새 기록을 삽입하고 필요한 경우 이 기록을 업데이트하는 데 사용됩니다. TransactionHistoryArchive 테이블에는 현재 연도 이전의 판매 기록이 포함되어 있습니다. 이 테이블은 주로 SELECT 쿼리에 사용되며 데이터를 데이터 웨어하우스로 이동하기 위한 준비 테이블로 사용됩니다. 이러한 테이블의 분할 디자인에 대한 자세한 내용은 분할된 테이블 및 인덱스에 대한 지침 계획을 참조하십시오.
실제 상황에서는 TransactionHistory 및 TransactionHistoryArchive 테이블이 데이터베이스의 가장 큰 두 테이블이 됩니다. 이러한 두 테이블을 분할하면 두 테이블 간에 월별 데이터의 하위 집합을 관리할 수 있습니다. 매월 가장 오래된 데이터가 TransactionHistory에서 TransactionHistoryArchive로 이동합니다. 이 방법으로 TransactionHistory의 데이터는 INSERT 및 UPDATE 작업을 위해 최신 상태를 유지하는 반면 오래된 데이터는 스크러빙 및 분석을 위해 TransactionHistoryArchive로 이동합니다. 테이블이 분할되어 있으므로 이전 릴리스에서 몇 분 또는 몇 시간 걸리던 테이블 간 월별 데이터 "청크" 전송이 몇 초 정도로 단축되었습니다. 이는 데이터를 실제로 재배치하는 것이 아니라 메타데이터 작업만 이루어지기 때문입니다.
두 번째 스크립트인 Sliding.sql한 달 동안의 데이터에 대해 이 "슬라이딩 윈도우(sliding window)" 시나리오를 구현합니다. 이 스크립트의 작동 방법에 대한 내용은 파티션을 디자인하여 데이터 하위 집합 관리를 참조하십시오.