Oracle数据库后端优化建议

一、使用参数化sql语句:

          非参数化的sql语句一般都需要硬解析,使用参数化的sql语句就能充分使用解析后的sql语句,从而达到了优化的效果。

二、管理对数据量巨大的表的访问:

          前期表的数据量都不会太大,因此我们要提前预估到那些表的数据量将是巨大的,并提前规划和管理对这些表的访问。

          数据量大的表的全表查询不但会产生文件读取(磁盘IO)还会使Oracle实例系统全局区中的数据缓冲区充满,因而当用户访问其它比较常用的数据时就需要从文件读取,产生了磁盘IO因此大大地降低了效率。

三、数据量大的时候避免在数据库中进行排序

          中间数据量过大会导致计算产生中间数据从内存中置换到temp表空间从而产生不必要的磁盘IO。

四、优化子查询

          避免在子查询中使用group by和order by,主要是为了减小中间数据量。中间数据量过大会导致计算产生中间数据从内存中置换到temp表空间从而产生不必要的磁盘IO。

五、视图

          如果视图中存在group by,尽量先用where过滤,也是为了减小中间数据量。中间数据量过大会导致计算产生中间数据从内存中置换到temp表空间从而产生不必要的磁盘IO。

六、使用UNION ALL代替UNION

          UNION相当于多使用了一个distinct,而distinct去重复效率不高尽量避免。

七、避免在SQL中使用PL/SQL的功能

          库缓存中sql解析缓存区和pl/sql解析缓存区是分开的,在sql中调用存储过程的话,系统在sql解析缓存中找不到pl/sql,因此会重新解析一次

 

总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值