관계형 데이터베이스 질의의 성능 조정

많은 고객이 데이터 웨어하우스 애플리케이션에서 성능 문제를 경험하므로 Oracle Analytics에서 보고서 성능을 분석하고 개선할 수 있는 방법에 대한 몇 가지 중요 지침이 제공됩니다. Oracle Analytics에서 생성된 SQL 질의가 복잡해서 분석할 수 없는 경우도 있습니다. 이 항목에서는 Oracle Analytics에서 생성된 SQL 질의로 인해 발생할 수 있는 성능 문제를 분석하고 최소화하는 방법에 대해 설명합니다.

이 항목에서는 네트워크, 브라우저 또는 보고서 표시 문제로 인한 성능 문제를 다루지 않습니다.

Oracle Analytics에 대한 질의 로그 분석(로그 레벨 3 필요)

이 로그를 찾는 방법 또는 콘텐츠를 이해하는 방법에 대한 자세한 내용은 질의 로그 수집 및 분석을(를) 참조하십시오.

  1. Oracle Analytics에서 질의에 소요되는 시간과 데이터베이스에서 소요되는 시간, 즉 응답 시간물리적 질의 기간을 비교합니다. 일반적으로 Oracle Analytics에서 소요되는 시간은 몇 초를 초과하지 않습니다.
  2. 응답 시간이 몇 초 이상인 경우 Oracle Analytics에서 수행된 개별 단계를 분석하여 원인을 찾습니다(로그 레벨 5 필요).

물리적 SQL 분석

  1. 질의에 포함된 모든 테이블이 필요한 것인지 여부를 확인합니다. 조인되었지만 SELECT 절에 포함되지 않고 필터(조인 조건이 아닌 실제 필터)가 적용되지 않은 테이블을 찾습니다.
  2. 생성된 물리적 질의 및 하위 질의 수를 식별합니다. 보다 정확하게는 질의가 사실 값 테이블을 몇 번이나 읽습니까? 완벽한 환경에서 질의는 단일 사실 값 테이블을 한 번만 읽습니다. 사실 값 테이블이 두 개 이상인 경우 이유를 파악하고 일부를 제거할 수 있는지 확인합니다.
  3. 제외된 열, 비가산 집계 규칙(REPORT_AGGREGATE, count(distinct)...), 선택 단계, 보고서의 하위 질의, 집합 연산자(UNION), 합계, 소계, 다중 뷰 등이 있는지 확인합니다.
  4. 포괄 조인이 있는지 확인합니다. 포괄 조인이 발생한 위치 및 설계 변경으로 일부를 제거할 수 있는지 여부를 파악합니다.

실행 계획 분석

SQL 최적화만으로 충분하지 않은 경우 실행 계획을 분석하여 성능 문제의 근본 원인을 찾습니다. DBA에게 도움을 요청합니다. 이 시점에서 성능 향상을 위한 네 가지 주요 방법이 있습니다.
  1. 데이터 액세스 경로(인덱스)를 향상시켜 IO 볼륨을 줄입니다.
  2. 데이터 읽기 볼륨을 줄여 IO 볼륨을 줄입니다. 예를 들어, 적용된 필터 또는 데이터 모델 구조를 검토할 수 있습니다(다음 섹션 참조).
  3. 병렬 실행(큰 테이블을 읽는 데 사용되는 스레드 수)을 늘립니다.
  4. IO 속도를 향상시킵니다(인프라 개선, 인메모리 데이터베이스 등).

데이터 읽기 볼륨을 줄이기 위해 데이터 모델을 검토하고 향상시킵니다.

  1. 집계 테이블을 생성합니다.
  2. 단편화를 사용합니다.

    예를 들어, 사용자가 주로 현재 연도, 분기 또는 월의 데이터를 선택하는 경우 해당 사실 값을 두 개의 테이블(현재 테이블과 아카이브 테이블)로 분할할 수 있습니다. Oracle 데이터베이스에서도 분할을 사용할 수 있습니다.

  3. 비정규화를 사용하여 조인 수를 줄입니다.
  4. 테이블을 분할하여 열 수를 줄입니다.

    읽은 데이터의 양은 각 테이블의 행 수에만 종속되지 않습니다. 테이블 볼륨은 해당 열의 수와 크기에 따라서도 달라집니다. 예를 들어, 500개의 열이 있는 큰 테이블을 두 개의 테이블로 분할할 수 있습니다. 한 테이블에는 가장 자주 사용되는 50개의 열을 넣고 다른 테이블에는 거의 사용되지 않는 나머지 450개의 열을 넣습니다.

Oracle Analytics의 많은 성능 문제는 잘못된 설계로 인해 최적이 아닌 SQL 질의가 생성되기 때문에 발생합니다. 설계를 수정하면 Oracle Analytics가 생성하는 SQL 질의를 향상시킬 수 있습니다. 이는 보고서 성능뿐만 아니라 데이터베이스에서 사용되는 리소스의 양에도 큰 영향을 줄 수 있습니다.