The Query:
select JOIN_RESULT.batch_id as BATCH_ID,
JOIN_RESULT.unique_doc_id as DOCUMENT_ID,
JOIN_RESULT.brand as BRAND,
JOIN_RESULT.message_date_time as UPLOAD_DATE,
decode(JOIN_RESULT.recordstatus, '5', 'SUCCESS', 'FAILED') as UPLOAD_STATUS,
decode(JOIN_RESULT.recordstatus,
'5',
null,
(decode(STATUS_RESULT.vendor_unique_doc_id,
JOIN_RESULT.unique_doc_id,
STATUS_RESULT.comments,
JOIN_RESULT.comments))) as FAILURE_REASON
from (select d.vendor_unique_doc_id, d.comments
from doc_duplicate_b d
inner join doc_recon_record_w r on d.vendor_unique_doc_id =
r.unique_doc_id) STATUS_RESULT
full join (select r.batch_id,
r.unique_doc_id,
r.brand,
h.message_date_time,
r.recordstatus,
r.comments
from doc_recon_record_w r
inner join doc_recon_header_w h on r.fileid =
h.fileid) JOIN_RESULT on STATUS_RESULT.vendor_unique_doc_id =
JOIN_RESULT.unique_doc_id
order by JOIN_RESULT.batch_id
The Question:
How can I optimize the performance of this query?
Using joins good or is it better to do a Cartesian Product?
STATUS_RESULTsubquery anddoc_recon_record_wcombined withdoc_recon_header_w? – A.B.Cade Jun 5 '12 at 8:51