절차형 SQL : 일반적인 개발 언어처럼 SQL 언어에서도 절차 지향적인 프로그램이 가능하도록하는 트랜잭션 언어
| 프로시저 (Procedure) |
일련의 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 |
| 사용자 정의함수 (User-Defined Funciton |
일련의 SQL 처리를 수행하고 수행결과를 단일 값으로 반환할 수 있는 절차형 SQL |
| 트리거 (Trigger) |
데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트 발생시 마다 관련 작업이 자동으로 수행되는 절차형 SQL |
쿼리 성능 개선(튜닝) : 쿼리 성능 개선은 데이터베이스에서 프로시저에 있는 SQL 실행 계획을 분석, 수정을 통해 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수행하는 작업, SQL 성능 개선을 통해 데이터 조작 프로시저의 성능 개선 가능
| 1. 문제있는 SQL 식별 | 문제있는 SQL을 식별하기 위해 애플리케이션의 성능을 관리 및 모니터링 도구인 APM 등을 활용 |
| 2. 옵티마이저 통계 확인 | 옵티마이저는 개발자가 작성한 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 데이터베이스 핵심모듈 |
| 3. SQL 문 재구성 | 범위가 아닌 특정값 지정으로 범위를 줄여 처리속도를 빠르게 함 옵티마이저가 비정상적인 실행계획을 수립할 경우, 힌트(Hint)로서 옵티마이저의 접근 경로 및 조인(Join)순서 제어 |
| 4. 인덱스 재구성 | 성능에 중요한 액세스 경로를 고려하여 인덱스(Index) 생성 실행계획을 검토하여 기존 인덱스의 열 순서 변경/추가 |
| 5. 실행계획 유지관리 | 데이터베이스 버전 업그레이드, 데이터 전환 등 시스템 환경의 변경 사항 발생시에도 실행계획이 유지되는지 관리 |
옵티마이저 : SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부 핵심엔진, 실행계획(Execution Plan, 옵티마이저가 생성한 SQL 처리경로)
| 규칙기반 옵티마이저(RBO) | 비용기만 옵티마이저(CBO) | |
| 개념 | 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저 | 통계 정보로부터 모든 접근 경로를 고려한 질의실행 계획을 선택하는 옵티마이저 |
| 핵심 | 규칙(우선 순위) 기반 | 비용(수행 시간)기반 |
| 평가기준 | 인덱스 구조, 연산자, 조건절 형태 등 | 레코드 개수, 블록 개수, 평균 행 길이, 컬럼 값의수, 컬럼값 분포, 인덱스 높이, 클러스터링 팩터 등 |
| 장점 | 사용자가 원하는 처리경로로 유도하기 쉬움 | 옵티마이저의 이해도가 낮아도 성능보장 가능(기본설정) |
반응형
'정보처리기사 > [수제비] 정보처리기사 실기' 카테고리의 다른 글
| IV. 통합구현_01. 연계 메커니즘 구성 (0) | 2023.04.03 |
|---|---|
| I. 요구사항 확인_01. 소프트웨어 개발방법론 (0) | 2023.03.27 |
| VII. SQL 응용_02. 응용 SQL 작성하기 (0) | 2023.03.20 |
| VII. SQL 응용_01. 데이터베이스 기초 (0) | 2023.03.17 |
| VI. 프로그래밍 언어활용_03. 자바 (0) | 2023.03.08 |