분할
데이터베이스를 분할하면 성능이 향상되고 유지 관리가 쉬워집니다. 큰 테이블을 작은 개별 테이블로 분할하면 검색할 데이터가 줄어 일부 데이터만 액세스하는 쿼리의 경우 실행 속도가 빨라질 수 있습니다. 인덱스를 다시 작성하거나 테이블을 백업하는 등의 유지 관리 작업은 더욱 빨리 실행될 수 있습니다.
테이블을 물리적으로 개별 디스크 드라이브에 두면 테이블을 나누지 않고도 분할할 수 있습니다. 한 테이블을 하나의 물리적 드라이브에 두고 관련 테이블을 별도의 드라이브에 두면 테이블 간의 조인을 수반하는 쿼리를 실행할 때 여러 디스크 헤드가 동시에 데이터를 읽으므로 쿼리 성능이 향상될 수 있습니다. SQL Server 파일 그룹을 사용하여 테이블을 둘 디스크를 지정할 수 있습니다.
하드웨어 분할
하드웨어 분할은 사용 가능한 하드웨어 아키텍처를 활용할 수 있도록 데이터베이스를 디자인합니다. 다음은 하드웨어 분할 예입니다.
- 많은 쿼리가 동시에 실행될 수 있도록 여러 작업 스레드를 허용하는 다중 프로세서. 또는 쿼리 구성 요소가 동시에 실행되도록 하여 다중 프로세서에서 단일 쿼리를 더 빨리 실행할 수 있습니다. 예를 들어 쿼리에서 참조하는 각 테이블을 다른 스레드로 동시에 검색할 수 있습니다.
- 여러 디스크 드라이브에 걸친 데이터 스트라이프를 허용하는 RAID(Redundant Array of Independent Disks) 장치. 더 많은 읽기 및 쓰기 헤드가 데이터를 동시에 읽으므로 데이터 액세스가 더 빨라집니다. 일반적으로 여러 드라이브에 걸쳐 테이블을 스트라이프하면 하나의 드라이브에 테이블을 저장할 때보다 검색 속도가 향상될 수 있습니다. 또는 테이블을 관련 테이블과는 별도의 드라이브에 저장하면 이러한 테이블을 조인하는 쿼리 성능이 크게 향상될 수 있습니다. 자세한 내용은 RAID를 참조하십시오.
행 분할
행 분할은 한 테이블을 여러 테이블로 나눕니다. 이렇게 하면 각 테이블의 열 수는 같지만 행 수는 줄어듭니다. 예를 들어 10억 개의 행이 포함된 테이블을 각각 특정 연도의 한 달 데이터를 나타내는 12개의 작은 테이블로 행 분할할 수 있습니다. 특정 월의 데이터만 필요한 쿼리에서는 해당 테이블만 참조합니다.
테이블을 행 분할하는 방법은 데이터 분석 방식에 따라 결정됩니다. 쿼리가 가능한 적은 수의 테이블을 참조하도록 테이블을 분할해야 합니다. 그렇지 않으면 쿼리 시 테이블을 논리적으로 병합하기 위해 너무 많은 UNION 쿼리가 사용되어 성능에 영향을 줄 수 있습니다. 행 분할된 테이블을 쿼리하는 방법은 뷰 사용 시나리오를 참조하십시오.
보존 기간과 사용량을 기준으로 데이터를 행 분할하는 것이 가장 일반적입니다. 예를 들어 테이블에 지난 5년간의 데이터가 있지만 현재 연도의 데이터만 주기적으로 액세스한다고 가정합니다. 이러한 경우에는 데이터를 각각 1년간의 데이터만 포함하는 5개의 테이블로 분할할 수 있습니다.
자세한 내용은 분할된 테이블 및 인덱스를 참조하십시오.
열 분할
열 분할은 한 테이블을 보다 적은 열을 포함하는 여러 테이블로 나눕니다. 열 분할의 두 가지 유형은 정규화와 행 나누기입니다.
- 정규화는 테이블에서 중복 열을 제거하여 기본 키와 외래 키 관계로 기본 테이블에 연결된 보조 테이블에 이러한 열을 두는 표준 데이터베이스 프로세스입니다.
- 행 나누기는 원래 테이블을 보다 적은 열의 테이블로 세로로 나눕니다. 나뉜 테이블의 각 논리 행은 모든 분할된 테이블에 있는 동일한 UNIQUE KEY 열로 식별되는 다른 테이블의 동일한 논리 행과 일치합니다. 예를 들어 각 나뉜 테이블에서 ID가 712인 행을 조인하면 원래 행이 다시 만들어집니다.
행 분할과 마찬가지로 열 분할을 사용하면 쿼리에서 검색하는 데이터가 줄어듭니다. 따라서 쿼리 성능이 향상됩니다. 예를 들어 열이 7개인 테이블에서 처음 4개 열만 주로 참조하는 경우 뒤의 3개 열을 별도의 테이블로 나눠 성능을 향상시킬 수 있습니다.
여러 파티션의 데이터를 분석하는 경우에는 테이블을 조인하는 쿼리가 필요하므로 열 분할은 신중히 고려해야 합니다. 또한 파티션이 매우 클 경우 열 분할은 성능에 영향을 줍니다.
참고 항목
개념
하드웨어 기반의 솔루션 정보
RAID 수준 및 SQL Server
RAID 수준의 여러 가지 구현 비교