099 절차형 SQL
절차형 SQL의 개요
- C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
- 절차형 SQL 종류
- 프로시저(Procedure)
- 특정 기능을 수행하는 일종의 트랜잭션 언어
- 트리거(Trigger)
- 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(Event)가 발생할때마다 관련 작업이 자동으로 수행
- 사용자 정의 함수
- 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리
- 종료시 예약어 Return을 사용해 처리 결과를 단일값으로 반환
- 프로시저(Procedure)
테스트와 디버깅의 목적
- 테스트(Test)를 통해 오류를 발견한 후 디버깅(Debugging)을 통해 오류가 발생한 코드를 추적하여 수정
- 테스트 : 오류를 찾기 위해 진행
- 디버깅 : 오류를 수정하기 위해 진행
100 프로시저(Procedure)
프로시저(Procedure)의 개요
- 절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어
- 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업 수행
- 시스템의 일일 마감 작업, 일괄(Batch) 작업 등에 주로 사용
프로시저 생성/실행/제거
- 생성 : CREATE PROCEDURE 명령어
- 실행 : EXECUTE 명령어 or CALL 명령어
- 제거 : DROP PROCEDURE 명령어
101 쿼리 성능 최적화
쿼리 성능 최적화의 개요
- 데이터 입출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화하는 것
- 쿼리 성능을 최적화하기 전에 성능 측정 도구인 APM을 사용해 최적화할 쿼리 선정
- 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획 검토
- SQL 코드와 인덱스 재구성
옵티마이저(Optimizer)
- 작성된 SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아주는 모듈
- RBO & CBO
- | RBO (Rule Based Optimizer) |
CBO (Cost Based Optimizer) |
---|---|---|
최적화 기준 | 규칙에 정의된 우선순위 | 액세스 비용 |
성능 기준 | 개발자의 SQL 숙련도 | 옵티마이저의 예측 성능 |
특징 | 실행 계획 예측이 쉬움 | 성능 통계치 정보 활용, 예측이 복잡 |
고려사항 | 개발자의 규칙 이해도, 규칙의 효율성 | 비용 산출 공식의 정확성 |
SQL 코드 재구성
- WHERE절을 추가해서 일부 레코드만 조회하게 함으로써 조회에 들어가는 비용 줄임
- WHERE절에 연산자가 포함되면 INDEX를 활용하지 못함 → 가능한 한 연산자 사용 자제
- 서브쿼리에 특정 데이터가 존재하는지 확인할 때는 IN 보다 EXISTS 활용
인덱스 재구성
- SQL 코드에서 조회되는 속성과 조건들을 고려해서 인덱스 구성
- 실행 계획을 참고하여 인덱스를 추가하거나 기존 인덱스의 열 순서 변경
- 단일 인덱스로 쓰거나 수정없이 읽기로만 사용되는 테이블의 경우 IOT(Index-Organized Table)로 구성 고려
'CERTIFICATION > IEIP' 카테고리의 다른 글
[3-2] SQL 활용 (0) | 2024.05.18 |
---|---|
[3-1] 데이터베이스 이해 (0) | 2024.05.18 |
[2-2] 프로그램 구현 (0) | 2024.05.18 |
[2-1] 프로그래밍 언어 활용 (0) | 2024.05.18 |
[1-4] 정보시스템 기반 기술 용어 (0) | 2024.05.17 |