ORCALE用索引提高效率

通过索引查询ORACLE数据库通常比全表扫描更快,但过度索引会导致效率下降。ORACLE有两种索引访问模式:索引唯一扫描和索引范围查询。正确使用索引,避免在索引列上进行计算、使用IS NULL和IS NOT NULL,以及确保始终引用索引的第一个列,可以有效提高查询效率。
摘要由CSDN通过智能技术生成

通常,通过索引查询数据比全表扫描要快

使用索引能提高查询效率,但是我们也必须注意到它的代价。索引需要空间来存储,也需要定期维护,每当有记录在表中增减或索引列被修改时,索引本身也会被修改。

这意味着每条记录的INSERT、DELETE、UPDATE将为此付出更多的磁盘I/O。因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢。

过度索引

一般情况下,使用索引可以缩短查询语句的执行时间,提高系统的执行效率,但是要避免以下两种过度索引的情况出现: 对一个表建立了过多的索引,从而造成维护索引所需要的时间超过使用索引所降低的时间,从而造成整个系统效率的下降,这一般发生在对一些进行大量更新的表上面。因此一个联机表上的索引,最多不要超过5个。

由于索引数据的区分度不够,造成了使用索引而引起的效率的下降,这一般发生在对数据进行大的统计分析索引唯一扫描 ( INDEX UNIQUE SCAN)的时候。可以通过指定全表扫描等提示(hint)来避免。

ORACLE对索引有两种访问模式

索引唯一扫描 ( INDEX UNIQUE SCAN)

例如: 表REQUEST_LOG有两个索引:建立在REQUESTID列上的唯一性索引REQUESTID_PK和建立在REMARK列上的非唯一性索引IDX$REMARK。 SELECT * FROM REQUEST_LOG W

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值