Oracle Delete 查询优化
Oracle Delete query optimization
DELETE FROM BATCH_T WHERE BatchId In ( BatchIdList ) AND Status = 'CLOSED'
以上查询需要 3 分钟才能完成。谁能帮我缩短回复时间。
如果批处理列表很小,则考虑将以下索引添加到您的 table:
CREATE INDEX batch_idx ON BATCH_T (BatchId, Status);
如果您的批处理列表很长,请考虑将这些值添加到新的 table BATCH_LIST
。然后,确保在这个新 table 上存在以下索引:
CREATE INDEX other_idx ON BATCH_LIST (BatchId);
第一个索引应该对任一版本都有帮助。
DELETE FROM BATCH_T WHERE BatchId In ( BatchIdList ) AND Status = 'CLOSED'
以上查询需要 3 分钟才能完成。谁能帮我缩短回复时间。
如果批处理列表很小,则考虑将以下索引添加到您的 table:
CREATE INDEX batch_idx ON BATCH_T (BatchId, Status);
如果您的批处理列表很长,请考虑将这些值添加到新的 table BATCH_LIST
。然后,确保在这个新 table 上存在以下索引:
CREATE INDEX other_idx ON BATCH_LIST (BatchId);
第一个索引应该对任一版本都有帮助。