본문 바로가기
프로그래밍언어/DB, SQL

PostgreSQL 프로시저

by plog 2024. 6. 16.

PostgreSQL SP

SP(Stored Procedure)란? SQL 명령문들을 마치 하나의 함수처럼 사용하기 위해 DB 내부에 저장된 쿼리의 집합이다.

 

SP 장단점

장점
1) 스키마 변화의 관리포인트가 한 곳이다. 
2) 서비스 함수 혹은 어떠한 로직을 짤 때, DB에 한번만 접근하면 된다. 네트워크 비용 절감.
3) 로직이 변경하는 경우, 서버 배포 없이 SP만 수정하면 된다.

단점
1) DB 서버 부하가 커진다. 웹 서버보다 비용이 상대적으로 비싸다.
2) 디버깅 하기 어렵다. 
3) 전문 DBA가 필요 할 수 있다. 프로젝트 규모가 커지면 DBA는 필요하다.

 

예제

현재 진행하고 있는 프로젝트에서 테스트용 SP 입니다. 카운팅 관련 비즈니스 로직에서만 사용해보려고 합니다.

 

-- DROP PROCEDURE public.proc_chatting_vote_option_cal_iu(int4, int4);

CREATE OR REPLACE PROCEDURE public.proc_chatting_vote_option_cal_iu(IN se integer, IN num integer)
 LANGUAGE plpgsql
AS $procedure$

declare greeting text;
declare befor_num int;
begin
	-- 투표전 결과값 셋팅
	select option_cn
	into befor_num
	from chatting.chatting_room_vote_option
	where chatting_room_vote_option_se=se;

	-- 투표값 업데이트
	update chatting.chatting_room_vote_option
	set option_cn=befor_num+num
	where chatting_room_vote_option_se=2;
	
end;
$procedure$
;

 

* PL/pgSQL(Procedural Language/PostgreSQL)
- PostgreSQL에서 사용되는 프로그래밍 언어로 ‘SQL문을 확장’하여 ‘저장 프로시저’ 및 ‘함수’ 작성을 가능하게 합니다.
- 다른 프로그래밍 언어와 유사한 구문을 사용하여 데이터베이스를 조작할 수 있습니다.

'프로그래밍언어 > DB, SQL' 카테고리의 다른 글

SQL 기본 튜닝 규칙 - PostgreSQL  (0) 2024.07.08
디비버 많이 쓰는 단축키  (0) 2024.05.30
무료 DB관리툴 디비버  (0) 2024.04.30
DynamoDB의 PartiQL Select  (0) 2022.05.11
MariaDB 쿼리 계획(실행 계획)  (0) 2022.01.27

댓글