SQL Server 818

SQL Server 테이블 및 인덱스 구조 아키텍처(1/4) – 테이블 및 인덱스 구성

SQL Server 테이블 및 인덱스 구조 아키텍처(1/4) – 테이블 및 인덱스 구성 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 데이터베이스의 개체는 8KB 페이지의 컬렉션으로 저장된다. 테이블 미 및 인덱스 페이지가 구성되고 저장, 액세스 되는 방법에 대해서 4장에 걸쳐 다루어 본다. [테이블 구성] 테이블은 하나 이상의 파티션에 포함되어 있으며 각 파티션에는 데이터 행이 힙 또는 클러스터형 인덱스 구조로 포함되어 있다. 힙 또는 클러스터형 인덱스 페이지는 데이터 행의 열 유형에 따라 하나 이상의 할당 단위로 관리 된다. 페이지 할당 관리 관련 : http://sqlmvp.kr/140186842239 아래 그림은 테이블의 구성을 나타낸다. [..

SQL Server 트랜잭션 로그 아키텍처(4/4) – 미리 쓰기 트랜잭션 로그

SQL Server 트랜잭션 로그 아키텍처(4/4) – 미리 쓰기 트랜잭션 로그 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서는 미리 쓰기 로그(Write-Ahead Logging)기능을 사용하여 관련된 로그 레코드가 디스크에 기록되기 전에는 어떠한 데이터 수정 내용도 디스크에 기록되지 않도록 한다. 따라서 ACID 속이 유지 관리 된다. [Write-Ahead Logging 프로토콜] 데이터가 올바르게 저장 및 교환되었는지 그리고 장애가 발생했을 경우 데이터를 알 수 있는 상태로 복구 할 수 있는지 확인하는데 필요한 특정하게 정의된 수행 단계의 모음이다. 네트워크에 정의된 프로토콜이 일관되고 보호된 방식으로 데이터를 교환하는 것처럼 WAL 역시..

SQL Server 트랜잭션 로그 아키텍처(3/4) – 검사점 및 로그의 활성 부분

SQL Server 트랜잭션 로그 아키텍처(3/4) – 검사점 및 로그의 활성 부분 Version : SQL Server 2005, 2008, 2008R2, 2012 검사점은 현재 데이터베이스의 버퍼 캐시에 있는 커멋되지 않은 데이터 페이지를 디스크로 플러시 한다. 따라서 데이터베이스의 전체 복구 중에 처리되어야 하는 로그의 활성 부분이 최소화 된다. 전체 복구가 일어나는 동안 다음의 동작이 수행 된다. 시스템이 중단되기 전 디스크로 플러시되지 않은 로그의 수정 레코드가 롤포워드 된다. 커밋 또는 롤백 로그 레코드가 없는 불완전한 트랜잭션과 관련된 모든 수정 내용이 롤백 된다. [검사점 수행 프로세스] 검사점 레코드에는 데이터베이스를 수정한 모든 활성 트랜잭션 목록이 포함 된다. 검사점의 시작을 표시하는..

SQL Server 트랜잭션 로그 아키텍처(2/4) – 트랜잭션 로그 물리 아키텍처

SQL Server 트랜잭션 로그 아키텍처(2/4) – 트랜잭션 로그 물리 아키텍처 Version : SQL Server 2005, 2008, 2008R2, 2012 트랜잭션 로그는 데이터베이스의 무결성 보장 및 복구를 위해 사용된다. 물리적 아키텍처를 이해하면 트랜잭션 로그를 보다 효울적으로 관리 할 수 있다. 데이터베이스의 트랜잭션 로그는 하나 이상의 물리적 파일에 매핑 된다. 개념상으로 로그 파일은 로그 레코드의 문자열이다. 실제 로그 레코드의 시퀀스는 트랜잭션 로그를 구현하는 물리적 파일 집합에 효율적으로 저장 된다. SQL Server 데이터베이스 엔진은 내부적으로 각 물리 로그 파일을 여러 개의 가상 로그 파일로 나눈다. 가상 로그 파일의 크기는 고정되어 있지 않으며 물리 로그 파일에 대해 고..

SQL Server 트랜잭션 로그 아키텍처(1/4) – 트랜잭션 로그 논리 아키텍처

SQL Server 트랜잭션 로그 아키텍처(1/4) – 트랜잭션 로그 논리 아키텍처 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스의 무결성을 보장하기 위해서 사용되는 트랜잭션 로그의 기록 방법 및 데이터 복구에 트랜잭션 로그가 사용되는 방법을 이해하고 기본 아키텍처에 대해서 알아 보자. 이번 트랜잭션 로그 아키텍처는 총 4부로 진행 된다. SQL Server 트랜잭션 로그는 로그레코드 문자열처럼 논리적으로 작동 한다. 각 로그 레코드는 LSN(로그 시퀀스 넘버)으로 식별 된다. 각 새 로그 레코드는 LSN과 함께 로그의 논리적 끝에 작성되며 이때 LSN은 오름차순이다. 로그 레코드는 작성된 순서대로 저장 된다. 각 로그 레코드는 자신이 속한 트랜잭션 ID가..

