oracle 常用知识点

1.删除重复数据

-- 1查找表中多余的重复记录,重复记录是根据单个字段(Lot)来判断
select 
* 
from table E
where E.Lot in 
(
  select Lot 
  from table 
  WHERE OUTERBARCODE='141-H2852A20210220XY4530001004154#13243.5#21022001' and  TRANSFERNAME='MC20210312006' --and  LOT='S210210J3-2774'
  group by   Lot having count(Lot) > 1
)AND E.OUTERBARCODE='141-H2852A20210220XY4530001004154#13243.5#21022001' and  E.TRANSFERNAME='MC20210312006' --and LOT='S210210J3-2774'
 

--2、删除表中多余的重复记录,重复记录是根据单个字段(Lot)来判断,只留有rowid最小的记录
delete 
from table E
where E.Lot in
 (
    select Lot 
    from table 
    WHERE OUTERBARCODE='141-H2852A20210220XY4530001004154#13243.5#21022001' and  TRANSFERNAME='MC20210312006' -- and LOT='S210210J3-2774'
    group by   Lot having count(Lot) > 1
)
 and rowid not in 
(
    select min(rowid) from table 
    WHERE OUTERBARCODE='141-H2852A20210220XY4530001004154#13243.5#21022001' and  TRANSFERNAME='MC20210312006'  --and LOT='S210210J3-2774'
    group by Lot having count(Lot)>1
)

2 创建索引

1 执行计划的常用列字段解释
基数(Cardinality):Oracle 估计的当前操作的返回结果集行数
字节(Bytes):执行该步骤后返回的字节数
耗费(COST)、CPU 耗费:Oracle 估计的该步骤的执行成本,用于说明 SQL 执行的
代价,理论上越小越好(该值可能与实际有出入)
时间(Time):Oracle 估计的当前操作所需的时间:

2 查看执行计划 F5
缩进最多的最先执行;(缩进相同时,最上面的最先执行)。

3 表访问的几种方式(非全部):
• TABLE ACCESS FULL(全表扫描)
• TABLE ACCESS BY INDEX ROWID(通过 ROWID 的表存取)
• TABLE ACCESS BY INDEX SCAN(索引扫描)

4 索引命名规范
【强制】主键索引名为 pk_表名_字段名;唯一索引名为 uk_表名_字段名;普通索引名则为 idx_表名_字段名。
  
5 创建索引:
 单一索引:Create Index <Index-Name> On <Table_Name>(Column_Name);
 复合索引:Create Index <Index-Name> On emp(deptno,job); —>在emp表的deptno、job列建立索引。

5.1对于复合索引,在Where限制条件中出现所有被索引的列时,优化器会选择走索引;
5.2对于复合索引,在Where限制条件中出现联合索引中前导的列,即创建联合索引时前导的列时,优化器会选择走索引;
5.3对于创建复合索引时,应考虑被索引字段的优先顺序,应将经常作为限制条件的字段放在首位;重复值少,
	即高基数(high-cardinaltiy)的列往前靠,而重复值多的字段往后靠;
5.4 Oracle 会读取表中所有的行,并检查每一行是否满足 SQL 语句中的 Where 限制条件;
	使用建议:数据量太大的表不建议使用全表扫描,除非本身需要取出的数据较多,占到
	表数据总量的 5% ~ 10% 或以上.2TABLE ACCESS BY INDEX ROWID(通过 ROWID 的表存取)


6 索引扫描其实分为两步
6.1 扫描索引得到对应的 ROWID。
6.2 通过 ROWID 定位到具体的行读取数据。

6.3五种索引扫描
• INDEX UNIQUE SCAN(索引唯一扫描)
• INDEX RANGE SCAN(索引范围扫描)
• INDEX FULL SCAN(索引全扫描)
• INDEX FAST FULL SCAN(索引快速扫描)
• INDEX SKIP SCAN(索引跳跃扫描)

参考链接:https://blog.csdn.net/qq_40285302/article/details/81874641 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值