programing

parallel_enabled가 없는 ODCIAgregateMerge

easyjava 2023. 6. 8. 22:42
반응형

parallel_enabled가 없는 ODCIAgregateMerge

다음은 Oracle 문서에서 인용한 내용입니다.

[선택사항] 두 집계 컨텍스트를 결합하여 병합하고 단일 컨텍스트를 반환합니다.이 작업은 전체 집합에 대한 집계를 얻기 위해 하위 집합에 대한 집계 결과를 결합합니다.Aggregate를 직렬 또는 병렬로 평가하는 동안 이 추가 단계가 필요할 수 있습니다.필요한 경우 4단계 이전에 수행합니다.

,

ODCIAgregateMerge() 인터페이스는 이러한 롤업 작업에서 수퍼 애그리게이트 값을 계산하기 위해 호출됩니다.

우리는 절대 병렬로 실행하고 싶지 않은 종합적인 기능을 가지고 있습니다.
그 이유는 컨텍스트를 병합하면 리소스가 소모되고 현재 사용하는 것과 다른 데이터 구조를 사용하게 되어 병렬 실행으로 인한 성능 이점을 효과적으로 상쇄할 수 있기 때문입니다.

따라서 함수를 parallel_enabled로 선언하지 않고 ODCIconst를 반환합니다.ODCIAgregateMerge '경우에 따라'에 오류가 있습니다.

그러나 첫 번째 인용문 문서에서는 일련의 평가에서도 병합이 발생할 수 있다고 주장합니다.
슈퍼 애그리게이트(롤업, 큐브)는 명백한 예이지만, 다른 것들이 있습니까?

저는 parallel_enabled 없이는 병합이 호출되지 않으며 항상 그룹 내에서 하나의 컨텍스트만 생성되는 것 같습니다.

parallel_enabled 집합이 없으면 병합이 실행되지 않는다고 가정해도 되겠습니까?
당신은 그 규칙에 대한 반례를 본 적이 있습니까?

예를 들어 배치별 그룹화나 OR-Expansion과 같은 변환의 경우, groupby가 "union all" 또는 group-set으로 여러 group-by nested 쿼리로 변환되거나 복잡한 조인의 경우 그룹 정리로 변환될 수 있습니다.

언급URL : https://stackoverflow.com/questions/56807876/odciaggregatemerge-without-parallel-enabled

반응형