oracle pl/sql 优化

-- oracle pl/sql 优化

  pl/sql 优化实际上是未来避免导致性能问题的内在原因;
  包括3个点
   1.pl/sql 程序占用cpu情况
   2.pl/sql 程序占用内存情况
   3.pl/sqk 程序占用i/情况
   
   一般cpu运行速度很快,访问内存的速度也很快,但磁盘的访问相对比较慢,主要是未了解决i/o访问速度
   
   pl/sql优化一般要考虑以下几点;
    a.选择最有效率的表名顺序(一般选择表记录最少的做为基表放from 最右边)
    b.where 子句中的连接顺序(将过滤比较的数据量的条件放where子句最后面,表连接放最前面)
    c.select 子句避免使用‘*’(因为oracle 会通过到数据字典查找该表字段从而增加访问时间)
    d.用exists 代替 in  / 用 not exists 代替not in
    e.用表连接替代 exists
    f.用exists 代替 distinct
    g.减少对表的查询 (一般用decode函数可以减少访问次数)
    h.避免循环游标里面的嵌套查询
    i.尽量用union all 替换 union(如果可以重复数据的话/或者结果集本来就不会重复数据 那么应该用union all ,由于union 会排序所以耗时)
    j.使用decode 函数减少处理时间
    k.尽量避免用group by 或者比较复杂的group by 应该优化
    l.尽量避免用order by
    m.用where 子句替换 having (having一般使用 count() 之类的分组函数)
    n.使用表的别名
    o.删除重复记录 首选 rowid 方式
    
    索引优化
   
    a. 避免在索引列使用函数或运算
    b. 避免改变索引列的类型
    c. 避免在索引列上用 not
    d. 用>=代替>
    e. 避免在索引列上使用 is null / is not null
    f. 带通配符的 like %  语句
    g. 定期的重构索引
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值