[SQLP]5장 고급 SQL 튜닝-5. 배치 프로그램 튜닝(1)

Yu River·2023년 5월 5일
0

SQL전문가가이드

목록 보기
33/34

[1] 배치 프로그램 튜닝 개요

(1) 배치 프로그램이란

  • 일련의 작업들을 하나의 작업 단위로 묶어 연속적으로 일괄 처리하는 것
  • 온라인 프로그램에서도 여러 작업을 묶어 처리하는 경우가 있으므로 이와 구분하려면 한 가지 특징을 더 추가함
    => 사용자와의 상호작용(Interaction) 여부
    • 사용자와의 상호작용 없이 대량의 데이터를 처리하는 일련의 작업들을 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 자동으로 수행
    • 기업마다 업무 요건이 워낙 복잡 다양하므로 이 외에도 여러 가지 형태가 존재할 수 있으며,
      정기 배치 형태가 가장 일반적이다.

1. On-Demand 배치

  • 배치 프로그램이 자동으로 수행되는 주기는 월단위, 주단위, 일단위가 보통이지만, 요즘은 주기가 점점 짧아져 종종 실시간이 요구되기도 한다.
  • 사용자가 요청한 시점에 바로 작업을 시작한다.

2. 정기 배치

  • 정해진 시점(주로 야간)에 실행
  • 이벤트성 배치 : 사전에 정의해 둔 조건이 충족되면 자동으로 실행

(2) 배치 환경의 변화

과거

  • 일 또는 월 배치 작업 위주
  • 야간에 생성된 데이터를 주간 업무시간에 활용
  • 온라인과 배치 프로그램의 구분이 비교적 명확

현재

  • 시간 배치 작업의 비중이 증가
  • 분 배치 작업이 일부 존재
  • On-Demand 배치를 제한적이나마 허용
  • 실시간에 가까운 정보 서비스를 제공하기 위해 온라인 시스템에서 곧바로 대용량 데이터를 가공하는 예도 있지만...
    => 대개는 DW 시스템에 근실시간으로 전송해 준 데이터를 가공해서 서비스하는 형태다.
  • 배치 작업을 위한 전용 서버를 두기고 하며, RAC 환경에선 여러 인스턴스 중 하나를 배치 전용 인스턴스로 지정하기도 하다.

(3) 성능 개선 목표 설정

1. 배치 프로그램과 온라인 프로그램

배치 프로그램에서의 성능 목표와 튜닝 기법은 온라인 프로그램에서의 그것과 달라야 한다.

  • 온라인 프로그램은 경우에 따라 전체 처리속도 최적화나 최초 응답속도 최적화를 목표로 선택
  • 배치 프로그램은 항상 전체 처리속도 최적화를 목표로 설정
    • 개별 프로그램 차원에서도 그렇지만 야간에 수행되는 전체 배치 프로그램에 대한 목표도 마찬가지

2. 자원 사용 측면

  • 시스템 자원을 독점적으로 사용하도록 설정된 프로그램을 찾아 병렬도를 제한하고, 동시에 수행되는 프로그램 개수도 적절히 유지해야 한다.
  • 배치 윈도우를 적절히 조절하는 것만으로 배치 프로그램 수십 개를 튜닝한 것과 같은 효과가 있다.

(4) 배치 프로그램 구현 패턴과 튜닝 방안

개발자 스타일과 애플리케이션 아키텍처에 따라 배치그램의 구현방식이 천차만별이지만,
크게 2가지 스타일로 요약할 수 있다.

1. 절차형으로 작성된 프로그램

  • 애플리케이션 커서를 열고, 루프 내에서 또 다른 SQL이나 서브 프로시저를 호출하면서 같은 처리를 반복하는 형태
  • 반복적인 데이터베이스 Call 발생
  • Random I/O 위주
  • 동일 데이터를 중복 액세스

튜닝법

  1. 병목을 일으키는 SQL 을 찾아 I/O 튜닝 : 인덱스를 재구성하고 엑세스 경로 최적화
  2. 프로그램 Parallel 활용 : 메인 SQL 읽은 데이터 범위를 달리하여 프로그램을 동시에 활용
  3. Array Processing 을 활용
  4. One SQL 위주로 프로그램을 다시 구현

2. One SQL 위주 프로그램

  • One SQL로 구성하거나, 집합적으로 정의된 여러 SQL을 단계적으로 실행
  • 성능 측면에선 One SQL 위주의 프로그램이 월등하다.
  • 절차형으로 작성된 프로그램은 몇몇의 비효율 때문에 느릴 수 밖에 없고,
    개별 SQL을 최적화하더라도 그것을 담고 있는 프로그램 전체를 최적화하는 데 한계를 보인다.
profile
도광양회(韜光養晦) ‘빛을 감추고 어둠속에서 힘을 기른다’

0개의 댓글