私は3つのテーブルを持っています
- glSalesJournal
- HMISAdd
- HMISMain
今私がやろうとしているのは、さまざまなフィールドとグループ化して結果をglSalesJournalに挿入しながら、HMISAddamtを使用してglSalesJournalamtを追加することです。
glSalesJournalには633173レコードが含まれています
HMISAddには4193レコードが含まれています
HMISAddとglSalesJournalには、同じ列が含まれています。
- loc
- glAcct
- glSubAcct
- batchNbr
- ContractNbr
- amt
テーブルにインデックスを追加しましたが、結果は同じです。
これが私のコードです:
INSERT INTO hmismain
(loc,
glacct,
subacct,
batchnbr,
contractnbr,
amt)
SELECT glsalesjournal.loc,
glsalesjournal.glacct,
glsalesjournal.glsubacct,
( glsalesjournal.amt + hmisadd.amt ) AS sumAmt,
glsalesjournal.batchnbr,
glsalesjournal.salescontnbr
FROM glsalesjournal
LEFT OUTER JOIN hmisadd
ON ( glsalesjournal.loc = hmisadd.loc
AND glsalesjournal.glacct = hmisadd.glacct
AND glsalesjournal.glsubacct = hmisadd.subacct
AND glsalesjournal.batchnbr = hmisadd.batchnbr
AND glsalesjournal.salescontnbr = hmisadd.contractnbr )
GROUP BY glsalesjournal.loc,
hmisadd.loc,
glsalesjournal.glacct,
hmisadd.glacct,
glsalesjournal.glsubacct,
hmisadd.subacct,
glsalesjournal.batchnbr,
hmisadd.batchnbr,
glsalesjournal.salescontnbr,
hmisadd.contractnbr
スクリプトの実行にかかる時間は2時間以上です。レコードを100に制限しても、かかる時間は同じです。
誰かがスクリプトを最適化する方法を教えてもらえますか?
ありがとう