<分区>
我想知道这个查询的最佳替代查询是什么。 (从性能方面)
delete from CDR where anum not in (select msisdn from subs)
or bnum not in (select msisdn from subs)
此外,如果您可以引入多个可以以相同方式工作的查询,那就太好了。请考虑 anum 和 bnum 不能为空。
<分区>
我想知道这个查询的最佳替代查询是什么。 (从性能方面)
delete from CDR where anum not in (select msisdn from subs)
or bnum not in (select msisdn from subs)
此外,如果您可以引入多个可以以相同方式工作的查询,那就太好了。请考虑 anum 和 bnum 不能为空。
最佳答案
也许是这个:
delete from
(select cdr.*
from cdr
left outer join subs a on a.msisdn = cdr.anum
left outer join subs b on b.msisdn = cdr.bnum
where a.msisdn is null or b.msisdn is null);
或
delete from cdr
where rowid <>all
(select cdr.rowid
from cdr
join subs a on a.msisdn = cdr.anum
join subs b on b.msisdn = cdr.bnum)
或
delete from cdr
where not exists
(select 'x'
from cdr
join subs a on a.msisdn = cdr.anum
join subs b on b.msisdn = cdr.bnum)
问题是你查询的是不存在的东西,因此总是很难 使用索引。
关于sql - 加快 oracle sql 删除查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24341910/
相关文章:
javascript - jQuery 数据选择器中正则表达式的性能 : dependance on certain string length
c++ - std::map clear() 在调试器中的性能?
java - 线程中的异常 "main"org.hibernate.exception.SQLGrammarException : ORA-02289: sequence does not exist
java - 应该将什么传递给此方法 (Field#get(Object obj))?
mysql - 如果任何行包含该键的指定值,如何选择该键的所有行
javascript - ng-repeat 内的 angularjs ng-model 性能较差