anott
기록
anott
  • 분류 전체보기
    • 오라클
    • SQL
    • 알고리즘
      • 백준저지
      • 프로그래머스
      • SWEA
    • 개발 관련
    • 프론트엔드
      • TypeScript, Next.js
      • React 공식문서 읽기
hELLO · Designed By 정상우.
anott
카테고리 없음

SELECT, DML, COMMIT

카테고리 없음

SELECT, DML, COMMIT

2023. 7. 2. 22:53

SELECT가 발생하는 과정

  1. 구문 분석
    • SQL 문법에 맞는지, 테이블이나 뷰 등이 존재하는지 확인한다.
    • 실행계획도 찾는다.
  2. 실행
    • 데이터베이스 버퍼 캐시에 해당 데이터가 존재하는지 확인한다. 없다면 새롭게 데이터 파일을 읽어서 데이터베이스 버퍼 캐시에 저장해놓는다.
    • INSERT, UPDATE, DELETE라면 데이터베이스 버퍼 캐시의 데이터가 바뀐다.
  3. 인출
    • 데이터베이스 버퍼 캐시에서 해당 데이터를 읽어 클라이언트 단에 출력한다.
    • INSERT, UPDATE, DELETE에서는 인출 단계가 없다.

출처 : https://dataonair.or.kr/db-tech-reference/d-story/db-tuning-service/?mod=document&uid=42394

 

 

DML이 발생하는 과정

  1. 데이터 파일로 테이블을 읽고, ROLLBACK을 위해서 데이터베이스로부터 언두 세그먼트를 읽는다. 그리고 데이터베이스 버퍼 캐시에 저장한다.
  2. 안전하게 ROW을 변경하기 위해 LOCK을 건다.
    • TX Lock(트랜잭션 Lock) - ROW LOCK
    • TL(Table Locks)
  3. 복구를 위해 리두로그 버퍼에는 DML 전후 정보가 모두 저장된다.

출처 : https://dataonair.or.kr/db-tech-reference/d-story/db-tuning-service/?mod=document&uid=42396

 

 

COMMIT이 발생하는 과정

  1. COMMIT을 입력한다.
  2. 리두로그 버퍼에는 DML 전후 데이터가 존재하는데, 그곳에 시스템 변경 번호(System Change Number)을 준다. LGWR는 리두로그 파일에 변경 데이터를 저장한다.
  3. 서버 프로세스는 유저 프로세스에게 Committed 메시지를 전송하여, 클라이언트 단에 메시지를 출력한다.
  4. 리두로그 파일이 꽉 차있다면 Log Switch가 일어난다. (라운드로빈)
  5. 체크포인트 프로세스가 컨트롤 파일과 데이터 파일의 헤드 영역에 시스템 변경 번호와 관련 상태 정보를 저장한다. → 체크포인트 이벤트
  6. DBWR가 데이터베이스 버퍼 캐시에 있는 정보를 테이블에 저장한다.

출처 : https://dataonair.or.kr/db-tech-reference/d-story/db-tuning-service/?mod=document&uid=42397

 

 

 

저작자표시 비영리 (새창열림)
    anott
    anott

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.