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

SQL 문제 풀이 | SQL 활용 및 최적화

by lcrvvxln 2024. 4. 15.

07. SQL 응용

Chapter 03. SQL 활용 및 최적화

 

예상 문제

 

 

# 01. 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL은 무엇인가? 

 

 

 

A. 트리거

 

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

※ 프사트 : 프로시저 / 사용자 정의 함수 / 트리거

1. 프로시저 (Procedure)
일련의 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리의 집합

2. 사용자 정의 함수 (User-Defined Funcion)
일련의 SQL 처리를 수행하고, 수행 결과단일 값으로 반환할 수 있는 절차형 SQL

3. 트리거 (Trigger)
데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업자동으로 수행되는 절차형 SQL

 

 

해설.

1. 프로시저

일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리 집합

2. 사용자 정의 함수 

일련의 SQL 처리를 수행하고, 수행 결과단일 값으로 반환할 수 있는 절차형 SQL

3. 트리거

데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트발생할 때마다 관련 작업자동으로 수행되는 절차형 SQL

 

 

 

 

#02. SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 DBMS 내부의 핵심엔진은 무엇인가?

 

 

 

 

A. 옵티마이저

 

 

해설. 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로생성해주는 DBMS 내부의 핵심엔진이다.옵티마이저가 생성한 SQL 처리 경로실행계획(Execution Plan)이라 부른다.

 

# 옵티마이저 (Optimizer)
옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적처리경로생성해주는 DBMS 내부 핵심엔진이다.
옵티마이저가 생성한 SQL 처리경로실행계획(Execution Plan)이라 부른다.

- 옵티마이저 유형

1. 규칙기반 옵티마이저(RBO; Rule Based Optimizer) _ 규칙(우선순위) 기반
통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획선택하는 옵티마이저
→ 사용자가 원하는 처리 경로로 유도하기 쉬움

평가 기준 : 인덱스 구조, 연산자, 조건절 형태 등

2. 비용기반 옵티마이저(CBO; Cost Based Optimizer) _ 비용(수행 시간) 기반
통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획선택하는 옵티마이저
→ 옵티마이저 이해도가 낮아도 성능 보장 가능 (기본 설정)

평가 기준 : 레코드 개수, 블록 개수, 평균 행 길이, 컬럼 값의 수, 컬럼 값 분포, 인덱스 높이, 클러스터링 팩터 등