Oracle删除重复记录

xiaoxiao2026-06-07  37

Oracle删除重复记录的最好的方法: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(y.ROWID) FROM EMP y WHERE y.EMPNO = E.EMPNO )

 

 

 

1、子查询找出某员工最低的ROWID(肯定只有一个),其它大于这条记录ROWID的,全部删除。

2、Oracle中使用ROWID删除重复记录最快,因为Rowid对应这条记录在磁盘上的位置

 

面试:性能优化

规则:SELECT子句中避免使用 ‘ * ‘ 规则:使用exists语句代替in语句;             使用not exists代替not in 规则:使用truncate代替delete from 表语句 规则:减少访问数据库的次数 规则:减少访问数据库的次数 规则:使用表的别名(Alias) 规则:尽快使用COMMIT 规则:数据库冗余字段的设计 其它:Oracle与性能有关的几个特征(三个缓冲区)

面试:企业为什么经常使用Oracle? Oracle为什么这么牛? 回答:从三个缓冲区入手一、日志缓冲区 ·在添加一条记录时,数据库在后台同时也要记录一条日志 ·Oracle能够先将日志写在内存中,缓冲区满后再一次性写入磁盘 二、块缓冲区 ·如果一个表(如部门表)很少更新但经常使用,那么可以将该表保存在内存中,从而避免频繁访问磁盘。 ·访问内存的速度大于高于访问磁盘的速度。 三、SQL缓冲区 ·数据库执行步骤:语法分析、语义分析、编译、优化…… ·所以SQL在执行以前所消耗的时间是很长的 ·Oracle数据库会将sql保存在SQL缓冲区,如果执行的是相同SQL,则无论执行多少次,都只会编译分析一次。从而减少分析和优化时

间。

转载请注明原文地址: https://www.6miu.com/read-5049776.html

最新回复(0)