이번 시간에는 SQL Server의 파티션에 대해서 알아보도록 하겠습니다. 대용량의 테이블을 관리하는 환경에서는 거의 대부분 파티션으로 테이블의 데이터를 관리하기 때문에 파티션에 대한 이해가 필수적이라고 할 수 있습니다.
▶ 파티션 정의
파티션이 설정 된 테이블이나 인덱스는 파일 그룹에 분할 될 수 있는 단위로 나누어지고 파티션 설정에 따라 테이블 내의 데이터가 수평적으로 분산됩니다.
파티션 테이블 구조
▶ 파티션을 사용하는 이유
1. 파티션을 각각 다른 디스크에 위치한 파일 그룹에 지정해서 쿼리의 병렬 수행 작업 가능
* 디스크 성능이 낮은 곳에 잘 사용하지 않는 오래 된 데이터가 담긴 파티션을 위치시키면 스토리지를 효율적으로 사용이 가능합니다.
2. 파일 그룹 단위로 백업 및 복구가 가능하기 때문에 효율적인 데이터베이스 운영 및 관리 가능
3. 파티션 단위로 데이터를 처리하거나 인덱스를 리빌드 하는 것이 가능하므로 작업에 소요되는 리소스 줄이기 가능
▶ 파티션 구성
파티션 구성도
파티션의 구성을 간단하게 살펴보면 위의 그림처럼 그려볼 수 있습니다. 파티션 범위 값을 설정하는 단계를 포함하고 있는 파티션 함수를 생성하고 파티션 구성표(scheme)을 생성하면서 이전에 생성했던 파티션 구성표와 매핑시킵니다. 파티션 구성표까지 생성한 뒤에는 CREATE TABLE 구문을 사용해서 테이블을 생성할 때 ON [파티션구성표] 구문을 사용해서 테이블에 파티션을 설정할 수 있습니다.
▶ SQL Server Version(버전)별 파티션 특징 비교
SQL Server Version | 파티션 사용 가능 유무 | 기타 설명 |
SQL Server 2005 이전 버전 | X | Partitioned View(분할된 뷰)를 대신 사용 * Partitioned View: 2개 이상의 테이블을 UNION ALL로 결합해서 하나의 VIEW로 정의한 형태 |
SQL Server 2005 | O | Range 파티션만 사용 가능 |
SQL Server 2008 | O | Range 파티션만 사용 가능 파티션 잠금 승격(Escalation) 사용 가능 파티션별 스레드 분산 처리 가능 |
SQL Server 2016 | O | SQL Server 2016 SP1부터 모든 Edition에서 사용 가능 * SQL Server 2016 SP1 이전 버전에서는 Enterprise Edition에서만 파티션 사용 가능 |
SQL Server 2019 | O | 최대 15,000개 파티션 설정 가능 - 이전 버전에서는 1,000개로 파티션 수 제한 |
*범위(Range) 파티션: 일반 범위 값을 지정한 파티션
*해시(Hash) 파티션: 해시 함수를 사용해서 여러 개의 파티션에 데이터를 균등 배분
*리스트 파티션: 범위 파티션과 유사하지만 리스트 파티션은 연속적이지 않은 범위를 지정하는 것이 가능
*복합 파티션: 범위 파티션으로 분할하고 각 파티션에 해시 파티션의 동작을 적용해서 데이터를 분할하는 파티션
원글 댓글 :
파티션 개수 관련해서 제가 알고 있는 것과 다른 내용이 있어서 말씀 드립니다.
테이블 당 파티션 최대 개수가...
SQL Server 2012부터 최대 15,000개이고, SQL Server 2012 이전 버전은 최대 1,000개입니다.
https://docs.microsoft.com/ko-kr/sql/relational-databases/partitions/partitioned-tables-and-indexes?view=sql-server-ver15
출처 : https://datalibrary.tistory.com/114
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] 프로파일러 사용하기 (0) | 2023.02.15 |
---|---|
[MSSQL] 날짜 형식 변경 및 날짜 변환표 (0) | 2023.02.10 |
[MSSQL] 외부 접속 허용하기 (0) | 2023.02.09 |
[MSSQL] mssql 에서 문자+숫자시퀀스로 아이디 생성하는 방법, 아이디 자동생성, automatically generate unique id (0) | 2023.02.09 |