분할된 테이블 및 인덱스에 대한 지침 계획
테이블이나 인덱스를 분할하기 전에 다음 데이터베이스 개체 만들기를 계획해야 합니다.
파티션 함수
파티션 구성표
파티션 함수는 분할 열이라고 하는 특정 열의 값을 기반으로 파티션 집합에 테이블이나 인덱스의 행을 매핑하는 방식을 정의합니다.
파티션 구성표는 파티션 함수로 지정된 각 파티션을 파일 그룹에 매핑합니다.
파티션 함수 계획
파티션 함수를 계획할 때 두 가지 요인, 즉 테이블 분할 방법을 결정하는 값을 포함하는 열(분할 열)과 각 파티션에 대한 분할 열의 값 범위를 고려해야 합니다. 이 값 범위에 따라 테이블을 구성하는 파티션 수가 결정됩니다. 테이블당 최대 1,000개의 파티션이 가능합니다.
분할 열과 값 범위를 선택할 때는 날짜와 같은 논리적 방법으로 데이터를 그룹화할 수 있는 정도와 이 논리적 그룹화가 데이터의 하위 집합 관리에 적합한지를 고려해야 합니다.
예를 들어 AdventureWorks 예제 데이터베이스의 분할 시나리오에서 TransactionHistory 및 TransactionHistoryArchive 테이블은 TransactionDate 필드에서 분할됩니다. 각 파티션의 값 범위는 한 달입니다. TransactionHistory 테이블에서는 해당 연도의 최신 트랜잭션 즉, 거래 내역을 유지 관리하고 TransactionHistoryArchive에서는 이전 거래 내역을 유지 관리합니다. 이러한 방식으로 테이블을 분할하면 월별로 TransactionHistory에서 TransactionHistoryArchive로 한 달 치의 이전 데이터를 빠르고 효율적으로 전송할 수 있습니다.
이 특정 시나리오에 대한 자세한 내용은 파티션을 디자인하여 데이터 하위 집합 관리를 참조하십시오.
인덱스 키로 사용할 수 있는 데이터 형식의 열을 분할 열로 지정할 수도 있습니다. timestamp 데이터 형식, Microsoft.NET Framework CLR(공용 언어 런타임) 사용자 정의 데이터 형식 및 별칭 데이터 형식은 예외입니다. 자세한 내용은 분할된 테이블 및 인덱스 만들기를 참조하십시오.
파티션 구성표 계획
파티션 구성표를 계획할 때는 파티션을 넣을 파일 그룹을 결정해야 합니다. 별개의 파일 그룹에 파티션을 넣는 주된 이유는 파티션 백업 작업을 독립적으로 수행하기 위해서입니다. 이는 개별 파일 그룹에 대해 백업을 수행할 수 있기 때문입니다. 자세한 내용은 SQL Server의 데이터베이스 백업 및 복원을 참조하십시오.
중요 |
---|
SQL Server에서는 테이블의 파일 그룹에 속하는 파일이 ONLINE 상태가 아닐 경우 쿼리에서 어떤 파티션에 액세스하든 관계없이 분할된 테이블에 액세스하는 쿼리가 완료된다고 보장하지 않습니다. |