DB의 저장 프로시저 (SP - Stored Procedure)란
- 저장 프로시저는 각 DBMS에서 제공하는 기능으로,
SQL문을 저장해놓고, 필요할 때마다 호출해서 사용하는 프로그래밍 기능이다.
SQL의성능을 향상시킬수 있다.
유지보수 및 재활용 측면에서 유리하다.
보안이 강화될 수 있다.
또한, 일반적인 쿼리들은 Where의 조건이 조금만 달라져도, 최적화 컴파일을 다시 수행하여야 하지만, 함수 형태의 SP로 생성하게 되면 매개변수만 변경하여 성능적인 측면을 크게 높일 수 있다.
1. DB에서 SP를 생성한다( 미리 작성되어있는 쿼리 모음 )
2. SP의 리턴값을 저장하는 Entity클래스(@NamedStoredProcedureQuery어노테이션)으로 연결함.
3. Repository에서 프로시저 객체를 생성한다. 이때, 2.에서 생성한 프로시저JPA의 파라미터를 설정한 후 execute한다.
궁금한점 : 저장 프로시저를 사용할경우 Entity는 테이블명으로 class와 연결하지 않아도 괜찮은것인가?
속도면에서는 함수에 비해 프로시저가 더 빠르다. 그렇기 때문에 프로시저같은 경우는 실행,처리를 할때 주로 사용하고, 함수는 간단한 계산이나 수치 결과를 나타낼 때 사용한다.