2017-11-29 24 views
0

PostgreSQL 저장 장치 플러그인 (드릴 실행 계획이 아니라 PostGIS 계획)을 사용하여 Apache 드릴에서 실행되는 쿼리의 실행 계획을 가져와야합니다.드릴 쿼리로 PostgreSQL 실행 계획 받기

따라서 다음 명령으로 explain plan 로그를 사용할 수 있습니다.

SET auto_explain.log_min_duration = 0; 
SET auto_explain.log_analyze = true; 

그리고 pgAdmin에서 쿼리를 실행하면 명령문과 계획이 표시됩니다. 그러나 Drill에서 동일한 쿼리를 실행해도 아무 것도 기록하지 않습니다.

왜 이런 일이 발생하며 어떻게 이러한 상황을 해결할 수 있는지 알고 있습니까?

참고 : 연결을 확인 했으므로 pgAdmin과 Drill에서 동일하며 Drill에서 드릴을 실행하고 결과를 얻으므로 연결에 문제가 없다고 가정합니다.

+0

[auto_explain extension] (https://www.postgresql.org/docs/current/static/auto-explain.html)을 설치 했습니까? –

+0

예, 사용하도록 설정되어 있습니다. –

답변

0

나는 당신이 postgres 명령 줄에서 SET 명령을 실행하고 있다고 생각하는데, 그 설정은 Drill의 postgres 세션에만 적용됩니다. Drill의 postgres 세션에 이러한 설정을 적용하려면 해당 등록 정보를 Drill의 저장 장치 플러그인 구성에 추가하십시오. 다음은 해당 속성의 구성 예입니다.

{ 
    "type": "jdbc", 
    "driver": "org.postgresql.Driver", 
    "url": "jdbc:postgresql://localhost:5432;auto_explain.log_min_duration=0;auto_explain.log_analyze=true", 
    "username": "postgres", 
    "enabled": true 
}