提升Oracle所需的基础技能

本文概述了提升Oracle查询性能的关键技巧,包括单表和多表查询的优化,如索引类型、扫描机制和联接方式。同时,强调了理解SQL的本质,如集合操作的Union、Union All、Minus和Intersect。关注执行计划的重要性被提及,通过Explain Plan和V$SQL_PLAN分析优化SQL。最后指出解释计划与实际执行计划的差异,并鼓励深入研究DBMS_XPLAN。
摘要由CSDN通过智能技术生成

用了几年的Oracle,对一些日常的开发和优化技术已经所有耳闻,简单罗列一些

1:单表的查询性能

要看数据的量,查询条件,是否命中主键、索引;如果数据量在几百万,几乎不需要考虑;

如果几千万到亿的数据量,如果不走索引,查询的性能可想而知;

 

当然查询记录的数据量跟整表的数据量对比,如果查询的结果跟总量对比比较大时,避免全部扫描

如果几乎相当,全部扫描未必是效率低下。

 

2:多表的查询性能

需要考虑更多因素

全部扫描访问方式【全表扫描,或者快速全索引扫描】

索引扫描访问方式

关注:oracle常用的索引类型

B树索引:适合数据重复率低的列

位图索引:适合数据重复率高的列

 

索引扫描机制:

索引范围扫描,索引唯一扫描,索引全扫描,索引跳跃扫描,索引快速全扫描。

当然索引的扫描离不开索引统计信息:聚簇因子(Clustering factor)的统计信息用来帮助优化器生成使用索引的成本信息。

需要识别索引扫描的场景:

索引唯一扫描:当谓词中包含使用UNIQUE或PRIMARY KEY索引作为条件的时候,就会选用索引唯一扫描。

索引范围扫描:当谓词中返回一定范围数据的条件时,就会选用索引范围扫描---比如<,>,LIKE,BETWEEN

索引全扫描:当没有谓词但是所需获取列的列表可以通过其中一列的索引来获得,谓词中包含一个位于索引中非引导列上的条件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值