클라이언트가 서버 프로세스와 연결하는 Oracle의 예 |
- 전용 서버(Dedicated Server) 방식
- 공유 서버(Shared Server) 방식
리두로그(REDO LOG) or 트랜잭션로그(TRANSACTION LOG) |
- DB 버퍼 캐시에 가해지는 모든 변경 사항을 기록하는 파일을 말함.
- Oracle에서는 리두로그, SQL Server에서는 트랜잭션로그
Response Time Analysis 방법론 |
- Response Time을 정의하고, CPU Time과 Wait Time을 각각 break down 하면서 서버의 일량과 대기 시간을 분석해 나간다.
- CPU Time은 파싱 작업에 소비한 시간인지 아니면 쿼리 본연의 오퍼레이션 수행을 위해 소비한 시간인지를 분석한다.
- Wait Time은 각각 발생한 대기 이벤트들을 분석해 가장 시간을 많이 소비한 이벤트 중심으로 해결 방안을 모색한다.
소프트 파싱(Soft Parsing) |
- SQL 과 실행계획을 캐시에서 찾아 곧바로 실행단계로 넘어가는 경우
하드 파싱(Hard Parsing) |
- SQL 과 실행계획을 캐시에서 찾지 못해 최적화 과정을 거치고 나서 실행단계로 넘어가는 경우
바인드 변수(Bind Variable) |
- 파라미터 Driven 방식으로 SQL을 작성하는 방법이 제공되는데 SQL과 실행계획을 여러 개 캐싱하지 않고 하나를 반복 재사용하므로 파싱 소요시간과 메모리 사용량을 줄여준다.
SQL 커서에 대한 작업 요청에 따른 데이터베이스 Call의 구분 |
- Parse Call
: SQL 파싱을 요청하는 Call
- Execute Call
: SQL 실행을 요청하는 Call
- Fetch Call
: SELECT문과 결과 데이터 전송을 요청하는 Call
사용자 정의 함수 / 프로시저 |
- 내장함수처럼 Native 코드로 완전 컴파일 된 형태가 아니어서 가상머신(Virtual Machine) 같은 별도의 실행 엔진을 통해 실행된다.
- 실행될 때 마다 컨텍스트 스위칭(Context Switching)이 일어나며, 이 때문에 내장함수(Built-In)를 호출할 때와 비교해 성능을 상당히 떨어뜨린다.
Single Block I/O |
- 한번의 I/O Call에 하나의 데이터 블록만 읽어 메모리에 적재하는 방식
Multi Block I/O |
- I/O Call이 필요한 시점에, 인접한 블록들을 같이 읽어 메모리에 적재하는 방식
버퍼 캐시 히트율(Buffer Cache Hit Ratio) |
- 버퍼 캐시 효율을 측정하는 지표
- 전체 읽은 블록 중에서 메모리 버퍼 캐시에서 찾은 비율을 나타낸다.
- 물리적인 디스크 읽기를 수반하지 않고 곧바로 메모리에서 블록을 찾은 비율을 말한다.
I/O 튜닝의 핵심 원리 |
- Sequential 액세스에 의한 선택 비중을 높인다.
- Random 액세스 발생량을 줄인다.
'책과 부동산과 주식이야기' 카테고리의 다른 글
(SQLP SQLD 핵심 정리 8) 옵티마이저의 원리 (0) | 2023.12.25 |
---|---|
(SQLP SQLD 핵심 정리 7) LOCK과 트랜잭션 동시성 제어 (0) | 2023.12.24 |
(SQLP SQLD 핵심 정리 5) SQL 최적화 기본 원리 (0) | 2023.12.24 |
(SQLP SQLD 핵심 정리 4) SQL 활용 (0) | 2023.12.23 |
(SQLP SQLD 핵심 정리 3) SQL기본 (0) | 2023.12.23 |