# 저장프로시저 
저장프로시저는 EXECUTE문을 사용해 호출한다.

# 저장프로시저의 장점
 - 캡슐의 이점 : 저장 프로시저 로직이 변경되어도 매개 변수 형태의 변화가 없다면 사용자와 응용프로그램은 영향을 받지 않을 뿐더러, 변경된 로직을 즉시 적용받을수 있다.
 - 성능의 이점 : 저장된 실행계획을 재사용함으로써 CPU를 절약하고,구문분석,이름확인,그리고 최적화에 걸리는 시간을 단축할 수 잇다.
 - 네트워크 트래픽 최소화 : 서버로 전송하는 쿼리문의 문자열을 줄여 네트워크 트래픽을 줄일 수 있다. 상당한 길이의 쿼리문 대신 저장 프로시저 이름과 매개변수만 사용하기 때문이다.
 - 보안계층으로 사용 : 개체에 접근할 권한을 직접 부여하지 않고 저장 프로시저 실행권한만 부여하기 때문에 개체에 대한 불필요한 접근을 제한 할수 있다. 
저장 프로시저가 넘겨주는 값만 볼수 있다. 

 * 일반 SQL 문
 구문분석  - 표준화 - 보안점검 - 최적화  -컴파일 -실행
 (키워드를 분리하고 문법검사) (각 개체들이 이름을 확인하고 불필요한 구문 제거) (구문을 실행한 사용자의 권한을 확인) (가장빠른 성능을 위해 색인,조인,잠금 등을 결정하여 최적화된 실행계획을 만든다.) (실행계획을 컴파일 한 후 캐시에 등록)  (컴파일 된 구문 실행)

 * 저장 프로시저 
 구문분석  - 지연된 이름확인 -보안점검 -결과저장
 (키워드를 분리하고 문법을 검사)   (저장 프로시저를 만들때 해당 개체의 이름이 존쟇는지 확인하지 않는다.)  (저장 프로시저를 만들 수 있는 권한이 있는지 확인한다.) (시스템 테이블에 개체의 정보를 저장)





'[DB] > [MSSQL]' 카테고리의 다른 글

프로시저 생성시 변수에 데이터 넣기  (0) 2020.04.25
# [MSSQL] LOCK 걸린 쿼리 확인 후 강제 KILL  (0) 2020.04.17
# 트랜잭션  (0) 2020.04.07
@@ROWCOUNT  (0) 2020.03.26
테이블 복사 및 데이터 복사  (0) 2020.03.26

+ Recent posts