我们要删除同一个表中的一些匹配行似乎存在性能问题,因为该表有 10 亿行。
由于是 Oracle 数据库,我们也可以使用 PLSQL 进行增量删除,但我们想看看仅使用 sql 可以使用哪些选项来提高它的性能。
DELETE
FROM schema.adress
WHERE key = 6776
AND matchSequence = 1
AND EXISTS
(
SELECT 1
FROM schema.adress t2
WHERE t2.flngEntityKey = 9909
AND t2.matchType = 'NEW'
AND t2.matchType = schema.adress.matchType
AND t2.key = schema.adress.key
AND t2.sequence = schema.adress.sequence
)
额外细节
基数是 9 亿行
没有触发器