블로그는 나의 힘!
[ Programing ]/Database2021. 10. 22. 14:21


Stored Procedure
: 어떠한 동작을 일괄 처리하기 위한 용도. 
 쿼리문 처리를 할 때 바로 처리하지 않고 값을 받아와 프로시저 내부에서 일괄적 처리 후 결과를 내보내 주는 루틴.




# 정의

데이터베이스 카탈로그 내부에 저장되어있는 선언적 SQL문의 세그먼트. 
Stored Procedure는 trigger, 다른 Stored Procedure, 그리고 Java, Python, PHP 등 응용프로그램에서 호출 될 수 있다.



# 장점

- 자주 사용되는 일반적인 쿼리를 모듈화 시켜 필요할 때 호출하면 편리하다. 

- 필요한 만큼 응용해서 사용할 수 있기 때문에 SQL 운영에 편리하다.

- 응용프로그램과 데이터베이스 서버 사이에 오가는 트래픽의 양을 줄여주는데 도와준다. 
  왜냐하면 많은 SQL문을 보내는 대신 응용프로그램은 이름, 저장 프로시저의 매개변수만 보내면 되기 때문이다.

- 저장 프로시저는 안전하다. 
  데이터베이스 관리자는 기본 데이터베이스 테이블에 접근할 수 있는 권한을 부여하지 않고, 
  응용프로그램이 저장 프로시저에 접근할 수 있는 적절한 권한을 부여하면 된다. 


 
# 단점

- 유지 보수 복잡성 증가.
  각 기능을 담당하는 코드가 분산되어 관리하기 때문에 어플리케이션의 설치나 배포가 더 복잡해진다. 
  사용자가 감당할 수 있는 부분에 관하여 적절하게 사용해야 한다.

- 많은 저장 프로시저를 사용한다면 그 저장 프로시저를 사용하는 모든 연결의 메모리 사용량이 증가할 것이다. 
  게다가 저장 프로시저 내부의 큰 수의 논리적 연산을 많이 사용한다면, CPU 사용량 또한 증가할 것이다. 
  왜냐하면 데이터베이스 서버는 논리적 연산을 하기 위해 잘 만들어진 것이 아니기 때문이다.

- 저장 프로시저를 디버그 하는데 어렵다. 
  오직 몇개의 데이터베이스 관리 시스템들만 저장 프로시저를 디버그 하는데 허용한다.



 

출저 : 
    https://blog.duveen.me/10?category=657591
    https://blog.duveen.me/11
    https://seollica.tistory.com/87

'[ Programing ] > Database' 카테고리의 다른 글

MS-SQL 복원 .bacpac  (0) 2021.11.01
MS-SQL 백업 .bak 외 .bacpac  (0) 2021.10.28
ERD Cloud (ER-Win)  (0) 2021.10.21
MS-SQL 서버 개체 연결.  (0) 2021.08.31
MS-SQL Job 스케쥴러 확인  (0) 2021.08.26
Posted by Mister_Q