ORACLE数据库中SQL语句优化技巧:
IN 操作符
用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。
但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:
ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。
推荐方案:在业务密集的SQL当中尽量不采用IN操作符。
NOT IN操作符
此操作是强列推荐不使用的,因为它不能应用表的索引。
推荐方案:用NOT EXISTS 或(外连接+判断为空)方案代替
<> 操作符(不等于)
不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。
推荐方案:用其它相同功能的操作运算代替,如
a<>0 改为 a>0 or a<0
a<>’’ 改为 a>’’
IS NULL 或IS NOT NULL操作(判断字段是否为空)
判断字段是否为空一般是不会应用索引的,因为B树索引是不索引空值的。
推荐方案:
用其它相同功能的操作运算代替,如
a is not null 改为 a>0 或a>’’等。
不允许字段为空,而用一个缺省值代替空值,如业扩申请中状态字段不允许为空,缺省为申请。
建立位图索引(有分区的表不能建,位图索引比较难控制,如字段值太多索引会使性能下降,多人更新操作会增加数据块锁的现象)
> 及 < 操作符(大于或小于操作符)
大于或小于操作符一般情况下是不用调整的,因为它有索引就会采用索引查找,但有的情况下可以对它进行优化,如一个表有100万记录,一个数值型字段A,30万记录的A=0,30万记录的A=1,39万记录的A=2,1万记录的A=3。那么执行A>2与A>=3的效果就有很大的区别了,因为A>2时ORACLE会先找出为2的记录索引再进行比较,而A>=3时ORACLE则直接找到=3的记录索引。
LIKE操作符
LIKE操作符可以应用通配符查询,里面的通配符组合可能达到几乎是任意的查询,但是如果用得不好则会产生性能上的问题,如 LIKE ‘%5400%’ 这种查询不会引用索引,而LIKE ‘X5400%’则会引用范围索引。一个实际例子:用YW_YHJBQK表中营业编号后面的户标识号可来查询营业编号 YY_BH LIKE ‘%5400%’ 这个条件会产生全表扫描,如果改成 YY_BH LIKE ’X5400%’ OR YY_BH LIKE ’B5400%’ 则会利用YY_BH的索引进行两个范围的查询,性能肯定大大提高。
分享到:
相关推荐
#### Oracle数据库中的SQL语句优化实践 ##### 3.1 Oracle数据库对表的访问方式 Oracle数据库支持两种主要的表访问方式:全表扫描和索引访问。 - **全表扫描**:即按顺序遍历表中的所有记录。Oracle通过一次读取多...
本文将对Oracle数据库中的SQL语句优化进行深入探讨,分析其优化目的和原则,并通过实例介绍一些优化方法。 首先,优化应用程序中SQL语句的必要性十分明显。SQL语句是对数据库中的数据进行操作的唯一途径,应用程序...
通过理解Oracle的执行过程、优化器的工作方式和掌握各种优化技巧,可以有效地减少SQL语句的执行时间和数据块的调用数量,最终获得更优的系统性能。需要注意的是,优化并非一劳永逸,随着数据量和系统复杂性的增加,...
文章《基于Oracle数据库的SQL语句优化》的作者张学琴来自北方民族大学,该文发表在《电脑知识与技术》期刊上,ISSN为1009-3044,详细介绍了针对Oracle数据库的SQL语句优化技术,以及如何通过优化查询语句来提升性能...
3. **使用SQL Hint**:例如,在SQL语句中添加`/*+ INDEX (table_name index_name) */`提示来强制使用特定的索引。 #### 四、总结 理解和掌握Oracle优化器的工作原理对于优化SQL语句至关重要。通过合理设置优化模式...
在Oracle数据库环境中,SQL语句优化是提升系统性能的关键环节。优化SQL语句不仅可以提高查询速度,还能降低数据库资源消耗,从而确保整个系统的稳定运行。本文将深入探讨Oracle数据库中的SQL优化策略,涵盖多个关键...
基于ORACLE数据库的SQL语句优化分析.pdf
本文将详细介绍Oracle数据库中SQL语句的优化与分析方法。 一、SQL语句执行的基本步骤和执行计划 在Oracle数据库中,执行一条SQL语句涉及多个步骤,每个步骤都可能包括从数据库中物理检索数据行或以某种方法准备...
总结,优化Oracle数据库中的SQL语句是提高系统性能的关键步骤。理解查询过程,合理使用索引,避免全表扫描,减少数据块调用,以及有效利用优化工具,都是提升SQL效率的有效策略。在实际应用中,应根据具体情况进行...
基于Oracle数据库的SQL语句优化 (2).pdf
在处理基于Oracle数据库的SQL语句优化时,我们首先需要理解查询在关系型数据库中的重要性以及它如何影响数据库应用程序的性能。查询语句执行效率的提高直接关系到用户体验。由于系统硬件通常难以改变,因此提高SQL...
本文旨在探讨基于Oracle数据库SQL查询语句的优化规则,并通过实际案例分析执行计划,从而提出有效的优化规则。 在引言部分,文章首先指出了数据库技术及应用系统的发展和完善,伴随着数据量和数据结构复杂性的增加...
Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...
Oracle SQL Profiler,自己设计算法写的一款非常好用的抓取Oracle数据库SQL语句的工具,可以再没有源码的情况下监控ORACLE数据库服务器的v$sqlarea视图抓取出从点击开始按钮到点击结束按钮期间执行过的SQL语句。...
### Oracle数据库设计中SQL语句优化研究 #### 引言 随着信息技术的快速发展,数据库作为信息系统的核心组件之一,在各类业务场景中的应用越来越广泛。Oracle数据库因其高性能、高可靠性等特点成为了许多企业的首选...
总结以上内容,ORACLE数据库SQL语句的编写优化涉及多方面知识,包括优化器的合理选择、高效的表访问方法、共享SQL语句的使用、索引的正确配置和应用、SQL内部操作的处理以及低效SQL语句的识别与优化等。在实际操作中...
在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建表和触发器,以及执行其他SQL语句。 首先,我们需要了解如何在批处理文件中连接Oracle数据库。这通常通过Oracle的...
在涉及子查询的SQL语句中,尽量减少对表的查询次数。例如,通过将子查询转换为JOIN操作,可以直接在主查询中处理相关数据,从而避免多次访问表。 综上所述,优化Oracle SQL语句的基本操作是提升数据库性能的关键。...
对ORACLE-SQL进行一些布局优化,更新它的格式
ORACLE数据库SQL语句编写优化