티스토리 뷰
반응형
맙소사..인포믹스 12.10.xC2 버전부터 쿼리 플랜을 확인하는 함수가 이미 있었네요. InformixHQ의 Schema Manager에서 쿼리 플랜을 확인하다가 알게되었습니다. 문서화가 되어있었다면 좋았을텐데.. 아래는 ifx_explain 함수를 사용해 쿼리 플랜을 출력한 예제입니다.
> execute function ifx_explain( 'select * from systables' );
(expression)
QUERY: (OPTIMIZATION TIMESTAMP: 06-29-2020 23:12:56)
------
select * from systables
Estimated Cost: 18
Estimated # of Rows Returned: 266
1) informix.systables: SEQUENTIAL SCAN
다음은 bson_explain 함수를 사용한 예제입니다. 내용이 JSON 형식으로 출력됩니다.
> SELECT bson_explain( "select * from systables where tabid=99" )::JSON from sysmaster:sysdual;
(expression) {"version":1,"explain":"
QUERY: (OPTIMIZATION TIMESTAMP: 06-30-2020 09:05:47)
------
select * from systables where tabid=99
Estimated Cost: 1
Estimated # of Rows Returned: 1
1) informix.systables: INDEX PATH
(1) Index Name: informix.tabid
Index Keys: tabid
Lower Index Filter: informix.systables.tabid = 99
"}
이 함수의 단점이라면 쿼리 통계가 보이지 않는다는 것입니다. 플랜을 확인하려는 SQL은 실제 수행되지 않고 AVOID_EXECUTE 옵션으로 실행되는 것 같습니다. 그래서 이번 14.10.xC4부터 쿼리 통계까지 보여주는 getExplain 함수가 별도로 제공되는 것 같습니다.
이제 12버전을 사용하는 곳에서는 아래처럼 클라이언트 툴에서도 쿼리 플랜을 볼 수 있겠군요.
반응형
댓글
링크
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday