티스토리 뷰

728x90
반응형

2022년 정보처리기사 필기

(수제비 2021년 필기책 보고 공부하며 요약한 내용입니다.)

http://www.yes24.com/Product/Goods/96051171

 

2. 소프트웨어 개발

Cp1. 데이터 입출력 구현2

 

 

1. 프로시저

: 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리의 집합

: DB 내부에 저장되고 일정 조건이 되면 자동 수행됨

 

1-1. 절차형 데이터 조작 프로시저 : Oracle PL/SQL

1) 컴파일 불필요: 스크립트 생성 및 변경 후 실행가능

2) 모듈화 가능: 블록 내 논리적으로 관련된 문장 그룹화 가능, 모듈 집합으로 구성

3) 절차적 언어 사용: DB테이블 과 레코드를 기반으로 하는 동적변수 선언 가능. 단일형/복합병 데이터 타입 선언 가능

4) 에러처리: 예외처리 루틴을 이용한 에러처리 기능

 

1-2. PL/SQL의 구성

1) 선언부(declare): 실행부에서 참조할 변수, 상수 등 선언

2) 실행부(begin/end): begin, end 사이에 기술되는 영역

3) 예외부(exception): 실행부에서 에러가 발생했을 때 문장 기술

 

1-3. PL/SQL을 활용한 저장형 객체 활용

1) 저장된 프로시저

: 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리집합

: 매개변수를 받을 수 있고, 반복적으로 사용할 수 있는 객체

: 배치작업, 복잡한 트랜잭션을 수행하는 PL/SQL문을 DB에 저장할 수 있도록 기능 제공

: CREATE ON REPLACE 구문 사용

  - IS: PL/SQL의 블록을 시작, LOCAL: IS, BEGIN 사이에 선언

2) 저장된 함수

: SQL 처리를 수행, 결과를 단일값으로 반환할 수 있는 절차형 SQL

: 반환할 값의 데이터 타입을 반드시 return 문에 선언해야 함

: PL/SQL 블록 내에서 return문을 통해 값을 반환해야 함

3) 저장된 패키지

: 프로시저나 함수를 효율적으로 관리하기 위한 집합

: 패키지는 선언부와 본문으로 구분

4) 트리거

: 특정 테이블에 삽입, 수정, 삭제 등 데이터 변경 이벤트 발생 시 DBMS에서 자동으로 실행되는 프로그램

: 테이블과 별도로 DB에 저장

: 뷰가 아닌 테이블에 관해서만 정의될 수 있음

: DBMS_OUTPUT.PUT_LINE을 출력하기 위해 'set serveroutput on'을 사용

 

2. 프로그램 디버깅

: 프로시저가 입력 자료를 받아 출력을 오바르게 도출하는지 확인하는 과정

: DB 프로시저에 대한 검증 작업임.

: SQL*Plus라는 도구를 이용하여 프로시저 디버깅을 함.

 

3. 단위 테스트 도구

: 단위테스트에서 구현된 프로시저의 적합성을 확인하기 위한 도구

: Oracle DBMS는 모든 데이터 조작 프로시저에 대한 테스트 환경으로 SQL*Plus 기반의 PL/SQL을 활용함

 

3-1. PL/SQL 테스트를 위한 DBMS_OUTPUT 패키지 기능 사용

1) DBMS_OUTPUT.DISABLE : 메시지 버퍼 내용 삭제

2) DBMS_OUTPUT.ENABLE : 메시지 버퍼 내용 할당

3) DBMS_OUTPUT.PUT : 한 라인을 여러번에 걸쳐 저장, 버퍼에 저장되는 메시지 마지막 라인 끝에 EOL문자가 추가되지 않음

4) DBMS_OUTPUT.PUT_LINE : PUT과 동일하나, 버퍼에 저장되는 메시지의 마지막 라인 끝에 EOL 문자 추가

5) DBMS_OUTPUT.GET_LINE : 한번 호출마다 한 라인만 읽어옴

6) DBMS_OUTPUT.GET_LINES : 지정된 라인을 모두 읽어들임

 

 

4. 데이터 조작 프로시저 최적화

4-1. 쿼리 성능 측정

: SQL 실행 계획을 최소시간으로 원하는 결과를 얻도록 프로시저를 수정하는 사전 작업

: 쿼리성능 측정방법은 EXPLAIN PLAN을 주로 활용함

 - 자동추적 모드를 on으로 전환

  : autotrace명령어 사용 전 PLAN_TABLE이 생성되어있어야 하며, PLUSTRACE권한을 가지고 있어야 함.

 - PLAN_TABLE을 확인

 

4-2. SQL 성능 개선 절차

1) 문제있는 SQL 식별

2) 옵티마이저 통계 확인 (옵티마이저: SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로 생성해주는 DB 핵심 모듈)

3) SQL문 재구성

4) index 재구성

5) 실행계획 유지관리

 

5. 소스코드 인스펙션

: DB 성능향상 위해 프로시저 코드를 보며 성능 문제점을 개선

- 인스펙션 대상

1) 미사용 변수 (선언만 되고, 본문에서 전혀 사용되지 않는 변수)

2) 미사용 서브쿼리 (선언만 되고, 외부 쿼리에서 참조되지 않음)

3) Null 값 비교 (Null값과 비교하는 프로시저 소스가 있는 경우)

4) 과거 데이터 타입 사용 

 

5-1. SQL 코드 인스펙션 절차

1) 계획: SQL 코드 선별, 참여자 설정

2) 개관: SQL 코드 문제점 공유, 계획 및 방법 공유

3) 준비: SQL 코드 분석

4) 검사: 공식적SQL 인스펙션 수행

5) 재작업: SQL 소스코드 수정 및 실행 시간 재측정

6) 추적: 팔로우업(후속조치), 개선효과 분석

 

 

728x90
반응형
댓글