상세 컨텐츠

본문 제목

7. SQL 활용 및 최적화

정보처리기사 실기

by Goyoungjung 2023. 4. 7. 16:17

본문

절차형 SQL(Procedural SQl)

: 일반적인 개발 언어처럼 SQL 언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어이다

 

절차형 SQL 종류

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

쿼리 성능 개선

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

: SQL 성능 개선을 통해 데이터 조작 프로시저의 성능 개선이 가능하다

 

SQL 성능 개선 절차

순서 절차 설명
1 문제 있는 SQL 식별 문제 있는 SQL을 식별하기 위해 애플리케이션의 성능을 관리 및 모니터링 도구인 APM 등을 활용
2 옵티마이저 통계 확인 옵티마이저는 개발자가 작성한 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 데이터베이스 핵심 모듈
3 SQL 문 재구성 범위가 아닌 특정 값 지정으로 범위를 줄여 처리속도를 빠르게 함
옵티마이저가 비정상적인 실행계획을 수립할 경우, 힌트로서 옵티마이저의 접근 경로 및 조인 순서 제어
4 인덱스 재구성 성능에 중요한 액세스 경로를 고려하여 인덱스 생성
실행계획을 검토하여 기존 인덱스의 열 순서를 변경/추가
5 실행계획 유지관리 데이터베이스 버전 업그레이드, 데이터 전환 등 시스템 환경의 변경 사항 발생 시에도 실행계획이 유지되고 있는지 관리

APM(Application Performance Monitoring)

: 안정적인 시스템 운영을 위해 부하량, 접속자 파악 및 장애진단 등을 목적으로 하는 성능 모니터링 도구를 의미한다

 

옵티마이저(Optimizer)

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

 

옵티마이저(Optimizer) 유형

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

 

'정보처리기사 실기' 카테고리의 다른 글

10. 애플리케이션 테스트 관리  (0) 2023.04.10
9. 소프트웨어 개발 보안 구축  (0) 2023.04.08
8. 서버 프로그램 구현  (0) 2023.04.07
6. 응용 SQL 작성하기  (0) 2023.04.07
5. 데이터베이스 기본  (0) 2023.04.06

관련글 더보기