데이터 윈도우 조회시 이런 메시지가 뜨는데요..
the optimizer was unable to construct a valid access plan
이게 어떤 때는 났다가, 어떤 때는 안나고 그러네요..
DW에서 sql만 빼서 돌려도 마찬가지인 걸보니.. syntax에 문제가 있는게 아닌가 생각됩니다..
iAnywhere.com에서 찾아보니..
Probable cause
The database server was unable to construct a valid access plan for the given request. This is an Adaptive Server Anywhere internal error. If it can be reproduced, it should be reported to iAnywhere Solutions. You may be able to work around this problem by modifying the query statement.
이렇게 나오는데.. Query syntax가 문제 있다는 소리죠?
문장을 보면.. outer join을 아래와 같이 걸었는데.. 이 부분이 문제가 된걸까요?
SELECT ...
FROM mt_draft m left outer join mt_order_basic b on m.draft_code = b.draft_code,
mt_order_basic b left outer join mv_offer_total v on b.draft_code = v.draft_code and b.d_color = v.color
left outer join mt_sell_nego n on b.draft_code = n.draft_code
WHERE m.draft_code = 'XXX';
위처럼.. b (mt_order_basic) 테이블이 두 번 조인된 상태입니다.
이유는 테이블 m은 b가 없더라도 나와야하고, b는 v나 n이 없더라도 나와야해서요..
조언 부탁드구요.. 새해 복 많이 받으시기 바랍니다.. ^^
|