RDBMS/General

SESSION(세션) / TRANSACTION(트랜잭션) / SQL

junsuyoun 2022. 12. 28. 21:41
728x90
반응형

데이터베이스의 세션, 트랜잭션, SQL에 대해 간단하게 알아보겠습니다.

  • 세션: 데이터베이스와 트랜잭션을 수행하기 위해 연결되는 논리적 단위
  • 트랜잭션: 데이터베이스와 연결 된 세션 내의 데이터를 처리하는 단위
  • SQL: 트랜잭션 내에서 데이터베이스와 데이터를 상호 작용할 수 있는 언어

SESSION

database certification

TCP 3 Way-Handshake 단계를 통해 TCP 통신 정상이 확인된다면 Connection URL의 데이터베이스 이름 / USER ID / USER PASSWORD를 통해 인증 단계를 확인 합니다.

database session

데이터베이스의 인증 단계를 거치고난 후 일을 처리하는 워킹 프로세스의 특정 Thread에 연결을 시도 하고 난 후에는 워킹 프로세스와 실질적으로 일을 처리할 수 있는 세션이 활성화 됩니다.


TRANSACTION

세션 활성화 이후 해당 세션은 SQL 수행을 위한 준비 상태가 됩니다. SQL 수행 시 자동으로 트랜잭션이 활성화 SQL 수행이 완료 되더라도 트랜잭션 종료를 알리는 TCL을 만나기 전까지는 트랜잭션이 활성화 된 상태 입니다.

Statement(or PrepareStatement) 활성

SQL을 수행하기 위해서 기본적으로 Statement(or PrepareStatement)를 활성화 해야 합니다. 만약 활성화를 하지 않는 경우 세션 연결 이후 트랜잭션 연결을 하지 못 합니다.

Cursor 활성

커서는 데이터를 주고 받는 역할을 합니다. 데이터베이스에 데이터를 입력하거나 데이터를 읽어오거나 할 때 데이터를 처리하는 단위가 됩니다. 세션이 활성화 되고 트랜잭션을 처리하는 단계 커서까지 오픈이 되면 SQL을 처리할 수 있는 단계가 됩니다. 


SQL

최초 SQL 수행 (하드 파싱)

SQL 수행 시 compile 단계에서 SQL ID를 만들고 Loader 단계에서 plan scan을 통해 동일한 SQL ID가 존재 하지 않으면 plan generation을 수행 하고 SQL을 수행 합니다.

캐싱 SQL 수행 (소프트 파싱)

SQL 수행 시 compile 단게에서 SQL ID를 만들고 Loader 단계에서 plan scan을 통해 동일한 SQL ID가 발견되면 plan generation을 하지 않고 SQL을 수행 합니다.




 

728x90
반응형