[CS/데이터베이스] Stored Procedure (저장 프로시저) - 2부

황제연·2025년 4월 15일

CS학습

목록 보기
45/194

Stored Proceduer 생성 방식

Stored Procedure 생성 과정은 다음과 같습니다

  1. 먼저 프로시저 구문을 분석해, 오류가 있는지 확인합니다
  2. 이후, 지연된 이름 확인 (Deferred Name Resolution) 과정을 거칩니다.
    해당 과정으로 프로시저 정의 시에는 개체의 존재 여부를 확인하지 않고, 실행 시에 확인합니다
  3. 사용자의 프로시저 생성권한을 확인합니다
  4. 시스템 테이블에 프로시저를 등록합니다

Stored Procedure와 SQL 동작방식 비교

각각을 처음 실행할 때, 다음과 같이 동작합니다

SQL 동작방식


일반적인 SQL문은 처음 실행할 때, 다음과 같이 동작합니다
1. SQL 문법을 분석(Parse)합니다
2. 개체의 이름을 확인해서, 관련 테이블을 탐색합니다
3. 사용권한을 확인합니다
4. 쿼리를 최적화하기 위한 실행계획을 세웁니다
5. 이후, SQL 쿼리 컴파일 후, 실행계획 결과를 캐시에 등록합니다
6. 이제 컴파일된 결과를 실행합니다

Stored Procedure 동작방식

이미 프로시저를 생성하는 단계에서 구문분석을 마쳤기 때문에,
이 과정을 제외하고는 앞선 SQL 쿼리문 동작방식과 동일합니다

앞서 프로시저 생성단계에서 지연된 이름 확인 과정을 거친다고 했는데,
생성과정에서 테이블이 없어 발생하던 오류는 실행 단계에서 확인합니다

반복해서 실행한다면?

만약 반복해서 각각을 실행한다면 어떻게 동작할까요?

SQL 동작방식

캐시에서 확인한 뒤, 바로 실행합니다
단, 쿼리문 전체가 정확히 일치해야합니다

Stored Procedure 동작방식

Stored Procedure도 동일하게 캐시의 데이터를 가져와 재사용합니다

즉, 두 방식 모두 동일한 요청에 대해서는 효율적으로 동작합니다

참고

profile
Software Developer

0개의 댓글