DATABASE/MsSQL

저장프로시저(stored procedure)란 ?

Fehoon- 2023. 6. 19. 17:13

- 저장프로시저(stored procedure)란 ?

저장 프로시저(Stored Procedure)는 데이터베이스 내에서 미리 정의된 SQL 문의 집합이며, 하나의 이름으로 호출되고 실행되는 프로그램 단위입니다. 저장 프로시저는 주로 데이터베이스의 트랜잭션 처리, 데이터 검색, 데이터 조작 등의 작업을 수행하기 위해 사용됩니다.
저장 프로시저는 데이터베이스 서버에 저장되어 있으며, 클라이언트 애플리케이션에서 호출하여 실행할 수 있습니다. 저장 프로시저는 일련의 SQL 문으로 구성되며, 조건문, 반복문, 변수, 매개변수 등과 같은 프로그래밍 언어의 기능을 사용할 수 있습니다. 이를 통해 복잡한 데이터베이스 작업을 단순화하고, 코드의 재사용성을 높일 수 있습니다.

- 저장 프로시저의 사용이유

  • 유지보수성, 비즈니스 로직의 캡슐화, 강력한 보안, 효율성 (데이터베이스에 캐시됨)
  • 성능 향상: 저장 프로시저는 데이터베이스 서버에 미리 컴파일되어 저장되기 때문에 실행 속도가 빠릅니다. 네트워크 트래픽을 줄이고, 데이터베이스 서버의 부하를 감소시킬 수 있습니다.
  • 보안 강화: 저장 프로시저는 데이터베이스 계정으로 실행되므로, 사용자는 저장 프로시저에 대한 직접적인 접근 권한을 갖지 않습니다. 이를 통해 데이터베이스의 보안을 강화할 수 있습니다.
  • 코드 재사용성: 저장 프로시저는 여러 애플리케이션에서 공유하여 사용할 수 있습니다. 이를 통해 코드의 중복을 줄이고, 유지보수 비용을 감소시킬 수 있습니다.
  • 트랜잭션 처리: 저장 프로시저는 한 번에 여러 개의 SQL 문을 실행할 수 있으며, 트랜잭션 처리를 지원합니다. 이를 통해 데이터 일관성을 유지하고, 예외 상황에 대한 롤백 및 복구를 수행할 수 있습니다.
  • 네트워크 부하 감소: 저장 프로시저는 클라이언트와 데이터베이스 서버 사이의 네트워크 트래픽을 줄일 수 있습니다. 단일 저장 프로시저 호출로 여러 개의 SQL 문을 실행할 수 있기 때문에, 네트워크 부하를 감소시키고 응답 시간을 개선할 수 있습니다.

- 저장 프로시저의 프로세스(INPUT, EXECUTION, OUTPUT)

  • 입력(Input): 저장 프로시저는 외부에서 전달되는 입력값을 받을 수 있습니다. 이러한 입력값은 저장 프로시저가 실행될 때 필요한 데이터 또는 조작할 객체에 대한 정보를 포함할 수 있습니다. 입력값은 매개변수(Parameter) 형태로 저장 프로시저에 정의되어 사용됩니다. 매개변수는 저장 프로시저에 필요한 데이터 유형과 크기에 따라 선언될 수 있습니다.
  • 실행(Execution): 저장 프로시저는 입력값을 기반으로 미리 정의된 SQL 문의 집합을 실행합니다. 이 SQL 문은 데이터베이스 내의 데이터를 검색, 조작 또는 처리하기 위한 작업을 포함할 수 있습니다. 저장 프로시저는 조건문(IF 문, CASE 문), 반복문(루프), 변수, 예외 처리 등과 같은 프로그래밍 언어의 요소를 사용하여 논리적인 작업을 수행할 수도 있습니다.
  • 출력(Output): 저장 프로시저는 실행 결과로서 출력값을 반환할 수 있습니다. 이러한 출력값은 저장 프로시저 실행 후에 외부로 전달되는 데이터를 의미합니다. 출력값은 저장 프로시저의 반환(Return) 문 또는 출력 매개변수(Output Parameter)를 통해 제공될 수 있습니다. 출력 매개변수는 저장 프로시저 내에서 값을 할당하고, 호출자에게 반환됩니다.
반응형