보기에서 unnest()를 사용하고 select 문에서 해당보기를 사용하면 Greenplum은 의도 한 파티션을 검색하고 대신 주 테이블의 모든 파티션을 검색하는 데 실패한 것으로 보입니다. 보기 대신 부속 조회를 사용할 때도 동일한 사항이 적용됩니다. 예를 들어Greenplum 4.2.3을 만드는 방법은 의도 된 파티션 만 검사합니까?
:
Select something from (select unnest(an_array_field) from table_y)
where date = 'somedate' and state = 'somestate'
우리는 현재 그린 플럼의 2 개의 다른 버전을 실행하는 2 개 개의 다른 서버를 가지고있다. 서버 A는 이전 버전 (4.2.1)에서 실행되고 서버 B는 4.2.3에서 실행됩니다. 위의 동일한 쿼리를 실행하면 다르게 결과가 발생합니다. 서버 A (이전)는 몇 초 내에 쿼리를 반환하고 서버 B (새)는 계속해서 반환됩니다. 쿼리의 설명을 실행하면 Server A만이 파티션 중 하나 (날짜와 상태는 where 절)에서 스캔하는 반면 서버 B는 각 파티션에서 스캔을 수행하여 느려짐을 유발한다는 것을 보여줍니다.
두 DB의 테이블 구조는 동일합니다. unnest없이 쿼리를 실행해도 문제는 발생하지 않습니다. 그래서, 나는 새로운 버전과 관련이 있다고 의심하고 있습니다. 이 문제를 해결하기 위해 제가 할 수있는 일이 있습니까?
이 릴리스를 어디서 구할 수 있는지 또는 평가 목적으로 사용할 수 있는지 알려주십시오. 주요 포털에서 찾았지만 찾을 수있는 것은 4.2.2.4입니다. – Timka
무료로 다운로드 할 수있는 커뮤니티 버전의 최신 버전입니다. 최신 버전의 경우 지역 Pivotal 담당자에게 문의해야합니다. –