SQL Tuning(10g)
1. 使用AND和=来构造谓语
为了提高SQL的执行效率,在任何可能的时候使用等值连接
2.避免改变WHERE子句中的列
在索引列上使用表达式(包括函数),将会导致优化器忽略该列上的索引,除非该列上定义的为基于函数的索引,所以应该将函数写在相对的位置上
e.empno为数值索引列
select * from emp e where e.empno=1001;使用索引
select * from emp e where e.empno=to_number('1001');使用索引
select * from emp e where e.empno||''=1001;不使用索引
select * from emp e where to_char(e.empno)='1001';不使用索引
还需要注意,当右端函数中出现列名时(不管是否为索引列),索引同样会失效:
e.ename为字符索引列
select * from emp e where e.ename=nvl('test',e.ename);不使用索引
select * from emp where ename=nvl('test','111');使用索引
要小心隐式的类型转换:
select * from emp e where e.ename=123;
下面是执行计划下的谓词信息:
1 - filter(TO_NUMBER("E"."ENAME")=123)
可以看出oralce会隐式的将列转换为数值类型,这时候索引失效,无论何时应该显示的进行类型转换来防止此种情况的发生
3.自己的总结
1.禁止对列的操作,如果对列进行操作,不仅不会使用索引,还会增加不必要的开销,这个开销在很多时候对性能影响很大
2.如何要建立索引,在数据选择性高的列上建立索引是一个指导。
3.优化思路:减少对远端对象的访问,将单条操作转化为批量操作,尽量减少交互数等(PL/SQL)
分享到:
相关推荐
### Oracle 性能优化之 SQL优化 #### 一、引言 在数据库应用中,SQL查询性能直接影响到系统的响应时间和整体性能。对于大型企业级应用而言,优化SQL语句不仅能够提升用户体验,还能显著降低服务器负载,从而节省...
总结来说,Oracle的数据库和SQL优化是一个涉及多个层面的综合过程,需要考虑数据库架构、数据存储方式、查询效率以及优化器的合理使用等多个方面的因素。通过对这些方面的综合考虑,可以显著提升Oracle数据库的性能...
### Oracle SQL性能优化技巧大总结 #### 一、选择最有效率的表名顺序 **背景**:在基于规则的优化器(RBO)中,Oracle解析器处理FROM子句中的表名是从右向左的。为了提高查询效率,需要合理安排表的顺序。 **技巧...
### Oracle SQL性能优化详解 #### 一、引言 在Oracle数据库管理中,SQL查询的性能直接影响着应用程序的响应时间和整体效率。为了提高系统的性能,优化SQL查询是必不可少的一环。本文将详细介绍Oracle SQL性能优化...
### ORACLE 11g SQL 权威指南:SQL优化详解 #### 1. SQL优化简介 在《ORACLE 11g SQL 权威指南》的第十六章中,作者深入探讨了SQL优化这一核心主题。SQL优化是提高数据库查询效率的关键策略,通过调整查询语句或...
SQL优化的其他策略还包括: - **保持SQL语句的一致性**:固定SQL书写格式,避免不必要的复杂性,有助于提高解析速度和缓存利用率。 - **使用存储过程**:存储过程可以预编译,执行效率相对较高,同时减少网络传输的...
编辑推荐 方法意识巧妙融入,脑图表格清晰展现; 海量案例完美结合,线上...读完全书,来,合上书本,闭上眼睛,深呼吸,用心来感受SQL优化的世界。 一个字:“爽”! 京东购买连接:https://item.jd.com/12191576.html
Oracle通过将已解析的SQL语句保存在共享池(Shared Pool)中实现这一点。为了达到共享的目的,需要满足以下条件: - **字符级的比较**:当前被执行的语句必须与共享池中的语句完全相同,包括空格和换行等细节。 - *...
### Oracle性能优化技巧详解 ...综上所述,Oracle性能优化涉及多个方面,包括但不限于优化器的选择、表访问方式、SQL语句的编写和执行等。通过对这些方面的深入了解和合理运用,可以显著提升Oracle数据库的查询性能。
为了提高性能,DBA需要掌握一系列的SQL优化技术。 首先,了解劣质SQL语句与优质SQL语句的区别至关重要。在数据量较大时,两者之间的性能差异可能达到百倍之多。因此,优化SQL语句对于保证系统性能至关重要。通常...
### SQL优化经验大全 在数据库管理和开发过程中,SQL查询优化是一项至关重要的技能。良好的SQL查询不仅可以提高系统的响应速度,还能显著降低系统资源消耗。本文将详细介绍30多条SQL优化的经验,帮助您更好地理解和...
有人就有江湖,有江湖就有IT系统,有IT系统就有数据库,有数据库就有SQL,SQL应用可一字概括:“广”。..., 读完全书,来,合上书本,闭上眼睛,深呼吸,用心来感受SQL优化的世界。, 一个字:“爽”!
Oracle提供了多种锁定机制来实现这一点,包括行级锁、表级锁等。 - 合理使用这些机制可以在保证数据一致性的同时,最大化系统的吞吐量。 6. **系统监控与调优工具**: - Oracle提供了丰富的工具和功能来帮助管理...
对于从事Oracle数据库优化的人员来说,SQLT是必不可少且极为实用的一款工具,更重要的是它免费提供给用户使用。本书作者在担任数据库管理员的二十多年里,处理过无数个优化问题,在加入Oracle公司后才首次接触到SQLT...
ORACLE SQL 语句优化技术分析 一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询 SQL 语句,复杂视图的编写等体会不出 SQL 语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,...
在IT行业中,数据库管理和数据...总的来说,"insql2oracle"项目涉及到了C#编程、数据库连接、数据迁移、数据转换、事务管理等多个IT领域的专业知识,对于开发者来说,理解并掌握这些技术点对于成功完成任务至关重要。
在实际应用中,掌握这些知识点,能够帮助用户在Oracle数据库中高效地执行查询操作,优化SQL语句,以及合理处理空值和进行数据运算。随着学习的深入,用户能够熟练使用Oracle SQL语句进行复杂的数据分析、处理和维护...
10.2 SQL优化 257 10.2.1 测试执行计划 257 10.2.2 跨多个执行的测试 260 10.2.3 测试查询改变的影响 263 10.2.4 寻找其他优化机会 266 10.2.5 将子查询因子化应用到PL/SQL中 270 10.3 递归子查询 273 ...
Oracle数据库编程涉及使用SQL语言对数据库进行操作,包括数据的增删改查、事务处理、数据控制语言和数据定义语言的使用等。 2. 高级编程技巧:标题中提到的“高级”意味着文档内容不仅包括基础的SQL命令,还可能...
描述确认了这一点,说明这是一段源码,用于执行从Oracle到SQL Server的数据迁移。 在IT行业中,数据库迁移是一项常见的任务,尤其是在企业级应用中,可能由于业务需求、性能优化或系统升级等原因需要更换数据库平台...