2018년 9월 30일 일요일

[SQL Server] SQL-Server의 구조

Professional SQL Server 2012 Internals and Troubleshooting 정리



이 그림는 SQL Server을 이해하는데 꼭 필요한 그림이다.

SQL Server의 쿼리 라이프 사이클을 이해하기 위해 필요한 그림

주황색 : HDD 혹은 SSD 말 그대로 데이터를 저장하는 곳, MDF, LDF 파일을 저장하는 곳이라고 생각하면 된다.

초록색 : DBMS 부분이다. 우리가 SQL-Server를 설치하면 이렇듯 Relational Engine과 Storage Engine 으로 구분이 된다. 

파란색 : 메모리 영역이다. 이 메모리 영역을 Buffer Pool 이라고 부르는데 이 영영은 Plan cache와 Data Cache로 나뉜다. 

보라색 : 우리가 사용하는 SSMS이다. DBMS에 접속하기 위한 툴이라고 생각하자.


SQL-Server는 두 개의 메인엔진이있다. Relational / Storage 이다.

Relational Engine : Query Processor 라고 부른다. 그것은 이 엔진의 가장 중요한 기능이 쿼리 최적화와 수행이기 때문이다. Command Parser는 쿼리의 문법을 체크하고 쿼리 트리를 준비한다. 모든 DBMS의 핵심인 Query Optimizer, 쿼리 수행을 책임지고 있는 Query Executor가 이 엔진에 포함된다.

Storage Engine : 해당 엔진은 DBMS의 모든 I/O를 관리한다. Access Method Code는 행, 인덱스, 페이지, 할당, 행 버전에 대한 I/O 요청을 처리한다. Buffer Manager는 SQL Server의 메모리 소비 주 고객인 Buffer Pool을 다룬다. Transaction Manager는 격리성을 유지하기 위한 데이터의 잠금과 트랜잭션 로그를 관리하는 역할을 한다.

Buffer Pool : 메모리를 가장 많이 사용하는 주체로 Plan cache와 Data Cache로 나뉘며 해당 부분은 다음 부분에 더 설명하기로 한다.


출처: Professional SQL Server 2012 Internals and Troubleshooting 6p



댓글 없음:

댓글 쓰기