Oracle删除查询优化

问题描述 投票:0回答:1
DELETE FROM   BATCH_T   WHERE   BatchId   In (  BatchIdList  )    AND   Status   = 'CLOSED'

以上查询需要3分钟才能完成。谁能帮助我减少响应时间。

oracle12c spring-jdbc
1个回答
0
投票

如果批处理列表较小,请考虑将以下索引添加到表中:

CREATE INDEX batch_idx ON BATCH_T (BatchId, Status);

如果批次列表非常长,请考虑将这些值添加到新表BATCH_LIST中。然后,确保此新表上存在以下索引:

CREATE INDEX other_idx ON BATCH_LIST (BatchId);

第一个索引应该对两个版本都有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.