본문 바로가기

Oracle Database SQL Tuning Guide 12c Release 2 (12.2)

Chapter09.Joins 9.1 About Joins 조인은 테이블 또는 뷰와 같은 정확히 두 개의 행 소스의 출력을 결합하고 하나의 행 소스를 리턴합니다. 리턴 된 행 소스는 데이터 세트입니다. 조인은 SQL 문의 WHERE (ANSI가 아닌) 또는 FROM ... JOIN (ANSI) 절에있는 다중 테이블을 특징으로합니다. FROM 절에 여러 테이블이 존재할 때마다 Oracle Database는 조인을 수행합니다. 조인 조건은 표현식을 사용하여 두 개의 행 소스를 비교합니다. 조인 조건은 테이블 간의 관계를 정의합니다. 명령문이 조인 조건을 지정하지 않으면 데이터베이스는 데 티지 조인을 수행하여 한 테이블의 모든 행을 다른 테이블의 모든 행과 일치시킵니다. See Also: • "Cartesian Joins (page 9-2.. 더보기
Chapter17.Transporting Optimizer Statistics 17.Transporting Optimizer Statistics옵티 마이저 통계를 데이터 딕셔너리에서 사용자 정의 통계 테이블로 내보내고 가져올 수 있습니다.한 데이터베이스의 통계를 다른 데이터베이스로 복사 할 수도 있습니다. 17.1 About Transporting Optimizer Statistics데이터베이스간에 옵티 마이저 통계를 전송할 때 DBMS_STATS를 사용하여 스테이징 테이블과 통계를 복사하고 도구를 사용하여 대상 데이터베이스에서 테이블 내용에 액세스 할 수있게해야합니다.가져 오기 및 내보내기는 프로덕션 통계를 사용하여 응용 프로그램을 테스트 할 때 특히 유용합니다.DBMS_STATS.EXPORT_SCHEMA_STATS를 사용하여 프로덕션 데이터베이스의 스키마 통계를 테스트 데이터베.. 더보기
Chapter08.Optimizer Access Paths 8.1 Introduction to Access Paths행 원본은 실행 계획의 한 단계에서 반환되는 행 집합입니다.행 소스는 조인 또는 그룹화 조작의 표,보기 또는 결과 일 수 있습니다.행 소스에서 행을 검색하기 위해 u 리에서 사용되는 기술인 액세스 경로와 같은 단 일 조작은 입력으로 단일 행 소스를 채택합니다.예를 들어, 전체 테이블 스캔은 단일 행 소스의 행 검색입니다.대조적으로 조인 작업은 2 진이며 2 개의 행 소스에서 입력을 수신합니다데이터베이스는 서로 다른 관계형 데이터 구조에 대해 다른 액세스 경로를 사용합니다.다음 표는 주요 데이터 구조에 대한 공통 액세스 경로를 요약 한 것입니다. Table 8-1 Data Structures and Access Paths----------------.. 더보기
Chapter07.Reading Execution Plans 7.1 Reading Execution Plans: Basic이 섹션에서는 EXPLAIN PLAN 예제를 사용하여 실행 계획을 설명합니다.다음 쿼리는 실행 계획을 표시합니다. SELECT PLAN_TABLE_OUTPUTFROM TABLE(DBMS_XPLAN.DISPLAY(NULL, 'statement_id','BASIC'));이 명령문의 출력 예는 예 7-4 및 예제 7-1에 나와 있습니다. Example 7-1 EXPLAIN PLAN for Statement ID ex_plan1다음 플랜은 SELECT 문의 실행을 보여줍니다.테이블 직원은 전체 테이블 스캔을 사용하여 액세스됩니다.테이블 employee의 모든 행에 액세스하고 모든 행에 대해 WHERE 절 조건을 평가합니다. EXPLAIN PLANSET.. 더보기
Chapter06.Generating and Displaying Execution Plans 6.1 Introduction to Execution PlansOracle Database가 명령문을 실행하는 데 사용하는 단계의 조합은 실행 계획입니다. 각 단계는 데이터 행을 데이터베이스에서 실제로 검색하거나 명령을 행하는 사용자를 위해 준비합니다. 실행 계획에는 명령문이 액세스하는 각 테이블에 대한 액세스 경로와 해당 조인 메소드로 테이블의 순서(조인 순서)가 포함됩니다. 6.2 About Plan Generation and DisplayEXPLAIN PLAN 문은 최적화 프로그램이 SELECT, UPDATE, INSERT 및 DELETE 문에 대해 선택하는 실행 계획을 표시합니다. 6.2.1 About the Plan Explanation명령문 실행 계획은 데이터베이스가 명령문을 실행하기 위해 수.. 더보기
Chapter05.Query Transformations 옵티마이저는 많은 쿼리 변환 기술을 사용합니다. 이 장에서는 가장 중요한 것을 설명합니다. 5.1 OR Expansion OR 확장에서 옵티마이저는 최상위 레벨 분리를 포함하는 쿼리 블록을 두 개 이상의 분기를 포함하는 UNION ALL 쿼리의 형식으로 변환합니다. 옵티마이저는 disjunction을 해당 구성 요소로 분리 한 다음 각 구성 요소를 UNION ALL 쿼리의 분기와 연결하여 이 목표를 달성합니다. 옵티마이저는 다양한 이유로 OR 확장을 선택할 수 있습니다. 예를 들어, CONCATENATION 곱을 피하는 보다 효율적인 액세스 경로 또는 대체 조인 메소드를 사용할 수 있습니다. 항상 그렇듯이 옵티마이저는 변환된 명령문의 원가가 원래 명령문의 원가보다 낮을 경우에만 확장을 수행합니다. 이전 .. 더보기
Chapter04.Query Optimizer Concepts 더보기
Chapter03.SQL Processing 3.1 About SQL ProcessingSQL 처리는 구문 분석, 최적화, 행 소스 생성 및 SQL 문의 실행입니다. 설명에 따라 데이터베이스는 이러한 단계 중 일부를 생략 할 수 있습니다. 다음 그림은 SQL 처리의 일반 단계를 보여줍니다. Figure 3-1 SQL 처리 단계 3.1.1 SQL ParsingSQL 처리의 첫 단계는 구문 분석입니다.구문 분석 단계에서는 SQL 문의 조각을 다른 루틴이 처리 할 수 있는 데이터 구조로 분리합니다. 데이터베이스는 응용 프로그램에서 지시 할 때 명령문을 구문 분석합니다. 즉, 데이터베이스 자체가 아닌 응용 프로그램만 구문 분석 수를 줄일 수 있습니다. 응용 프로그램이 SQL 문을 발행하면 응용 프로그램은 데이터베이스에 대한 구문 분석 호출을 작성하여 실행.. 더보기
Chapter02.SQL Performance Methodology 2.1 응용 프로그램 설계 지침좋은 SQL 성능을 얻으려면 애플리케이션의 성능을 염두에 두어야합니다. 2.1.1 데이터 모델링 지침데이터 모델링은 성공적인 애플리케이션 설계에 중요합니다. 비즈니스 관행을 나타내는 방식으로 데이터 모델링을 수행해야합니다. 정확한 데이터 모델에 대한 논쟁이 가열 될 수 있습니다. 중요한 것은 가장 빈번한 비즈니스 트랜잭션에 의해 영향을 받는 이들 개체에 큰 모델링에 노력을 적용하는 것입니다. 모델링 단계에서 비 핵심 데이터 요소를 모델링하는데 너무 많은 시간을 소비하려는 유혹이 있으며 개발 리드 타임이 늘어납니다. 모델링 도구를 사용하면 신속하게 스키마 정의를 생성 할 수 있으므로 빠른 프로토타입이 필요할 때 유용 할 수 있습니다. 2.1.2 효율적인 응용 프로그램 작성 지.. 더보기
Chapter01.Introduction to SQL Tuning 1 SQL 튜닝 소개 1.1 SQL 튜닝SQL Tuning은 구체적이고 측정 가능하며 달성 가능한 목표를 충족시키기 위해 SQL문 성능을 개선하는 반복 프로세스입니다. SQL Tuning은 배포된 응용 프로그램의 문제점을 수정하는 것을 의미합니다. 반대로 응용 프로그램 디자인은 응용 프로그램을 배포하기 전에 보안 및 성능 목표를 설정합니다. 1.2 SQL 튜닝의 목적SQL문은 미리 결정되고 측정 가능한 표준에 따라 수행하지 못할 때 문제가 됩니다. 문제를 확인한 후에는 일반적인 튜닝 세션에 다음 목표 중 하나가 있습니다.• 사용자 반응 시간 단축: 사용자가 내용을 발표하고 응답을 받을 때까지 걸리는 시간을 줄입니다.• 처리량 향상: 명세서에 액세스 한 모든 행을 처리하는 데 필요한 자원을 최소한으로 사용.. 더보기