본문 바로가기

DEV LOGS

[MSSQL] 저장 프로시저 특징과 종류


저장 프로시저의 특징

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

저장 프로시저를 처음 실행하게 되면 최적화, 컴파일 등의 과정을 거쳐서 그 결과가 캐시(메모리)에 저장된다.

그 후에 같은 저장 프로시저를 실행하면 캐시(메모리)에 있는 것을 가져다 사용하므로, 다시 최적화 및 컴파일을 수행하지 않아 실행 속도가 빨라진다. 

그러므로 같은 저장 프로시저가 자주 사용될 경우 일반 쿼리를 반복해서 실행할 때보다 SQL Server의 성능이 향상될 수 있다.


(2) 유지 관리가 간편하다.

C#이나 Java 등의 클라이언트 응용프로그램에서 직접 SQL 문을 작성하지 않고 저장 프로시저 이름만 호출하게 설정함으로써,

데이터베이스에서 관련된 저장 프로시저의 내용을 일관되게 수정 및 유지 보수할 수 있다.


(3) 모듈식 프로그래밍이 가능하다.

한 번 저장 프로시저를 생성해 놓으면, 언제든지 실행이 가능하다. 또한, 저장 프로시저로 저장해 놓은 쿼리의 수정, 삭제 등의 관리가 수월해진다. 

더불어 다른 모듈식 프로그래밍언어와 같은 장점을 갖는다.


(4)보안을 강화할 수 있다.

사용자별로 테이블에 접근 권한을 주지 않고 저장 프로시저에만 접근 권한을 줌으로써, 보안을 더 강화할 수 있다.


(5)네트워크 전송량을 줄일 수 있다.

긴 코드로 구현된 쿼리를 실행하게 되면, 클라이언트에서 서버로 쿼리의 모든 텍스트가 전송되어야 하지만, 저장 프로시저로 생성해 놓으면, 

단지 저장 프로시저 이름 및 매개 변수 등 몇 글자의 텍스트만 전송하면 되므로 네트워크의 부하를 크게 줄일 수 있다.


저장 프로시저의 종류


(1) 사용자 정의 저장 프로시저

- T-SQL 저장 프로시저

사용자가 직접 CREATE PROCEDURE 문을 이용해서 생성한 프로시저를 말하며, 그 내용에는 Transact SQL 문을 사용한다.

- CLR 저장 프로시저

CLR 저장 프로시저는 T-SQL 저장 프로시저보다 효율적이고 강력한 프로그래밍이 가능하다. 이는 .NET Framework 어셈블리의 클래스에 

공용의 정적 메소드로 구현되며, 사용자로부터 매개 변수를 입력 받아 결과를 반환하는 Microsoft .NET Framework CLR 메소드의 참조로 사용된다.


(2) 확장 저장 프로시저

C언어 등을 이용하여 데이터베이스에서 구현하기 어려운 것들을 구현한 저장프로시저이다. SQL Server에서 제공하는 API를 이용하여

프로그래밍을 작성한다.

※ 확장 저장 프로시저는 SQL Server 2012 이후에는 제거될 것이므로, 대신 CLR 저장 프로시저를 사용하자.


(3) 시스템 저장 프로시저

시스템을 관리하려고 SQL Server가 제공해주는 저장 프로시저로, SQL Server의 관리와 관련된 작업을 위해서 주로 사용한다.

시스템 저장 프로시저는 주로 'sp_' 접두어로 작성되어 있다.




참고문헌


우재남, 『뇌를 자극하는 SQL Server 2012』 한빛미디어 (2013-03-02 초판발행)