2022년 4월 20일 수요일

오라클 기본 8 - 함수

 1. 함수란?

일반적인 프로그래밍 언어에서 사용되는 함수와 같이 복잡한 프로그래밍이 가능하도록 지원 해준다. 함수는 RETURN문에 의해서 특정 값을 돌려주는 기능도 한다.


2. 함수 생성법

CREATE FUNCTION 함수이름 (파라미터)

    RETURN 데이터형식

AS 

    변수 선언 부분

BEGIN

    이 부분에 PL/SQL 프로그램 코딩

    RETURN 변수;

END 함수이름;


3. 함수의 정의와 프로시저 정의의 차이점

- 프로시저의 파라미터와 달리 IN, OUT, IN OUT 을 사용할 수 없다.

- 함수는 RETURN 문으로 반환할 값의 데이터 형식을 지정하고, 본문 안에서는 RETURN 문으로 하나의 값을 반환해야 한다.

- 프로시저는 별도의 반환하는 구문이 없으며, 필요하다면 여러개의  OUT 파라미터를 사용해야 한다.

- 프로시저는 EXECUTE 로 호출하지만, 함수는 EXECUTE 뿐 아니라, SELECT 문장 안에서도 호출 한다.

오라클 기본 7 - 스토어드 프로시저

 1. 스토어드 프로시저란?

오라클에서 제공되는 프로그래밍 기능.

쿼리문의 집합으로 어떠한 동작을 일괄 처리 하기 위한 용도로 사용.

자주 사용되는 일반적인 쿼리를 사용하는 것보다 모듈화 시켜서 필요할 때마다 호출.


2. 스토어드 프로시저의 정의 형식

CREATE OR REPLACE PROCEDURE 프로시저_이름 AS 변수_선언_부분

BEGIN

    PL/SQL 프로그래밍 코딩 부분

END 프로시저_이름


3. 스토어드 프로시저의 실행

EXECUTE 프로시저_이름();


4. 스토어드 프로시저의 수정과 삭제

수정 : CREATE OR REPLACE PROCEDURE 문을 다시 사용

삭제 : DROP PROCEDURE 


5. 파라미터의 사용

입력 - 입력_파라미터_이름 IN 데이터_형식 := 디폴트 값

실행 - EXECUTE 스토어드_프로시저_이름(전달 값);

출력 - 출력_파라미터_이름 OUT 데이터 형식

입출력 - 입력_파라미터_이름 IN OUT 데이터_형식 := 디폴트 값


6. 스토어드 프로시저의 특징

- 오라클의 성능을 향상 시킬 수 있다.

- 유지 관리가 간편하다

- 예외 처리 및 모듈식 프로그램이 가능하다.

- 네트워크 전송량의 감소

오라클 기본 6 - 인덱스

 1. 개념 

검색을 빠르게 하기 위해 책의 찾아보기 부분과 같이 미리 정리를 해놓는 기술


2. 장점 

-검색의 속도를 높일 수 있다.

-쿼리의 부하가 줄어들어 시스템 전체 성능이 향상된다.


3. 단점

-인덱스가 DB 공간을 차지하여 추가적인 공간이 필요

-처음 인덱스를 생성하는데 시간이 필요

-변경 작업(insert, update, delete)이 자주 일어날 경우 오히려 성능이 나빠질 수 있음


4. 정의법

CREATE TEBLE 테이블명

(

    userID CHAR(8) NOT NULL PRIMARY KEY --기본키를 지정하면 인덱스 자동 생성

)

테이블 생성 시 제약 조건에 Primary Key 또는 Unique를 사용하면 자동으로 인덱스 생성


5. 인덱스 제거법

DROP INDEX 인덱스이름;


6. 결론

-인덱스는 열 단위에서 생성된다.

-WHERE 절에서 사용되는 열에 인덱스를 생성해야 한다

-WHERE 절에 사용되더라도 자주 사용해야 가치가 있다

-데이터의 중복도가 높은 열은 인덱스를 만들어도 별 효과가 없다.

-JOIN 에 자주 사용되는 열에는 인덱스를 생성해주는 것이 좋다.

-인덱스는 읽기에만 성능 향상 시키기에 데이터 변경이 자주 일어나는 DB에는 좋지 않다.

- 사용하지 않는 인덱스는 제거하여 용량과 부하를 줄일 수 있다.