본문 바로가기

SQLP - 쿼리변환(1) @markdown # 쿼리변환(1) ## 쿼리변환이란____- 실행계획을 생성하고 비용을 계산하기에 앞서 사용자 SQL을 최적화에 유리한 형태로 재작성함![](http://wiki.gurubee.net/download/attachments/26745078/SQL_286.jpg)- Query Transformer가 역할 담당 ### 휴리스틱(Heuristic) 쿼리 변환- 규칙 기반(Rule-based) 최적화 기법- 결과만 보장된다면 무조건 쿼리 변환을 수행 ### 비용기반(Cost-based) 쿼리 변환- 변환된 쿼리의 비용이 더 낮을 때만 그것을 사용하고, 그렇지 않을때는 원본 쿼리 그대로 두고 최적화를 수행 ## 서브쿼리 Unnesting- 중첩된 서브쿼리를 풀어내는 것을 말함- 메인쿼리와 같은 레.. 더보기
SQLP - 옵티마이저 @markdown # 옵티마이저 ## 옵티마이저란____- SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심엔진- 옵티마이저가 생성한 SQL 처리경로가 `실행계획` #### SQL 최적화 과정 요약- 1. 사용자가 던진 쿼리 수행을 위해 후보군이 될만한 실행계획을 찾는다.- 2. 데이터 딕셔너리에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용해 실행계획의 예상비용을 산정한다.- 3. 각 실행계획을 비교해서 최저비용을 갖는 하나를 선택한다. ## 옵티마이저 종류____### 규칙기반 옵티마이저(Rule-Based Optimizer, Heuristic Optimizer)- 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행계획을 선택- 규칙 : 엑세스.. 더보기
SQLP - 동시성 제어 @markdown # 동시성 제어- DBMS는 다수의 사용자를 가정하며, 동시에 작동하는 다중 트랜잭션의 상호간섭 작용에서 데이터베이스를 보호 할 수 있어야 함- 동시성을 제어할 수 있도록 하기 위해 모든 DBMS가 공통적으로 Lock 기능을 제공- `SET TRANSACTION` 명령어를 이용해 트랜잭션 격리성 수준을 조정할 수 있는 기능도 제공 #### 동시성과 일관성의 상관관계![](http://wiki.gurubee.net/download/attachments/26745060/SQL_280.jpg) # 비관적 동시성 제어 vs 낙관적 동시성 제어____ ## 비관적 동시성 제어(Pessimistic Concurrency Control)- 사용자들이 같은 데이터를 동시에 수정할 것이라고 가정- 데이.. 더보기