본문 바로가기

MSSQL

MSSQL 아키텍처 및 프로세스

반응형

  # 아키텍처  

 

MSSQL 아키텍처

출처 : https://dataonair.or.kr/db-tech-reference/d-guide/sql/?mod=document&uid=357

구성요소 

  • 메모리 Pool 
  • 스레드

 

데이터베이스 생성시

  • 주(Primary 또는 Main) 데이터 파일(.mdf)
  • 트랜잭션 로그 파일(.ldf)

 


 

  # MSSQL 메모리  

프로세스 전체 간 공유되는 메모리

MSSQL (Memory Pool) 역할
Procedure Cache SQL 및 SQL 실행계획을 공유해서 같은 SQL의 Parsing은 권한 확인만 수행 하도록 만들어서 실행 속도를 높임
  • Data Disctionary Cache : 데이터베이스 테이블과 뷰에 대한 정보, 구조, 사용자등에 대한 정보가 저장
  • Library Cache :  SQL 문장을 Server Process가 여러 단계를 거쳐 작업할 때 사용하는 작업 공간
Log Cache 변경사항이 발생하게 되면 Redo log file에 Write 되기 이전에 Memory에 먼저 Write 되는 영역

 

 


 

  # 프로세스  

 

 

ORACLE (프로세스) MSSQL (스레드)
사용자 프로세스  
서버 프로세스 Worker 스레드
백그라운드 프로세스 백그라운드 스레드

 

 

MSSQL 역할
ODS
(Open data services)
사용자 프로세스에 장애가 발생하면 프로세스의 리소스 복구를 수행
DB cleanup / shrinking 인스턴스 시작 시 필요한 경우 고장 복구를 수행, 임시 세그먼트, 익스텐트 정리 수행
Lazy Writer 버퍼 캐시의 dirty 버퍼를 데이터 파일에 기록
BWnn이라고 하기도 함
다중 프로세스를 쓰기 때문에 DBWn이라고 하기도 함
Database Checkpoint 체크 포인트가 발생하면 데이터 파일의 헤더를 갱신함으로써 버퍼 캐시와 데이터 파일의 동기화 시점을 관리
Log Writer 로그 버퍼를 관리하여 로그 버퍼를 디스크의 로그 파일에 기록
MS DTC
(Distributed Transaction Coordinator)
분산 트랜잭션 문제해결

 

 


 

MSSQL

 sp_who2

 

 

프로세스 상태
 * dormant : SQL Server 에서 세션을 다시 설정
 * running : 세션에서 일괄 처리를 하나 이상 실행
 * background : 세션에서 교착 상태 감지와 같은 백그라운드 작업을 실행
 * rollback : 세션에서 트랜잭션 롤백을 진행
 * pending : 세션이 작업자 스레드를 사용할 수 있을 때까지 기다림
 * runnable : 세션의 작업은 스케줄러의 실행 가능한 큐에 있음
 * spinloop : 세션의 작업이 spinlock 을 사용할 수 있을 때까지 기다림
 * suspended : 세션이 I/O 와 같은 이벤트가 완료되기를 기다림

 

 

 

 

반응형