SQL 서버가 데이터베이스를 구성하는 물리 파일에 액세스할 때는 몇가지 특징적인 패턴이 있다.
시나리오를 예로 들어 어떤 종류의 액세스가 SQL 서버의 데이터베이스 파일에 대해 발생하는지를 생각해보자.
1. 데이터 파일에서의 액세스 패턴
1) 온라인 트랜잭션 처리(OLTP) 시스템의 경우
OLTP 시스템에서는 수 많은 클라이언트가 각각 매우 작은 범위의 데이터를 참조 또는 갱신한다.
또한 각 클라이언트가 필요로 하는 데이터의 종류와 분포범위는 제각각이기 때문에 데이터 파일에 저장된 데이터가
파일 내의 다양한 장소에 점재해 있을 가능성이 높다.
그 결과 데이터 파일에 액세스하는 것은 파일 전체에 랜덤으로 발생하는 경향이 높아진다.
2) OLAP 의 경우
주요 용도가 축적한 데이터를 분석하는 일인 OLAP - 데이터 웨어하우스(DWH)인 경우 소수의 클라이언트가 대규모 기록을 수행한다. 클라이언트가 필요로 하는 데이터는 '명세 정보의 과거 10년분'과 같이 일정한 연속성을 가진 데이터인 경우가 많다. 테이블의 디자인에 따라서도 다르지만, 많은 경우는 데이터 파일에 순차 액세스하는 경향이 강하다고 할 수 있다.
2. 트랜잭션 로그 파일의 액세스 패턴
로그 파일에 갱신 내용을 기록할 때는 반드시 시계열로 진행된다. 복수의 갱신 처리가 데이터베이스에서 실행되고 있는 경우에도 각각의 내용이 변경된 순서대로 디스크상의 트랜잭션 로그 파일에 기록된다.
다시 말해 디스크에 기록하는 포인트는 항상 일부분이다.
따라서 물리적으로 여러개의 디스크가 있더라도 혜택을 받을 수 없다.
- 트랜잭션 로그는 실행된 순서대로 로그 파일에 기록된다.
- 2개의 로그 파일에 동시에 기록되는 일은 없다.
또한, 트랜잭션 로그 파일이 존재하는 디스크는 항상 전회의 디스크 기록이 종료된 지점부터 다음의 기록을 시작한다.
때문에 각각의 데이터베이스에 로그 파일 전용의 디스크를 준비하면 헤드가 기록시작 포인트까지 이동하는 시간을 매회 절약할 수 있다.
1)로그 파일 전용의 디스크가 아닌 경우
- 같은 디스크상에 배치된 다른 파일의 읽기 등 트랜잭션 로그 기록을 재개할 때마다 디스크의 회전과 디스크 헤드의 탐색이 발생
- 1 회당 디스크 헤드의 이동은 짧아보이지만, 빈도가 잦아짐에 따라 퍼포먼스에 악영향을 미친다.
- 트랜잭션 로그 파일 전용 디스크라면 디스크 헤드가 이동하지 않기 때문에 기록 재개를 같은 지점에서 시작 가능하다.
'DB ARCHITECTURE' 카테고리의 다른 글
sql server 메모리 관리(1) - 가상 어드레스 공간 (0) | 2022.03.22 |
---|---|
SQL SERVER 가 수행하는 I/O의 특징적 동작 (0) | 2022.01.22 |
교착상태 - DEAD LOCK (0) | 2021.12.17 |
[MSSQL] 격리수준-낙관적 동시성 (0) | 2021.12.16 |
[MSSQL] 격리수준 - 비관적 동시성 (0) | 2021.12.16 |