일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- @ConfigurationProperties
- EnableAutoConfiguration
- 스프링부트
- 외부설정
- HATEOAS
- WebApplication Type
- @Profile
- 다익스트라
- Spring Security
- 백트래킹
- JPA
- application.properties
- 정적 리소스
- webjar
- Application Event
- JsonSerializer
- Application Runner
- 브루트포스
- 스프링 부트
- 리소스핸들러
- OAuth2
- rest api
- AuthenticationPrincipal
- 알고리즘
- cors
- 리소스 서버
- 백기선
- 백준
- HttpMessageConverters
- Application Argument
- Today
- Total
아카이브
Stored Procedure ( 저장 프로시저 ) 본문
< Stored Procedure ( 저장 프로시저 ) >
- 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 영구 저장 모듈 (Persistent Storage Module) 이라고도 불린다
- DB에 대한 작업을 정리한 절차(procedure)를 RDBMS에 저장한 쿼리의 집합
- DB 서버측에 만들어 두는 함수
※ 왜? 관리가 쉽고 유지보수가 용이하다
☞ 클라이언트 측이라면 시스템 기능 변경 후 업그레이드, 패치가 필요
☞ 서버 측이라면 해당 SP를 수정하면 모두 반영
- 장점
1) 반복적인 작업을 피할 수 있다
2) 성능 측면
- SP는 최적화되고 캐싱된다
※ 일반 쿼리 작동 순서
구문 분석 ☞ 최적화 ☞ 컴파일 ☞ 캐시에 저장 ☞ 실행
※ SP의 경우 2회 이상 실행부터는 이전 단계 없이 캐시에 저장된 것을 바로 실행
SP는 최초 실행 시 최적화된 상태로 컴파일 되고, DB에 캐싱되어 저장된다
캐시에 저장되면 최적화와 컴파일 작업을 반복하지 않는다.
☞ 하나의 SP가 여러 번 쓰일 때 성능 향상이 있다
- 네트워크 트래픽을 감소시킨다
☞ 쿼리 전체가 아닌 매개변수만을 전달하기 때문에 전송량이 작아 부하를 줄일 수 있다
SP를 사용하면 SQL문이 서버에 저장된다
SP를 사용하면 수백개의 SQL문이 필요한 일도 서버에서 SP로 처리하기 때문에, 쿼리문 자체를 전달하지 않아도 된다.
각 클라이언트는 매개변수만 전달한다
3) 보안 측면
- 사용자 별로 테이블에 접근 권한을 주지 않고, SP에 접근 권한을 줌으로써 보안을 강화할 수 있다
- 단점
1) 데이터베이스 제품에 대해 설명하는 구문 규칙이 SQL / PSM 표준과의 호환성이 낮기 때문에
코드 자산으로서의 재사용성이 나쁘다
2) 비즈니스 로직의 일부로 사용하는경우 업무의 사양 변경 시 외부 응용 프로그램과 함께 SP의 정의를 변경할 필요가 있다.
출처
http://genesis8.tistory.com/183
https://ko.wikipedia.org/wiki/%EC%A0%80%EC%9E%A5_%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80
http://kdmsong.tistory.com/entry/SQL-Stored-Procedure
http://huistorage.tistory.com/47
'데이터베이스' 카테고리의 다른 글
DDL, DML, DCL (0) | 2018.06.18 |
---|---|
Clustered Index VS Non-Clustered Index (0) | 2018.06.09 |
무결성(Integrity) (0) | 2018.06.09 |
DBMS (0) | 2018.06.06 |
TRIGGER (0) | 2018.06.06 |