profile
duckling

옵티마이저

옵티마이저(Optimizer) : SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해주는 DBMS 내부의 핵심 엔진실행계획 : 옵티마이저가 생성한 SQL 처리경로옵티마이저의 SQL 최적화 과정1\. 사용자가 던진 쿼리수행을 위해, 후보군이 될만한

2021년 3월 24일
·
0개의 댓글

데이터베이스 아키텍처

데이터베이스 : 디스크에 저장된 데이터집합(Datafile, Redo Log File, Control File 등)인스턴스 : SGA 공유 메모리 영역과 이를 액세스하는 프로세스 집합기본적으로 하나의 인스턴스가 하나의 데이터베이스만 액세스한다.RAC(Real Appli

2021년 3월 21일
·
0개의 댓글

배치 프로그램 튜닝

배치 프로그램 튜닝 개요 배치(Batch) 프로그램 배치 프로그램이란, 일련의 작업들을 하나의 작업 단위로 묶어 연속적으로 일괄 처리하는 것을 말한다. 온라인 프로그램에서도 여러 작업을 묶어 처리하는 경우가 있으므로 이와 구분하려면 한 가지 특징을 더 추가해야 하는데,

2021년 3월 1일
·
0개의 댓글

파티션 활용

파티션 개요 파티셔닝(Partitioning)은 테이블 또는 인덱스 데이터를 파티션(Partition) 단위로 나누어 저장하는 것을 말한다. 테이블을 파티셔닝하면 파티션 키에 따라 물리적으로는 별도의 세그먼트에 데이터를 저장하며, 인덱스도 마찬가지다. 관리적 측면 :

2021년 2월 25일
·
0개의 댓글

DML 튜닝

인덱스 유지 비용 테이블 데이터를 변경하면 관련된 인덱스에도 변경이 발생한다. 변경할 인덱스 레코드를 찾아가는 비용에 Redo, Undo를 생성하는 비용까지 더해지므로 인덱스 개수가 많을수록 DML 성능이 나빠진다. Update 수행 시 테이블 레코드는 직접 변경하지

2021년 2월 24일
·
0개의 댓글

소트 튜닝

소트와 성능 메모리 소트와 디스크 소트 SQL 수행 도중 Sort 오퍼레이션이 필요할 때마다 DBMS는 정해진 메모리 공간에 Sort Area를 할당하고 정렬을 수행한다. Oracle은 소트 영역을 PGA 영역에 할당한다. Sort 오퍼레이션도 메모리 공간이 부족할

2021년 2월 23일
·
0개의 댓글
post-thumbnail

고급 SQL 활용

데이터베이스 Call을 반복적으로 일으키는 프로그램을 One-SQL로 통합했을 때 얻는 성능개선 효과는 매우 극적이다. 하나의 업무에 대해서이렇게 쿼리를 작성하면 같은 테이블을 여러 번 접근해야 한다는 점에서 효율적이지 못하다.이렇게 CASE문을 활용한다면 복잡한 처리

2021년 2월 20일
·
0개의 댓글

조인 기본 원리

Nested Loop Join 조인의 기본은 NL 조인이다. NL 조인은 인덱스를 이용한 조인으로 이를 정확하게 이해하고 나면 다른 조인 방식도 쉽게 이해할 수 있다. 예를 하나 들어보자. 이 쿼리 수행 과정을 생각했을 때 가장 쉽게 생각할 수 있는 방식은 사원 테

2021년 2월 19일
·
0개의 댓글
post-thumbnail

정규화(1NF, 2NF, 3NF, BCNF)

테이블 설계를 하면서 성능 개선을 위해 정규화가 필요한데 정규화와 정규형이 헷갈릴 때가 있어 쭉 정리하게 되었다.정규화란 데이터 종속성에 기반하여 테이블을 분해하는 과정이다.다치 속성이나 복합 속성을 갖는 테이블이다.이런 테이블은 제1 정규화를 통해 제1 정규형(1NF

2021년 2월 15일
·
0개의 댓글

인덱스 튜닝

인덱스 튜닝 기초 범위 스캔이 불가능하거나 인덱스 사용이 아예 불가능한 경우 인덱스 선두 컬럼을 조건절에서 가공하면 (FBI 인덱스를 정의하지 않는 한) 정상적으로 인덱스를 사용할 수 없다. FBI 인덱스 : 함수 기반 인덱스. 컬럼을 가공한 형태로 인덱스 생성하기

2021년 2월 14일
·
0개의 댓글
post-thumbnail

인덱스 기본 원리

인덱스 기본 가장 일반적으로 B\*Tree 인덱스 구조를 사용한다. 인덱스 깊이 : 루프에서 리프 블록까지의 거리. 반복적으로 탐색 시 성능에 영향을 미친다. 루트, 브랜치 블록 : 각 하위 노드들의 데이터 값 범위를 나타내는 키값과 그 키값에 해당하는 블록을 찾는데

2021년 2월 11일
·
0개의 댓글
post-thumbnail

쿼리변환

쿼리 변환(Query Transformation)은 옵티마이저가 SQL을 분석해 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성하는 것을 말한다. 이는 Query Transformer가 담당한다. 휴리스틱 쿼리 변환 : 결과만 보장된다면 무조건 쿼리 변

2021년 2월 7일
·
0개의 댓글
post-thumbnail

동시성 제어

동시성 제어(Concurrency Control)란 동시에 작동하는 다중 트랜잭션의 상호 간섭 작용에서 데이터베이스를 보호할 수 있어야 함을 의미한다. 동시성을 높이려고 Lock의 사용을 최소화하면 일관성을 유지하기 어렵고, 일관성을 높이려고 Lock을 적극적으로 사용

2021년 2월 1일
·
0개의 댓글

트랜잭션

트랜잭션(Transaction) : 업무 처리를 위한 논리적인 작업 단위원자성 (Atomicity) : 트랜잭션은 더이상 분해가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 한다.일관성 (Consistency) : 하나의 트랜잭션을 성공

2021년 1월 30일
·
0개의 댓글

Lock

같은 자원을 액세스하려는 다중 트랜잭션 환경에서 데이터베이스의 일관성과 무결성을 유지하기 위해 필요한 직렬화 장치공유 Lock: 데이터를 읽고자 할 때 사용한다.공유 Lock과는 호환되지만 배타적 Lock과는 호환되지 않는다.(공유 Lock이 설정된 리소스에 다른 트랜

2021년 1월 30일
·
0개의 댓글

데이터베이스 I/O 원리

Oracle을 포함한 모든 DBMS에서 I/O는 블록 단위로 이루어진다.디스크 I/O : 디스크의 액세스 암이 움직이면서 헤드를 통해 데이터를 읽고 쓴다. 메모리 I/O : 전기적 신호메모리는 물리적으로 한정된 자원이므로, 결국 디스크 I/O를 최소화하고 버퍼 캐시 효

2021년 1월 28일
·
0개의 댓글

데이터베이스 Call과 네트워크 부하

데이터베이스 Call 종류 SQL 커서에 대한 작업 요청에 따른 구분 Parse Call : SQL 파싱을 요청하는 Call Execute Call : SQL 실행을 요청하는 Call Fetch Call : SELECT문의 결과 데이터 전송을 요청하는 Call Cal

2021년 1월 28일
·
0개의 댓글

SQL 파싱 부하

1. SQL 처리과정 SQL 파싱 라이브러리 캐시 : 시스템 공유 메모리에서 SQL과 실행계획이 캐싱되는 영역 SQL 파싱 과정 1) 파싱 트리 생성 : SQL문을 이루는 개별 구성 요소를 분석해서 파싱 트리 생성 2) Syntax 체크 : 문법적 오류가 없는지 확

2021년 1월 28일
·
0개의 댓글
post-thumbnail

데이터베이스 아키텍처

데이터베이스 : 디스크에 저장된 데이터집합(Datafile, Redo Log File, Control File 등)인스턴스 : SGA 공유 메모리 영역과 이를 액세스하는 프로세스 집합기본적으로 하나의 인스턴스가 하나의 데이터베이스만 액세스한다.RAC(Real Appli

2021년 1월 26일
·
0개의 댓글

우주신과의 교감_1774번

황선자씨는 우주신과 교감을 할수 있는 채널러 이다. 하지만 우주신은 하나만 있는 것이 아니기때문에 황선자 씨는 매번 여럿의 우주신과 교감하느라 힘이 든다. 이러던 와중에 새로운 우주신들이 황선자씨를 이용하게 되었다.하지만 위대한 우주신들은 바로 황선자씨와 연결될 필요가

2021년 1월 25일
·
0개의 댓글