본문 바로가기

MSSQL

[MSSQL] 저장 프로시저 (Stored Procedure)

저장 프로시저 (Stored Procedure)

 

실무에서는 프로그램에서 만들어 놓은 SQL문을 저장해놓고,

필요할 때마다 호출해서 사용하는 방식으로 프로그램을 만든다.

 

저장 프로시저는 이러한 방식이 가능하도록 하는 각 DBMS에서 제공하는 프로그래밍 기능이다.

저장 프로시저는 쿼리문들의 집합으로, 어떤 동작을 여러 쿼리를 거쳐서 일괄적으로 처리할 때 사용한다.

 

저장 프로시저를 실무에서 사용하는 이유는 다음과 같다.

 

1. SQL Server(DBMS)의 성능을 향상시킬 수 있다.

저장 프로시저를 처음에 실행하면, 최적화, 컴파일 단계를 거쳐 그 결과가 캐시(메모리)에 저장되게 되는데,

이후에 해당 SP를 실행하게 되면 캐시(메모리)에 있는 것을 가져와서 사용하므로 실행속도가 빨라지게 된다.

그렇게 때문에 일반 쿼리르 반복해서 실행하는 것보다 SP를 사용하는 게 성능적인 측면에서 좋다.

 

2. 유지보수 및 재활용 측면에서 좋다.

C#, Java 등으로 만들어진 응용프로그램에서 직접 SQL문을 호출하지 않고 저장 프로시저의 이름을 호출하도록

설정하여 사용하는 경우가 많은데, 이때 개발자는 수정 요건이 발생할 때 코드 내 SQL문을 건드리는 게 아니라

SP 파일만 수정하면 되기 때문에 유지보수 측면에서 유리해진다.

또한 한번 저장 프로시저를 생성해놓으면, 언제든 실행이 가능하기 때문에 재활용 측면에서 매우 좋다.

 

3. 보안을 강화할 수 있다.

사용자별로 테이블에 권한을 주는 게 아닌 저장 프로시저에만 접근 권한을 주는 방식으로 보안을 강화할 수 있다.

실제 테이블에 접근하여 다양한 조작을 하는 것은 위험하기 때문에,

실무에서는 실제로 개발자에게는 SP 권한만 주는 방식을 많이 사용한다.

 

4. 네트워크의 부하를 줄일 수 있다.

클라이언트에서 서버로 쿼리의 모든 텍스트가 전송될 경우 네트워크에는 큰 부하가 발생하게 된다.

하지만 저장 프로시저를 이용한다면 저장 프로시저의 이름, 매개변수 등 몇글자만 전송하기 때문에

부하를 크게 줄일 수 있다.

 

 

'MSSQL' 카테고리의 다른 글

[MSSQL] dbo란  (0) 2022.12.11