정보처리기사/필기

[2과목-1장-037] 절차형 SQL

여니두 2020. 4. 21.

연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL

 

- 일반 프로그래밍 언어에 비해 효율은 떨어지지만, 단일 SQL 문장으로 처리하기 어려운 연속적 작업들을 처리하는 데 적합

- 다양한 기능 수행하는 저장 모듈 생성 가능

- DBMS 엔진에서 직접 실행 > 입/출력 패킷이 적은 편

- BEGIN ~ END 형식으로 작성되는 블록 구조로 되어 있음 > 기능별 모듈화가 가능

 

* 종류

1) 프로시저(Procedure)

: 일종의 트랜잭션 언어. 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행

2) 트리거(Trigger)

: DBMS에서 이벤트가 발생할 때마다 관련 작업이 자동으로 수행

3) 사용자 정의 함수

: 프로시저와 유사하게 SQL 사용하여 일련 작업을 연속적으로 처리, 종료 시 Return 사용하여 처리 결과를 단일값으로 반환

 

 

* 절차형 SQL의 테스트와 디버깅

디버깅을 통해 기능의 적합성 여부 검증

실행을 통해 결과를 확인하는 테스트 과정 수행

 

- 테스트 전 생성을 통해 구문 오류, 참조 오류의 존재 여부 확인함

- 오류 및 경고 메시지가 상세히 출력되지 않음 > SHOW 명령어로 내용 확인해야 함

- 디버깅으로 로직 검증, 결과를 통해 최종 확인

- 디버깅) 실제로 DB에 변화를 줄 수 있는 삽입 및 변경 관련 SQL문을 주석으로 처리, 출력문 이용하여 화면에 출력하여 확인

 

 

* 쿼리 성능 최적화

: 데이터 입/출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것

- 쿼리 성능 최적화 전에 APM(성능 측정 도구)을 사용하여 최적화 할 쿼리를 선정

- 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획 검토, SQL 코드와 인덱스를 재구성

 

** 옵티마이저

: 작성한 SQL이 효율적으로 수행되도록 최적 경로를 찾아 주는 모듈

댓글