본문 바로가기
  • 適者生存
WorkOut/정보처리기사

SQL 활용 및 최적화

by lcrvvxln 2024. 4. 9.

 

적자생존

 

Chapter 03 SQL 활용 및 최적화 

1. 절차형 SQL ( Procedural SQL)  

- 절차형 SQL은 일반 개발 언어와 같이 SQL 언어에서도 절차 지향적인 프로그램이 가능하게 하는 트랜잭션 언어

 

(1) 절차형 SQL 종류 

  • 프로시저 (Procedure) : 일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리 집합 
  • 사용자 정의 함수 (User-Defined Function) : 일련의 SQL 처리 수행 후, 수행 결과 단일 값으로 반환하는 절차형 SQL
  • 트리거 (Trigger) : 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업 자동 수행되는 절차형 SQL

 

 

2. SQL 최적화 

(1) 튜닝(쿼리 성능 개선)의 개념

- 데이터베이스 프로시저에 있는 SQL 실행 계획분석, 수정하여 최소 시간으로 원하는 결과를 얻도록 프로시저 수정하는 작업

- SQL 성능 개선을 통해 데이터 조작 프로시저 성능 개선 가능 

 

 

(2) 옵티마이저 (Optimizer)

- SQL을 가장 빠르고 효율적으로 수행할 최적처리경로를 생성해주는 DBMS 내부 핵심엔진

- 옵티마이저가 생성한 SQL 처리 경로실행계획(Execution Plan)이라고 함

 

  • 옵티마이저 유형 
항목 규칙기반 옵티마이저 (RBO) 비용기반 옵티마이저 (CBO)
개념 통계 정보 없는 상태에서 사전 등록 규칙에 따라
질의 실행 계획을 선택하는 옵티마이저
통계 정보로부터 모든 접근 경로를 고려한
질의실행계획을 선택하는 옵티마이저
핵심 규칙 (우선순위) 기반 비용 (수행 시간) 기반
평가 기준 인덱스 구조, 연산자, 조건절 형태 등 레코드 개수, 블록 개수, 평균 행 길이, 컬럼 값의 수,
컬럼 값 분포, 인덱스 높이, 클러스터링 팩터 등
장점 사용자가 원하는 처리경로로 유도하기 쉬움 옵티마이저 이해도 낮아도 성능보장 가능 (기본 설정)