对tb_zjls 和tb_zjls_alt 表中的yybdm,fsrq,lsh建一个复合索引。
解决方案 »
- 急:简单的update优化
- oracle 表空间的状态属性 online和read write 有什么区别?
- oracle数据库添加序列问题!
- 请教:关于对已经安装好数据库系统做双机的问题,请大侠赐教。
- 怎样在SQL SERVER的存储过程中调用ORACLE的过程,急!!
- Oracle 8i的最新补丁集是多少
- BLOB与BFILE区别
- 求助:记录中编号字段存在相互包含关系,请问如何根据某个记录的编号查到它的上层记录的编号,详情内附
- 要建索引,看了篇文章,说修改下排序内存差数,可以加快,请问那里可以修改???
- 请问高手:end-of-file on communition channel错误怎末处理?
- 我用PL/SQL DEVELOPER 调试存储过程怎么报错啊?
- oracle9i支持象sybase那样的#temp临时表吗
create index ix_tb_zjls_alt on tb_zjls_alt(yybdm,fsrq,lsh);
delete from tb_zjls t
where exists (select 1
from tb_zjls_alt d
where d.yybdm = t.yybdm
and d.fsrq = t.fsrq
and d.lsh = t.lsh) 上面是一个相关子查询,你可以试着将它改为不相关子查询:
delete from tb_zjls
where (yybdm, fsrq, lsh) in ( select yybdm, fsrq, lsh
from tb_zjls_alt
group by yybdm, fsrq, lsh )
where exists (select 1
from tb_zjls_alt d
where d.yybdm = t.yybdm
and d.fsrq = t.fsrq
and d.lsh = t.lsh)
应该是比较好的办法。另外,索引也要都建上。
create index ix_tb_zjls_alt on tb_zjls_alt(yybdm,fsrq,lsh);将提示:ORA-01408: 此列列表已经过索引