본문 바로가기

서브쿼리3

[SQLP] 3장. 옵티마이저 원리 - 쿼리변환 쿼리 변환1. 쿼리변환쿼리 변환(Query Transformation)은, 옵티마이저가 SQL을 분석해 의미적으로 동일하면서도 더 나은 성능이 기대되는 형태로 재작성하는 것을 말함2. 서브쿼리 Unnesting중첩된 서브쿼리(Nested Subquery)를 풀어내는 것을 말함서브쿼리를 메인쿼리와 같은 레벨로 풀어낸다면 다양한 액세스 경로와 조인 메소드를 평가할 수 있음3. 뷰 Merging사람의 눈으로 볼 때는 쿼리를 블록화하는 것이 더 읽기 편할지 모르지만 최적화를 수행하는 옵티마이저의 시각에서는 더 불편함의 뷰 쿼리 블록은 액세스 쿼리 블록(뷰를 참조하는 쿼리 블록)과의 머지(merge) 과정을 거쳐 와 같은 형태로 변환되는데, 이를 ‘뷰 Merging’이라고 함select * from (select.. 2019. 3. 17.
[SQLD] 정리 1 (데이터 모델링의 이해, SQL 기본) ▶데이터 모델링의 이해◀ 엔티티업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 (thing) 명사 (관계는 verb)- 기본 (Basic) 엔티티 : 독립적 생성 가능 ( 고객 )- 메인 (Main) 엔티티 : 업무의 중심 ( 계약 )- 행위 (Active) 엔티티 : 두개 이상의 부모 엔티티로 발생 ( 주문목록 ) * 엔티티 특징가. 업무에서 필요로 하는 정보나. 식별이 가능해야 함다. 인스턴스의 집합예)엔티티 : 사건인스턴스 : 사건 2010-011라. 업무프로세스에 의해 이용마. 속성(Attributes)을 포함 ( 사건번호, 사건 발생일 ...)바. 관계의 존재 * 엔티티 분류가. 유무형 ( 유형엔티티 : 사원사건엔티티 : 주문개념엔티티 : 조직 ) 나. 발생시점 ( 기본엔티티 .. 2016. 5. 30.
[Oracle] 서브 쿼리 서브쿼리를 써야되는 이유* 조회하려는 대상을 알지 못할 때* 조회하려는 대상이 너무 많을 떄* 조회하려는 대상이 유동적일 때 사용함 여러개가 나올때 IN을 쓴다. 원래는 하나씩 계산해주지만 지금 ORACLE은 WHERE에서 한꺼번에 검색하는 것도 가능하다. 이중 삼중 중첩으로 작성하였다. 먼저 ~에서 근무하는 부서를 찾은뒤LAST_NAME에 u가 들어있는 사원을 찾았다. 2016. 2. 16.