본문 바로가기
Database/Oracle DB

Oracle DB에서의 DDL 실행 과정

by 슬픈 야옹이 2023. 5. 3.

오라클 데이터베이스에서, DDL (Insert, Update, Delete)은 파스 - 실행 - 추출의 단계를 거쳐 실행된다.

 


사용자가 sqlplus 등의 유저 프로세스를 이용해 DB에 접속한다.

DB에는 해당 유저 프로세스가 전달하는 명령을 전달받아 실행할 서버 프로세스가 생성된다.

 

 

파스 단계

서버 프로세스는 입력한 명령에 대해 문법검사를 수행하고,
데이터 딕셔너리 캐시를 참고하여 작성한 명령이 실행 가능한지 검증한다.

작성한 명령이 실행 가능하다면 해당 명령이 이전에 실행된 적 있는지 라이브러리 캐시를 조회한다.
조회하는 방법은 작성한 명령에 해당하는 해시코드를 조회하는 방식이다.

실행하려는 명령이 이전에 실행된 적 있다면(라이브러리 캐시에 있다면) 라이브러리 캐시의 내용을 토대로
이전에 생성한 실행계획을 실행계획으로 결정한다.

이전에 실행된 적이 없다면 실행 계획을 새로 생성하고, 생성한 실행 계획과 실행할 명령의 해시코드를 라이브러리 캐시에 저장한다.


실행 단계

결정된 실행계획에 필요한 테이블 등의 데이터를 데이터베이스의 데이터 파일에서 인스턴스의 데이터베이스 버퍼 캐시로
로드한 뒤 실행 계획대로 명령을 실행한다.
또한 실행한 명령을 리두 로그 캐시에 저장하고, LGWR 프로세스가 리두 로그 캐시의 내용을 리두 로그 파일에 쓴다.
이후에 일정 조건을 만족하면 DBWR 프로세스가 변경된 데이터를 인스턴스로부터 데이터 파일로 쓴다.


패치 단계

서버 프로세스가 명령 실행 결과를 이진 데이터로 유저 프로세스에게 전송한다.

유저 프로세스는 전달받은 데이터를 사용자가 볼 수 있는 형태로 적절히 변환하여 출력한다.


'Database > Oracle DB' 카테고리의 다른 글

Oracle 네트워크 설정  (0) 2023.03.05
Oracle Database 사용자 계정 생성  (0) 2023.03.05
Oracle 인스턴스의 상태, 시작, 종료  (0) 2023.03.05
Oracle Database 설치(Centos 7 Linux)  (0) 2023.03.05