[CS/데이터베이스] - Stored Procedure (저장 프로시저) - 3부

황제연·2025년 4월 16일
0

CS학습

목록 보기
46/193
post-thumbnail

Stored Procedure와 SQL 캐시의 차이

앞서 Stored Proceduer와 SQL을 연속적으로 실행할 때,
캐시된 데이터를 활용해 성능을 개선할 수 있음을 확인했습니다

둘다 비슷하게 동작하기 때문에 성능상 큰 차이가 없다고 생각할 수 있지만
특정 상황에서는 Stored Procedure가 더 큰 장점을 가집니다

조건이 다른 SQL을 연속 실행할 때의 문제점

SELECT * FROM EMP_TABLE WHERE NAME = '황제연'
SELECT * FROM EMP_TABLE WHERE NAME = '황재연'
SELECT * FROM EMP_TABLE WHERE NAME = '황제현'

위 쿼리는 구조가 동일하지만 조건의 문자열 값이 다릅니다.
따라서 데이터베이스는 전혀 다른 쿼리로 인식됩니다


따라서 각각의 쿼리가 별도의 최적화와 컴파일 과정을 가지므로,
캐시된 데이터의 이점을 활용할 수 없습니다

Stored Procedure는?

반면에, Stored Procedure는 매개변수를 이용해 쿼리를 한번 정의하고 재사용하기 때문에
처음 실행 시에만 최적화 및 컴파일이 이루어지고,
이후에는 캐시에 저장된 실행 계획을 그대로 활용할 수 있습니다

CREATE OR ALTER PROCEDURE SP_EMP_NAME_SELECT
	@EMP_NAME NVARCHAR(100)
AS
	SELECT * FROM EMP_TABLE WHERE EMP_NAME = @EMP_NAME;

EXEC SP_EMP_NAME_SELECT '황제연';
EXEC SP_EMP_NAME_SELECT '황재연';
EXEC SP_EMP_NAME_SELECT '황제현';

따라서 자주 실행하는 SQL문의 경우, SQL을 직접 실행하는 것보다
Stored Procedure를 사용하는 것이 성능상 이점을 얻을 수 있습니다

참고

profile
Software Developer

0개의 댓글