sliver__

SQL 처리 과정과 I/O 본문

Backend/SQL

SQL 처리 과정과 I/O

sliver__ 2026. 3. 2. 14:36
728x90

SQL(Structured Query Language)

  • 선언적 질의 언어

 

Optimizer

  • 작성한 SQL을 프로시저를 만들어서 수행한다.
  • DBMS의 내부 엔진
  • DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정을 SQL 최적화라고 한다.

 

바인드 변수의 중요성

  • SQL 옵티마이저와 로우 소스 생성기는 들어오는 SQL을 프로시저로 변환해 라이브러리 캐시에 저장한다.
  • 라이브러리 캐시에 동일한 프로시저가 있으면 하드 파싱을 거치지 않고 소프트 파싱만 거쳐 재 사용된다.
  • 바인드 변수를 파라미터화해서 SQL문을 사용하면 파라미터에 어떤 값이 들어오든 재 사용되는 프로서저가 된다.
  • 하지만 바인드 변수를 사용하지 않고 직접 변수를 넣으면 변수까지 SQL로 보아 서비스를 사용하는 유저별로 다른 SQL이 수행되어 재 사용될 수 없다.
    • e.g.) select * from customer where login_id = '" + login_id + "'";
    • 프로시저는 다음과 같이 생성된다.
      • create procedure LOGIN_TOMMY() {...} // 로그인 아이디가 tommy
      • create procedure LOGIN_EUNSU(){...} // 로그인 아이디가 eunsu.
    • e.g.) select * from customer where login_id = ?
      • create procedure LOGIN(login_id in varchar2) // login_id가 파라미터이고 해당 프로시저를 공유해서 재 사용한다.
728x90
Comments