stored procedure

윤빈·2026년 2월 3일

SQL & Database

목록 보기
16/25

자주 쓰는 SQL 문장이 있다면
필요할 때 마다길게 타이핑하는 것이 귀찮을 수도 있으니
stored procedure를 사용하면 좋다!

stored procedure는 코드 덩어리 저장가능

SELECT FROM 이런 긴 문장같은 것을 저장해서 재사용하고싶으면 stored procedure 기능을 사용하면 된다.

SELECT * FROM product WHERE 가격 > 5000

만약 이 코드를 나중에 사용할 일이 많다.
그럼 파일로 저장해둬도 되겠지만 다른 파일에서도 사용하고 싶다면 stored procedure로 저장해놓으면 된다.

만드는법은
1.지금 있는 데이터베이스의 Procedures 메뉴에서 새로운 Procedure 만들기 눌러서 작명
2. 만든 Procedure 들어가서 Source에 보면 요상한 코드가 잇음
3.

CREATE PROCEDURE 데이터베이스명.프로시저명
BEGIN
	재사용하고싶은코드; 
END

BEGIN과 END 사이에 재사용하고싶은 코드를 적고 저장
한 줄 끝나고 꼭 ;을 넣어야함
4. 앞으로 CALL procedure이름()만 실행하면 저장해놓은 코드가 실행됨.

procedure 생성하는 SQL 명령어

실은 밑에 나오는 SQL 전부를 실행해야 procedure 생성이 가능하다.

DELIMITER $$
$$
CREATE PROCEDURE 데이터베이스명.프로시저명()
BEGIN
	재사용하고싶은코드
END
$$
DELIMITER ;

DELIMITER는 줄바꿈 문자를 $$ 이런걸로 임시로 바꾸라는 뜻이다.
SQL 작성할 때 문장끼리 구분할 때 ; 이걸 쓰는데
procedure 만드는 코드 안에 ; 이게 들어가면 중간에 실행이 중단될 수 있기 때문에 임시로 $$로 바꿔놓는 것이다.

stored procedure 쓰면 작동속도 빨라지나


1. 코드 문법 오류 체크
2. 테이블 제대로 선택했는지, 테이블 열람권한 있는지
3. 전에 실행했던 코드인지 확인 (맞으면 4,5번 생략)
4. 이 쿼리를 실행할 여러 방법(execution plan)을 만들어보고 가장 좋은 방법 1개를 골라온다(optimizing)
5. 해당 쿼리 + 실행 방법을 다음에 쓸 수 있으니 임시로 메모리에 저장 (caching)
6. 컴파일하고 실행해서 테이블에서 데이터 찾아줌

근데 stored procedure 사용하면 코드가 거의 똑같아서 caching 해놓은 것을 재사용하는 경우가 많기 때문에 보통 4,5번이 생략된다.

4,5번에 가지않는다는 점에서 조금 빠르게 동작할 수 있지만 실제 CPU에서의 SQL 쿼리문 작동속도는 크게 차이 없다.

profile
취준하려면 이런건하나씩있어야한다길래

0개의 댓글