oracle数据同步优化问题,Oracle数据库优化的一些建议

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

https://baijiahao.baidu.com/sid=1609391382597168099\\u0026wfr=spider\\u0026for=pc

1,ORACLE优化的内容

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

9c85e98c15249e4eed7cc69e1fd8db8a.png

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语句的基本原理)

●使用尽可能多的列名,并使用很少的*符号。

从bdc_zc_qs选择*;

性能优化的语句:从bdc_zc_qs中选择bzm_qs,ywh…

●尽可能少的嵌套子查询,此类查询会消耗大量CPU资源。

●对于具有更多或操作的查询,可以使用并集替换或操作。建议拆分为多个查询,然后将它们与union all结合在一起;

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

oracle解析器从右到左解析表,因此记录较少的表放在右边;

●尝试使用提交语句提交事务,这样可以及时释放资源,解锁,释放日志空间并降低管理成本;

●尝试避免使用dblink访问数据库。使用dblink将导致数据上的网络交互,从而极大地影响性能。

●联合全部代替联合,联合的原则是将两组联合全部一起进行重复数据删除;

●尝试不要使用distint,distinct将产生排序;

●查看尝试不要使用的订单;

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

●避免在索引列上不使用条件;

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

例如:从bdc_zc_qs qs中选择*,其中qs.ywh = 666,在这种情况下,oracle将转换为to_number(qs.ywh)= 666

●用不存在替换不存在;

●符号运算的顺序:=,\\ u> =,\ lt; \ gt ;;

●使用where条件时,将最佳条件放在最后,oracle使用自下而上命令来解析WHERE子句。根据此原理,当在where子句中有多个表联接时,where子句中的最后一个表应该是要返回的行最少的表。 具有过滤条件的子句应放在where子句的末尾。

5.SQL语句优化的过程

(1),找到有问题的句子;

(2),检查执行计划;

(3)。在执行期间检查优化程序的统计信息;

(4),分析相关表的记录数和索引;

(5),重写SQL语句,使用HINT,调整索引,进行表分析;

(6)有些SQL语句没有优化的可能性,需要进行优化;

6.SQL语句执行过程

%E6%B0%B4%E5%8D%B0%EF%BC%8Ctype_ZmFuZ3poZW5naGVpdGk%EF%BC%8Cshadow_10%EF%BC%8Ctext_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2b

7.SQL语句处理过程

5376920c05b7f93ca9fd844c4838c048.png图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值