新人笔记---oracle存储过程调优篇,欢迎各位大佬来补充

本文介绍了Oracle数据库存储过程调优的关键技巧,如建立索引、统一规范SQL语句大小写、理解执行计划、连接查询表顺序优化、where条件的编写顺序以及避免低效PL/SQL语句。通过这些方法可以显著提升查询性能。
摘要由CSDN通过智能技术生成

新人笔记—oracle存储过程调优篇,欢迎各位大佬来补充

–1–建立索引 create index index1 table_name(colum) 首要对于一些经常用于连接的表,表的列数较多,数量较大,可根据连接条件选择合适的索引
but :全表扫描:这种方式会读取表中的每一条记录,顺序地读取每一个数据块直到结尾标志,对于一个大的数据表来说,使用全表扫描会降低性能,但有些时候,比如查询的结果占全表的数据量的比例比较高时,全表扫描相对于索引选择又是一种较好的办法。

–2–统一规范

oracle在执行一条SQL语句时,总是会先从共享内存区中查找相同的sql语句,但是由于oracle只对简单表进行缓存,因此对于多表连接查询并不适用.

SELECT * FROM EMP;

SELECT * from EMP;

Select * from Emp;

SELECT * FROM EMP;

比如在PL/SQL语句中的游标执行SQL语句,如果oracle检测到它和以前已运行过的语句相同,就会使用已经被解析的语句,使用最优的执行路径.
所以,建议都采取大写方式,使要处理的语句与共享池中的相一致,有助于运行性能的提高.

–3–执行计划的理解, 可用于查看是否运用了索引查询

当执行一个sql语句时oracle经过了4个步骤:

解析sql语句:主要在共享池中查询相同的sql语句,检查安全性和sql语法与语义。

创建执行计划及执行:包括创建sql语句的执行计划及对表数据的实际获取。

显示结果集:对字段数据执行所有必要的排序,转换和重新格式化。

转换字段数据:对已通过内置函数进行转换的字段进行重新格式化处理和转换.

–4–连接查询的表顺序 用小表驱动大表,性能更高,区别很大

–5–指定where条件顺序 oracle采用自下而上的顺序解析where子句,因此在处理多表查询时,表之间的连接必须写在其他的where条件之前,但是过滤数据记录的条件则必须写在where子句的尾部,以便在过滤了数据之后再进行连接处理,这样可以提升sql语句的性能。

–6–避免低效的PL/SQL流程控制语句 短路径的计算方式 通俗来讲就是,如果前一个判断语句不生效,则下一个就不会执行。所以要把开销小的放在前面
example:if (v > 5000 ) OR (job = ‘1’) 倘若v<5000 则不会进行job的判断

–7–简单表查询用exist代替in 因为in实际上它对子查询中的表执行了一次全表扫描

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值