1. 클라이언트 간의 처리 루틴 공유가 가능하다.
2. 데이터베이스 내부구조를 감춘다.
3. 서버의 보호 및 데이터의 무결성을 구현한다.
4. 쿼리의 저장속도를 향상시켜준다.
5. 네트워의 과부하를 감소할 수 있다.
저장프로시저는 다수의 클라이언트 응용프로그램에서 서버로 보낼 T-SQL 문을 미리 모아서 서버에서 관리하는 데이터로 저장해 둔 것으로 다수의 클라이언트들이 서버에 저장된 T-SQL문을 공유하는 것이 가능해졌다.
데이터베이스 내에서 테이블 칼럼 등의 구조가 변경되더라도 서버에서 저장 프로시저의 정의만 수정하면 클라이언트는 신경쓰지 않아도 된다.
뷰와 마찬가지로 프로시저의 정의를 몰라도 그 처리 결과를 사용 할수 있기 때문이다.
또한 특정 형식의 데이터만을 추가 할수 있는 테이블이 있는 경우에는 추가조건에 제한을 주는 프로시저를 정의해 두고 해당 프로시저를 통해서만 접근할 수 있도록 구성할 수 있다.
저장프로시저는 T-SQL 문을 서버가 미리 저장하고 있으며 T-SQL문을 실행할때에 처리단위가 되며 Batch 처리와 같이 해당 저장프로시저에서 정의한 T-SQL 문을 하나의 배치로 간주하여 한꺼번에 처리하고 최적화시틴다.
T-SQL문이 미리 저장되어 있어 대령의 T-SQL문을 서버로 보내는 대신 단순히 저장프로시저의 이름과 매개변수만을 보내면 된다.
따라서, 프로시저를 사용할 경우 네트워크의 체증은 감소하게 된다.
과연 그런가?
Posted by 홍반장