Oracle数据库优化的一些建议

https://baijiahao.baidu.com/s?id=1609391382597168099&wfr=spider&for=pc

1、ORACLE 优化内容

根据业务分析人员、设计人员、应用程序开发人员、数据库管理员、系统管理员几个不同的角色,针对每个不同角色,进行针对性的内容优化。

在这里插入图片描述
2、怎样写好SQL语句

(1)、 尽量简单,模块化

(2)、易读、易维护

(3)、节省资源

(4)、 内存

(5)、CPU

(6)、 扫描的数据块要少

(7)、少排序

(8)、不造成死锁 ( 检查是否被锁:v$locked_object )

3、SQL优化的一般性原则

(1)、目标:

减少服务器资源消耗(主要是磁盘IO);

(2)、设计方面:

合适的索引,索引的双重效应,列的选择性;

(3)、编码方面:

利用索引,避免大表FULL TABLE SCAN;

合理使用临时表;

避免写过于复杂的sql,不一定非要一个sql解决问题;

在不影响业务的前提下减小事务的粒度;

4、优化概括(SQL语句基本原则)

● 查询尽量用确定的列名,少用*号。

select * from bdc_zc_qs;

性能优化后的语句: select bzm_qs,ywh,… from bdc_zc_qs;

● 尽量少嵌套子查询,这种查询会消耗大量的CPU资源;

● 比较多or运算的查询能使用union all 替换 or运算,建议分成多个查询,用union all联结起来;

● 多表查询选择最有效率的表名顺序;

oracle解析器对表解析从右到左,所以记录少的表放在右边;

● 尽量多用commit语句提交事务,可以及时释放资源、解锁、释放日志空间、减少管理花费;

尽量避免使用dblink访问数据库,使用dblink会产生数据上的网络交互,极大影响性能;

● union all 替换union,union 原理是把两个集合union all起来在进行排序去重复;

● 尽量不要使用distint,distinct会产生排序;

视图尽量不要使用order by

避免在索引列上使用函数,计算等;

避免在索引列上使用not条件

● 注意查询列字段类型,避免索引列自动转换;

例如:select * from bdc_zc_qs qs where qs.ywh=666,这种情况oracle会转换成to_number(qs.ywh)=666

用not exists 替代not in;

● 符号运算使用顺序:=、>=、>、<>;

● 使用where条件时候把最优的条件放最后,oracle采用自下而上的顺序解析WHERE子句,根据这个原理, 当在where 子句中有多个表联接时,where 子句中排在最后的表应当是返回行数可能最少的表,有过滤条件的子句应放在where 子句中的最后。

5、SQL语句优化的过程

(1)、定位有问题的语句;

(2)、检查执行计划;

(3)、 检查执行过程中优化器的统计信息;

(4)、分析相关表的记录数、索引情况

(5)、 改写SQL语句、使用HINT、调整索引、表分析

(6)、有些SQL语句不具备优化的可能,需要优化处理方式;

6、SQL语句执行过程
在这里插入图片描述

7、SQL语句处理过程
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 Oracle 数据库优化的一些常见方法: 1. 确保合理的物理设计:物理设计包括表空间、数据文件、数据文件大小、数据块大小、表和索引等,这些因素会直接影响数据库性能。建议使用自动存储管理(ASM)来管理表空间和数据文件。 2. 优化 SQL 查询:优化 SQL 查询是数据库性能优化的核心,可以通过使用索引、避免全表扫描、优化查询语句等方式来提高查询效率。 3. 使用合适的索引:索引是数据库优化的重要手段之一,使用合适的索引可以提高查询效率。需要根据实际情况选择合适的索引类型,包括单列索引、复合索引、聚簇索引等。 4. 优化数据库参数设置:Oracle 数据库提供了众多的参数,通过合理的参数设置可以提高数据库性能。例如,可以调整数据库缓存的大小、设置 PGA 和 SGA 的大小、调整日志文件大小等。 5. 使用分区表:根据业务需求,将大型表划分为多个分区,可以提高查询效率。可以根据时间、地域等因素进行分区。 6. 监控数据库性能:通过监控数据库性能指标,及时发现并解决问题,可以提高数据库的可用性和稳定性。可以使用 Oracle 自带的性能监控工具,例如 Oracle Enterprise Manager。 7. 数据库升级:及时升级数据库版本,可以获得更好的性能和安全性。但需要谨慎操作,升级前需要做好备份工作,并测试升级过程中是否会出现问题。 总之,Oracle 数据库优化是一个综合性的工作,需要从多个方面入手,逐一解决问题,才能提高数据库性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值