본문 바로가기
반응형

책과 부동산과 주식이야기73

(SQLP SQLD 핵심 정리 10) 고급 SQL 튜닝 소트와 관련된 오퍼레이션 유형 1. Sort Aggregate : 전체 로우를 대상으로 집계를 수행할 때 나타나며, Oracle 실행걔획에 sort라는 표현이 사용됐지만 실제 소트가 발생하진 않는다. 2. Sort Order by : 정렬된 결과 집합을 얻고자 할 때 나타난다. 3. Sort Group by : Sorting 알고리즘을 사용해 그룹별 집계를 수행할 때 나타난다. 4. Sort Unique : 선택된 결과 집합에서 중복 레코드를 제거하고자 할 때 나타난다. Union 연산자나 Distinct 연산자를 사용할 때가 대표적이다. 5. Sort Join : Sort Merge Join을 수행할 때 나타난다. 6. Window Sort : 윈도우 함수를 수행할 때 나타난다. Oracle에서 Dir.. 2023. 12. 25.
(SQLP SQLD 핵심 정리 9) 인덱스와 조인 INDEX RANGE SCAN - 인덱스 루트 블록에서 리프 블록까지 수직적으로 탐색한 후에 리프 블록을 필요한 범위(Range)만 스캔하는 방식 INDEX SKIP SCAN - 루트 또는 브랜치 블록에서 읽은 칼럼 값 정보를 이용해 조건에 부합하는 레코드를 포함할 '가능성이 있는' 하위 블록(브랜치 또는 리프 블록)만 골라서 액세스하는 방식 INDEX FULL SCAN - 수직적 탐색없이 인덱스 리프 블록을 처음부터 끝까지 수평적으로 탐색하는 방식 - 데이터 검색을 위한 최적의 인덱스가 없을 때 차선책으로 선택하는 스캔 방법 INDEX UNIQUE SCAN - 수직적 탐색만으로 데이터를 찾는 스캔방식 - '=' 조건으로 탐색하는 경우 INDEX FAST FULL SCAN - INDEX FULL SCAN.. 2023. 12. 25.
(SQLP SQLD 핵심 정리 8) 옵티마이저의 원리 규칙 기반 옵티마이저(Rule-Based Optimizer, RBO) - 다른 말로 '휴리스틱(Heuristic) 옵티마이저'라고도 불림 - 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행계획을 선택한다. - 규칙은 액세스 경로별 우선순위로써, 인덱스 구조, 연산자, 조건절 형태가 순위를 결정짓는 주요 요인이다. 선택도(Selectivity) - 1 / NDV(Number of Distinct Value) 카디널리티(Cardinality) - 총 로우수 * 선택도 - num_rows / num_distinct 힌트를 사용하지 않고 뷰 머징(View Merging) 방지하는 방법 - 집합(set) 연산자(union, union all, intersect, minus) 사용 - connect by .. 2023. 12. 25.
(SQLP SQLD 핵심 정리 7) LOCK과 트랜잭션 동시성 제어 LOCK에 의한 성능 저하를 최소화하는 방안 - 트랜잭션의 원자성을 훼손하지 않는 선에서 트랜잭션을 가능한 한 짧게 정의할 것 - 같은 데이터를 갱신하는 트랜잭션이 동시에 수행되지 않도록 설계할 것 - 주간에 대용량 갱신 작업이 불가피하다면, 블로킹 현상에 의해 사용자가 무한정 기다리지 않도록 적절한 프로그래밍 기법을 도입할 것 - 트랜잭션 격리성 수준을 불필요하게 상향 조정하지 않을 것 - 트랜잭션을 잘 설계하고 대기 현상을 피하는 프로그래밍 기법을 적용하기에 앞서, SQL 문장이 가장 빠른 시간 내에 처리를 완료할 것 블로킹(Blocking)? - 블로킹(Blocking)은 Lock 경합이 발생해 특정 세션이 작업을 진행하지 못하고 멈춰 선 상태를 말한다. - 공유 Lock끼리는 호환되기 때문에 블로.. 2023. 12. 24.
반응형