2017-11-21 22 views
-2

내 쿼리의 쿼리 성능은 매우 낮습니다. 실행 속도가 매우 느리고 실행 속도는 약 11 초이며, 쿼리 기반의 쿼리는 약 60ms가 걸립니다. 여러 조인과Oracle 11g unpivot 매우 저속 - 저 성능

base 쿼리는 복잡하지만 그것은 단지 몇 행을 반환합니다.

피벗 해제는에 작동 ~ 7 그룹 40 열 주위 열 및 unpivots.

쿼리 계획 설명은 UNPIVOT의 비용이 매우 높은 경우에만 것을, 더 자세한 내용을 보여줍니다. 시도

+0

의 요인에 의해 쿼리 시간을 단축 A [MCVE] 당신의 테이블에 대한 DDL 문을 포함하여 주시기 바랍니다 내 경우

WITH base as (select my_data, ...) select * from base UNPIVOT (...) 

시도 , 샘플 데이터, 쿼리 및 Explain 플랜에 대한 DML 문. 그렇지 않으면 다른 사람들이이 질문에 대한 답을 제공 할 수 없게됩니다. "명확한 문제 설명이없는 질문은 다른 독자에게 유용하지 않습니다." – MT0

+0

다른 말로는 불가능한 문제에 대한 가능한 해결책을 제공하고 있습니다. 나는 그것을 풀려고 몇 시간을 보냈다. 이 질문은 이미 Google에서 매우 색인이 생성되어있어 특정 (제목) 문제에 대한 해결책을 사람들에게 제공합니다. 그리고 MCVE는 몇 시간이 걸렸을 것이고 오라클의 쿼리 분석기는 통계를 수집 한 대규모 프로덕션 데이터베이스와는 다른 방식으로 문제를 해결할 것이기 때문에 문제가 실제로 나타나기를 기대할 수는 없습니다. 질문을 끝내거나 담당자를 잃어 버리면 걱정하지 않습니다. 그럴 가치가있는 사람이 한 명 있으면 믿을 수 있기 때문입니다. 개발자에게! – Dariusz

답변

0

한 것은 base 쿼리에 대한 WITH 절을 사용하는 것입니다.

대신

SELECT * from (SELECT my_data, ...) UNPIVOT (...) 

의이 (10)

+0

이 질문에 자발적으로 답변하려면 [MCVE]를 입력하여 주장을 뒷받침하십시오. – MT0