Reading
프로시저(Procedure)
박은유
2024. 4. 2. 00:08
반응형
프로시저란?
: 일련의 SQL 문을 하나로 묶어서 실행할 수 있는 저장된 프로그램 유형입니다.
MySQL에서 프로시저를 생성하는 방법은 다음과 같습니다. 아래 예제는 MySQL에서 "Customers" 테이블의 데이터를 반환하는 간단한 프로시저를 생성하는 방법을 보여줍니다.
DELIMITER //
CREATE PROCEDURE GetCustomerDetails()
BEGIN
SELECT * FROM Customers;
END //
DELIMITER ;
위의 코드에서 DELIMITER는 문장 종결자를 변경하는 데 사용됩니다. MySQL에서 기본적으로 세미콜론(;)이 문장의 종료를 나타내지만, 프로시저의 경우 복잡한 내부 블록을 포함할 수 있으므로 DELIMITER를 사용하여 이를 변경합니다. 여기서는 //을 새로운 종결자로 사용했습니다.
프로시저를 호출하려면 다음과 같이 실행합니다.
CALL GetCustomerDetails();
프로시저와 함수의 차이는?
- 목적
- 프로시저 : 주로 데이터베이스에서 실행되는 일련의 작업을 포함하며, 보통 데이터베이스의 상태를 변경하거나 데이터를 반환합니다. 주로 비즈니스 로직이나 데이터 조작 작업에 사용됩니다.
- 함수 : 입력값을 받아 연산을 수행하고, 결과값을 반환합니다. 일반적으로 데이터의 계산, 변환, 집계 등 특정한 작업을 수행하는 데 사용됩니다.
- 반환값
- 프로시저 : 보통 반환값이 없거나, 반환값이 있더라도 선택적으로 사용됩니다.
- 함수 : 반드시 반환값이 존재하며, 호출자에게 결과값을 반환합니다.
- 트랜잭션 처리
- 프로시저 : 여러 개의 SQL 문을 하나의 트랜잭션으로 묶어 실행할 수 있습니다.
- 함수 : 보통 각각의 SQL 문이 개별적으로 실행되며, 트랜잭션 처리에 직접적인 영향을 미치지 않습니다.
장점
- 하나의 요청으로 여러 SQL문을 실행 가능합니다.
- 네트워크 소요 시간을 줄여 성능개선이 가능합니다.
- 여러 어플리케이션과 공유 가능합니다.
- 기능 변경이 편리합니다. → 특정 기능을 변경할 때 프로시저만 변경하면 된다.
단점
- 문자나 숫자열 연산에 사용하면 java보다 느린 성능을 보일 수 있습니다.
- 프로시저가 앱의 어디에 사용되는 확인이 어렵습니다. → 유지보수가 어려움
반응형