在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
https://baijiahao.baidu.com/sid=1609391382597168099\\u0026wfr=spider\\u0026for=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语句的基本原理)
●使用尽可能多的列名,并使用很少的*符号。
从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语句执行过程
7.SQL语句处理过程
图片