저장 프로시저는 데이터베이스 내에서 미리 컴파일된 SQL 코드이며 이의 실행은 클라이언트 프로그래밍에서 호출하거나 다른 저장 프로시저내로부터 호출 받을 수 있다.

 

빠른 실행

저장프로시저는 이미 만들어질 때 구문이 분석되고 최적화된다. 이는 성능적인 측면에서도 이로움을 주는데 모든 객체 참조와 SQL 문법이 저장 프로시저가 생성될 때 체크한다는 뜻이다.

즉, 일반 SQL이 반복해서 실행이 될 때마다 각 행마다 파싱되어야 하고 모든 객체 참조를 그때그때마다 체크되어야 하는 반면에 저장 프로시저를 사용하게 되면 만들어질 때 첫 실행에 의하여 생성된 최적화된 QUERY PLAN을 저장하고 다음 번의 실행에서는 이전 것을 재사용하는 SQL 서버 2000의 능력이다.

 

특히 복잡한 SQL문과 트랜잭션의 경우 추후 실행에서 최적화와 컴파일 하는 것을 캐시에서 하도록 하는 저장 프로시저의 경우 개발자나 DBA에게 많은 시간을 절약할 수 있도록 한다.

 

네트워크 통신량 감소

클라이언트/서버환경에서의 네트워크는 항상 프로젝트에서 잠재적인 병목으로 생각되어질 수 있다. 왜냐하면 클라이언트/서버환경에서의 모든 프로그램은 네트워크를 통해서 수행되기 때문이다.

저장 프로시저의 사용은 이러한 네트워크의 부하를 줄여주는 데 큰 도움을 준다.

수백줄의 Transact-SQL 코드가 필요한 작업일 경우 이를 네트워크로 보내지 않고 프로시저에서 코드를 실행하는 하나의 명령문을 통해 수행할 수 있다.

 

모듈식 프로그래밍과 코드 재사용성

만약 같은 쿼리가 여러 곳에서 많이 사용된다면 이를 미리 프로시저로 만들어놓고 필요한 모든 곳에서 이 프로시저를 호출함으로써 재사용이 가능하며 수정 및 관리에도 용이하다.

 

DBA 에러의 감소 및 보안 메커니즘의 적용

저장 프로시저는 항상 만들어지는 순간에 구문이 검사되므로 DBA의 에러를 감소시킬 수 있고 프로시저문을 직접 실행시킬 수 없는 사용자들도 저장 프로시저만 실행시킬 수 있는 권한을 가지도록 할 수 있다.