DB

Store Procedure란?

91cm 2018. 9. 16. 23:03

스토어 프로시저 : DB 내부에서 작업을 수행하는 쿼리의 집합


장점

 1. 서버/클라이언트 네트워크 트래픽감소

 2. 보안강화(SQL 인젝션 같은 기본적인 보안사고는 피할 수 있음)

 3. 패치 필요가 없음(WAS재기동 불필요)

 4. 최초 실행시 최적의 상태로 컴파일되고 이후 DB캐시에 저장됨 . 캐시에 저장되면 최적화와 컴파일하지않음 여러번 사용시 성능향상 의 효과가 있다.


단점

 1. 리팩토링 매우힘듬

 2. 히스토리 관리불가

 3. 유지보수 힘듬

 4. 디버깅어려움





프로시저 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE PROCEDURE  SP_TEMP_INSERT(
    @pi_name varchar(50)='' -- 이름 파라미터
    ,@pi_age int -- 나이 파라미터
 
) AS
 
BEGIN 
 SET NOCOUNT ON
    
    INSERT INTO T_TEMP (TEMP_NAME, TEMP_AGE) VALUES(@pi_name, @pi_age);
        
RETURN 
END; 
 
cs




프로시저 1개 조회

1
SP_HELPTEXT 프로시저명;
cs



전체 프로시저 조회
1
SELECT * FROM INFORMATION_SCHEMA.ROUTINES;
cs




프로시저 실행

1
EXEC 프로시저명 파라미터1, 파라미터2
cs
파라미터가 여러개일시 ,(쉼표)로 전달




프로시저 제목에 특정문자가 포함된 프로시저 찾기

1
2
3
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME LIKE '%프로시저명%'
cs





프로시저 내용에 특정문자가 포함된 프로시저 찾기

1
2
3
4
SELECT ROUTINE_NAME 
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%Search_Text%' AND ROUTINE_TYPE='PROCEDURE'
ORDER BY ROUTINE_NAME
cs