반응형
이 포스팅은...
저장 프로시저의 기본적인 개념을 설명하는 포스팅입니다.
사용자 저장 프로시저의 사용방법을 알고싶다면 아래의 포스팅을 참고해주세요.
사용자 저장 프로시저의 매개변수 활용 방법은 아래의 포스팅을 참고해주세요.
저장 프로시저란? (Stored Procedure)
- 일련의 쿼리문을 함수처럼 실행하기 위한 쿼리의 집합
- 프로시저라고도 부름 (해당 포스팅에서는 프로시저라고 사용)
프로시저의 장점
- 입력 매개 변수, 출력 매개 변수, 리턴 값 사용 가능
- 작성된 쿼리문을 재사용시 보다 빠른 성능을 제공
- 일반 쿼리 : 실행시마다 컴파일
- 프로시저 : 반복 실행시 캐시 메모리를 사용하여 실행 (컴파일 X)
- 보안 강화
- 사용자가 데이터에 직접 접근하는 것이 아닌 프로시저를 이용하여 데이터 접근
- 네트워크 트래픽 감소
- 클라이언트와 서버가 오고가는 긴 쿼리를 프로시저의 이름과 매개 변수로 바꿔서 전송
프로시저의 종류
시스템 저장 프로시저
- 'sp_'로 시작하며 대부분 master 데이터베이스에 있음
- 프로그래밍 언어의 내장 라이브러리와 비슷
- 자주 쓰이는 것들을 미리 생성
- 시스템 테이블 접근시 안전한 작업을 위해 생성
- 예시) 테이블의 정보 확인 (sp_tables)
EXEC sp_tables
반응형
사용자 저장 프로시저
- 사용자가 직접 정의하여 생성
- 가능한 시스템 프로시저와 혼동이 있는 'sp_' 로 시작하는 프로시저명은 권장하지 않음
확장 저장 프로시저
- 'xp_'로 시작하며 실제 SQL 서버의 프로시저가 아닌 DLL로 구현된 외부 함수
- SQL에서 구현하기 어려운 것을 DLL로 만들어 사용
원격 저장 프로시저
- 다른 SQL 서버에 있는 프로시저
- 다른 SQL 서버 입장에서는 사용자 프로시저와 동일
해당 포스팅에서는 사용자 저장 프로시저에 대해서 알아봅니다.
쿼리 수행 과정
실행 과정 설명
- 구문 분석 : 키워드를 분리하고 문법 검사
- 표준화 : 각 객체의 이름 확인
- 보안 점검 : 사용자가 권한이 있는지 검사
- 최적화 : 빠른 성능을 위해 색인, 조인, 잠금 등에 대한 것을 결정
- 컴파일
일반 쿼리문 실행 과정
- 첫 실행
- 구문 분석 > 표준화 > 보안 점검 > 최적화 > 컴파일
- 반복 실행
- 캐시 메모리 확인, 이전에 입력한 모든 조건이 맞으면 실행
- 캐시 메모리에 없거나 한 글자라도 틀리면 첫 실행의 과정 수행
프로시저 실행 과정
- 프로시저 생성 (정의)
- 구문 분석 > 표준화 > 보안 점검
- 첫 실행
- 보안 점검 > 최적화 > 컴파일
- 반복 실행
- 캐시 메모리 확인, 프로시저 존재시 컴파일 없이 그대로 실행
- 캐시 메모리에 프로시저 미존재시 첫 실행의 과정 수행
프로시저 실행하기
- EXEC 키워드 뒤에 프로시저명 기재
- 프로시저가 사전에 정의되어 있어야 사용 가능
-- 해당 프로시저 실행
EXEC 프로시저명
-- 매개변수가 필요한 프로시저 실행
EXEC 프로시저명 매개변수1, 매개변수2 ...
반응형