파일 및 파일 그룹 아키텍처

파일 및 파일 그룹 아키텍처 Version : All Version SQL Server에서 데이터베이스는 운영체제의 파일 시스템에 종속 적이다. 데이터와 로그는 같은 파일에 저장되지 않으며 각 파일은 한 데이터베이스에서만 사용 된다. 파일 그룹은 명명된 파일 모음이며 백업 및 복원 작업 등의 데이터 배치 및 관리 태스크에 도움이 된다. [데이터베이스 파일] 데이터베이스 파일의 종류에는 3가지의 유형이 있다. 주 데이터 파일 : 데이터베이스의 기본 파일 이며 모든 데이터베이스에는 하나의 주 데이터 파일이 있다. 주로 사용되는 확장자는 .mdf 이다. 보조 데이터 파일 : 주 데이터 파일이 아닌 모든 데이터 파일을 구성. 데이터베이스에 따라 보조 데이터파일을 사용하지 않거나 여러 개 있을 수도 있다. 주로 ..

SQL Server 페이지 및 익스텐트 아키텍처(4/4) – 수정된 익스텐트 추적

SQL Server 페이지 및 익스텐트 아키텍처(4/4) – 수정된 익스텐트 추적 Version : SQL Server 2005, 2008, 2008R2, 2012 페이지 및 익스텐트 아키텍처의 마지막 챕터 이다. 지금까지는 페이지 및 익스텐의 구조, 익스텐트에 대한 할당 관리, 공간관리 등에 대해서 살펴 보았다. 페이지 및 익스텐트 이해 : http://sqlmvp.kr/140186753568 익스텐트 할당 미 및 빈 공간 관리 : http://sqlmvp.kr/140186842239 개체에서 사용하는 공간 관리 : http://sqlmvp.kr/140186908637 이번 시간에는 수정된 익스텐트 추적에 대해서 알아 보도록 한다. 수정된 익스텐트에 대한 이해는 백업과도 큰 관련이 있다. 백업이 이루질..

SQL Server 페이지 및 익스텐트 아키텍처(3/4) – 개체에서 사용하는 공간 관리

SQL Server 페이지 및 익스텐트 아키텍처(3/4) – 개체에서 사용하는 공간 관리 Version : SQL Server 2005, 2008, 2008R2, 2012 앞의 포스팅에서 페이지 및 익스텐트에 대한 이해, 익스텐트 할당 및 빈 공간 관리등에 대해서 살펴 보았다. 페이지 및 익스텐트 이해 : http://sqlmvp.kr/140186753568 익스텐트 할당 및 빈 공간 관리 : http://sqlmvp.kr/140186842239 이번 시간에는 개체에서 사용하는 공간 관리에 대해서 알아 본다. IAM(Index Allocation Map)페이지는 할당 단위에 사용되는 데이터베이스 파일의 4GB 부분에 익스텐트를 매핑한다. 할당 단위의 유형은 다음과 같다. IN_ROW_DATA : 힙 또는..

SQL Server 페이지 및 익스텐트 아키텍처(2/4) – 익스텐트 할당 및 빈공간 관리

SQL Server 페이지 및 익스텐트 아키텍처(2/4) – 익스텐트 할당 및 빈공간 관리 Version : SQL Server 2005, 2008, 2008R2, 2012 앞에서 SQL Server의 기본 저장공간 단위는 페이지(8KB)이며 8개의 페이지가 모여 익스텐트로 불리며 관리 된다고 설명 하였다. 페이지 및 익스텐트 이해 : http://sqlmvp.kr/140186753568 이번 시간에는 익스텐트 할당 미 및 빈공간에 대해서 어떻게 관리하는지 알아 보자. 익스텐트 할당을 SQL Server의 구조는 비교적 간단하다. 이 데이터 구조를 사용하면 다음과 같은 이점이 있다. 빈 공간 정보는 빽빽하게 묶여 있으므로 이 정보를 포함하는 페이지의 수는 비교적 적다. 따라서 할당 정보 검색에 필요한 디..

SQL Server 페이지 및 익스텐트 아키텍처(1/4) – 페이지 및 익스텐트 이해

SQL Server 페이지 및 익스텐트 아키텍처(1/4) – 페이지 및 익스텐트 이해 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server의 기본 저장 단위는 페이지 이다. 익스텐트는 물리적인 페이지 8개의 모음이다. 앞으로 총 4부에 걸쳐 페이지 및 익스텐트의 아키텍처를 살펴 보자. 페이지 및 익스텐트 아키텍처를 이해 함으로써 데이터베이스를 효율적인 디자인 및 개발 하는데 많은 도움이 된다. SQL Server의 기본 저장 단위는 페이지라고 하였다. 데이터베이스에서 할당되는 데이터 파일(MDF, LDF)의 디스크 공간은 논리적인 페이지로 나누어 지며 0 ~ N 까지의 숫자가 연속적으로 페이지에 부여 된다. 디스크 I/O 작업은 페이지 수준에서 수행되며 익..