2016-10-05 27 views
0

aとcの両方が400レコードの同じテーブルです。 bとdも300レコードで同じテーブルです。これを実行するのに約4分かかります。どうすればこれをスピードアップできますか?SQLの実行に時間がかかります

select a.docref 
from a 
left outer b 
on a.cono=b.cono and a.tt=b.tt and a.docref=b.docref 
where a.cono='VC' 
and b.accn08='9005100' 
and a.pstper=11609 
and a.cbpref not in (select c.cbpref 
         from c 
         left outer join d 
         on c.cono=d.cono and c.tt=d.tt and c.docref=d.docref 
         where c.cono='VC' 
         and d.accn08='9005100' 
         and c.pstper=11609 
         and c.tt='RX') 

答えて

0

構文NOT INはもう少し時間がかかります。 LEFT JOINを試して、条件を追加します。​​:

SEELCT a.docref 
FROM a 
LEFT OUTER JOIN b 
ON a.cono=b.cono 
AND a.tt=b.tt 
AND a.docref=b.docref 
LEFT OUTER JOIN 
(
    SELECT c.cbpref 
    FROM c 
    LEFT OUTER JOIN d 
    ON c.cono=d.cono AND c.tt=d.tt AND c.docref=d.docref 
    WHERE c.cono='VC' 
    AND d.accn08='9005100' 
    AND c.pstper=11609 
    AND c.tt='RX' 
)tb 
ON tb.cbpref = a.cbpref 
AND a.cbpref IS NULL 
WHERE a.cono='VC' 
AND b.accn08='9005100' 
AND a.pstper=11609 
関連する問題