휴먼교육센터 개발자과정 43일차

조하영·2022년 10월 4일
0














오후 수업

오라클 프로시져(procedure)
절차적으로 수행하는 프로그램

예)

테이블 생성
create table mm(
no int,
name varchar2(20),
gender varchar2(1),
point number);

튜플삽입
insert into mm values(1, 'aaa','m',30);

insert into mm values(1, 'aaa','a',30);
위 gender의 데이터 자료형은 이상없지만 입력되면 안된다.
체크로 지정해줄 수도 있지만 이럴때 프로시저를 사용할 수있다.

프로시저 생성
create procedure p1(a in varchar)
is
begin
insert into mm values(1, a, 'm',30);
end;
/

프로시저를 사용해 튜플삽입
exec p1('lee');

a자리에 매개변수의 값 lee 가 대입됨.

or replace가 있으면 기존에 같은 이름을 가진 프로시저가 있다면 지우고 다시 만든다.
create or replace procedure p1(a in varchar)
is
begin
insert into mm values(1, a, 'm',30);
end;
/

매개변수를 여러개 만들수 있다.
create or replace procedure p1(
a in number,
b in varchar,
c in varchar,
d in number)
is
begin
insert into mm values(a, b, c, d);
end;
/

튜플삽입
execute p1(3,'ccc','m',20);

튜플을 수정하는 프로시져 만들기
create or replace procedure p2(
inName in varchar2,
inPoint in number)
is
begin
update mm set point = inPoint where name=inName;
end;
/

kim이라는 이름을 가진 사람의 포인트를 100으로 수정.
execute p2('kim',100);

no를 입력받아 해당 튜플의 이름을 콘솔에 출력해주는 프로시저
create or replace procedure p3(inNo in number)
is
outName varchar(20);
begin
select name into outName from mm where no=inNo;
DBMS_OUTPUT.PUT_LINE(outName);
end;
/

DBMS_OUTPUT.PUT_LINE()에서 콘솔 출력이 안되면
set serveroutput on; 명령어 작성하여 콘솔 출력 가능하게 해야한다.

번호를 매개변수로 넘겨주면 해당 이름과 포인트를 콘솔로 출력하는 프로시저
create or replace procedure p4(inNo in number)
is
outName varchar(20);
outPoint number;
begin
select name,point into outName,outPoint from mm where no=inNo;
DBMS_OUTPUT.PUT_LINE(outName|| ' - ' || outPoint);
end;
/

|| 는 문자를 이어주는 연산자

데이터 베이스 데이터 최적화 하는 방법
1. 물리적 구조 최적화
2. 메모리 할당 최적화
3. 입력과 출력 분산 최적화
4. 메모리 경합 최적화

Trace명령어로 데이터베이스를 분석할 수 있다.
분석 가능한 것은 물리적 Reads, 논리적 Reads, 처리된 튜플 수,
파상이 발생할때의 사용자, 커밋과 롤백 등이 있다.

인덱스는 검색속도를 빠르게 해주지만 무조건 생성하는 것은 아니다.
성능의 엑세스를 고려하여 설정한다.
실행계획(어떤 실행의 결과물을 출력할 것인가?를 고려하여 열순서를 변경, 추가 한다.
사용하지 않은 인덱스는 제거한다.

profile
공부하는 개발자

0개의 댓글