본문 바로가기

CERTIFICATION/IEIP

[3-3] 데이터베이스 프로그래밍

099 절차형 SQL


절차형 SQL의 개요

  • C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
  • 절차형 SQL 종류
    • 프로시저(Procedure)
      • 특정 기능을 수행하는 일종의 트랜잭션 언어
    • 트리거(Trigger)
      • 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(Event)가 발생할때마다 관련 작업이 자동으로 수행
    • 사용자 정의 함수
      • 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리
      • 종료시 예약어 Return을 사용해 처리 결과를 단일값으로 반환

테스트와 디버깅의 목적

  • 테스트(Test)를 통해 오류를 발견한 후 디버깅(Debugging)을 통해 오류가 발생한 코드를 추적하여 수정
    • 테스트 : 오류를 찾기 위해 진행
    • 디버깅 : 오류를 수정하기 위해 진행

100 프로시저(Procedure)


프로시저(Procedure)의 개요

  • 절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어
  • 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업 수행
  • 시스템의 일일 마감 작업, 일괄(Batch) 작업 등에 주로 사용

프로시저 생성/실행/제거

  • 생성 : CREATE PROCEDURE 명령어
  • 실행 : EXECUTE 명령어 or CALL 명령어
  • 제거 : DROP PROCEDURE 명령어

101 쿼리 성능 최적화


쿼리 성능 최적화의 개요

  • 데이터 입출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것
  • 쿼리 성능을 최적화하기 전에 성능 측정 도구인 APM을 사용해 최적화할 쿼리 선정
  • 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획 검토
    • SQL 코드와 인덱스 재구성

옵티마이저(Optimizer)

  • 작성된 SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아주는 모듈
  • RBO & CBO
- RBO
(Rule Based Optimizer)
CBO
(Cost Based Optimizer)
최적화 기준 규칙에 정의된 우선순위 액세스 비용
성능 기준 개발자의 SQL 숙련도 옵티마이저의 예측 성능
특징 실행 계획 예측이 쉬움 성능 통계치 정보 활용, 예측이 복잡
고려사항 개발자의 규칙 이해도, 규칙의 효율성 비용 산출 공식의 정확성

SQL 코드 재구성

  • WHERE절을 추가해서 일부 레코드만 조회하게 함으로써 조회에 들어가는 비용 줄임
  • WHERE절에 연산자가 포함되면 INDEX를 활용하지 못함 → 가능한 한 연산자 사용 자제
  • 서브쿼리에 특정 데이터가 존재하는지 확인할 때는 IN 보다 EXISTS 활용

인덱스 재구성

  • SQL 코드에서 조회되는 속성과 조건들을 고려해서 인덱스 구성
  • 실행 계획을 참고하여 인덱스를 추가하거나 기존 인덱스의 열 순서 변경
  • 단일 인덱스로 쓰거나 수정없이 읽기로만 사용되는 테이블의 경우 IOT(Index-Organized Table)로 구성 고려

'CERTIFICATION > IEIP' 카테고리의 다른 글

[3-2] SQL 활용  (0) 2024.05.18
[3-1] 데이터베이스 이해  (0) 2024.05.18
[2-2] 프로그램 구현  (0) 2024.05.18
[2-1] 프로그래밍 언어 활용  (0) 2024.05.18
[1-4] 정보시스템 기반 기술 용어  (0) 2024.05.17