我担心以下问题:
select * from TABLEA where COLUMNA in (select....) and
COLUMNA in (select....)
delete from TABLEA where COLUMNA in (select....) and
COLUMNA in (select....)
两者在运行时间上存在巨大差异 选择查询的运行速度比类似的删除查询快得多。
答案 0 :(得分:2)
SELECT只是一个PROJECTION。 SELECT with FILTER PREDICATE是SELECTION。两者都与DELETE完全不同,后者是DML。
你的问题太宽泛了,因为它涉及很多东西。
两种不同的背景,比较没有意义。
GUI问题
在SQL Developer
等基于GUI的工具上执行时,select可能看起来更快,它实际上显示了第一个获取的行而不是完整的结果集。但是,DELETE需要实际操作所有行。
答案 1 :(得分:1)
请检查表格结构和索引。也许有很多ON DELETE CASCADE约束或很多索引要删除。 Indicies可加快选择时间并减慢删除时间。