0
teiid를 사용하여 적색 편이 DB에 대해 상당히 큰 SQL 선택 쿼리를 실행하고 있습니다. 내 쿼리에서 내부 쿼리와 내부 select 문을 사용하지 않아도 응답 시간을 단축하도록 쿼리를 최적화했습니다. 어떻게하면 쿼리를 실행할 때, 내부 쿼리 및 내부 선택 문을 사용하는 다른 버전으로 내 쿼리를 변경 teiid 쿼리 엔진. 이 동작을 무시하고 내가 제공 한 쿼리를 직접 사용할 수있는 방법이 있습니까? Teiid 쿼리 엔진은 실행시 쿼리의 최적화 버전을 최적화되지 않은 쿼리로 수정합니다.
그녀이다 I 실행 일본어 teiid 쿼리 CREATE VIRTUAL PROCEDURE GetTop() RETURNS (json clob) OPTIONS (UPDATECOUNT 0, "REST:METHOD" 'GET', "REST:URI" 'GetTop')
AS
/*+ cache(pref_mem ttl:14400000) */
BEGIN
execute immediate
'SELECT JSONOBJECT(
JSONARRAY_AGG(
JSONOBJECT(
total_purchases,
total_invoice,
total_records,
period
)
)
AS "dd"
) as json FROM(
SELECT SUM((CASE
GROUP BY period
Teiid 쿼리 엔진 I에 의해 I를 knowhHow 수하고자
SELECT SUM(v_0.c_1),
COUNT(DISTINCT v_0.c_2),
COUNT(v_0.c_2),
v_0.c_0
FROM (SELECT CASE
GROUP BY v_0.c_0
내부 SELECT 문이 벨로 버전으로 쿼리 상기 변환 이 동작을 전달하고 원래 쿼리를 실행합니까?
자세한 내용으로 질문을 수정했습니다. – Sanjewa
이것은 pg/redshift 변환기의 문제인 것으로 보입니다. supportsFunctionsInGroupBy가 true 여야합니다. false로 엔진은 보상 할 인라인 뷰를 생성합니다. 코드 기반에서이를 수정해야합니다 - 문제를 기록 할 수 있습니까? 자신 만의 변환기 확장 변환기를 작성하거나, 위임 변환기를 사용하여이 기능을 대체하거나, SQL을 소스로 직접 보내려는 경우 직접/원시 (direct/native) 조회를 사용하는 등의 일시적인 해결책이 있습니다. –
감사합니다. 나는 문제를 기록 할 것이다. 이 문제를 올바르게 재현하려면 시간이 필요합니다. 일단 끝나면 샘플 쿼리로 위 질문을 편집합니다. 그리고 문제를 기록 할 것입니다. – Sanjewa