DB/MSSQL

[MSSQL] SQL Server 파티션 이해하기

HMHA 2023. 2. 15. 12:01
300x250
반응형
300x250

이번 시간에는 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

 

분할된 테이블 및 인덱스 - SQL Server, Azure SQL Database, Azure SQL Managed Instance

분할된 테이블 및 인덱스를 사용하면 데이터가 데이터베이스의 둘 이상의 파일 그룹에 분산되거나 단일 파일 그룹에 저장될 수 있는 단위로 나눌 수 있습니다.

learn.microsoft.com

 

 


출처 : https://datalibrary.tistory.com/114

 

[SQL Server] SQL Server 파티션 이해하기

이번 시간에는 SQL Server의 파티션에 대해서 알아보도록 하겠습니다. 대용량의 테이블을 관리하는 환경에서는 거의 대부분 파티션으로 테이블의 데이터를 관리하기 때문에 파티션에 대한 이해가

datalibrary.tistory.com

 

300x250
반응형