2017-04-07 3 views
0

바로 그 지점으로갑니다. 다음과 같이 나는, where 절을 포함하는 쿼리 레코드를 읽는 테이블 입력 단계를 가지고 :필드 치환을 사용하는 리터럴을 사용하는 것보다 느린 Pentaho 주전자 (PDI) 테이블 입력 단계

SELECT * id, name, surname, creation_date 
FROM users 
WHERE creation_date > ? 

하면 풋 리터럴 (예 : '2017-04-02T00를 : 00 : 00.000Z')에서 이 단계는 모든 새 값을 읽습니다.이 값은 수천 (밀리 초)이 될 수 있습니다. 필드 대체를 사용하고 들어오는 값을 사용하면 몇 분이 걸립니다.

왜 이런 일이 일어날 수 있는지 알고 계십니까? 문제를 해결하는 방법을 알고 있습니까?

감사합니다.

+1

들어오는 값의 원본은 무엇입니까? 어쩌면 여러 행이 들어있을 수 있습니까? –

+0

안녕하세요 @ RudolfYurgenson, 아니, 들어오는 값은 단일 열의 단일 행 값입니다. – vantesllar

답변

0

이 특정 문제에 대한 해결책이 아닌 해결책을 찾았지만 작동합니다. 이전 단계에서 값을 가져오고 필드 대체 (?를 쿼리에 사용) 대신 이전 변환에서 값을 읽습니다. 작업을 변수 공간에 저장하고 변수 대체 ('$ {variable_name}'쿼리에서)를 사용하여 거기에서 읽으면 값이 하드 코딩 된 것처럼 빨리 작동합니다.