对于像我这样开发经验不是很丰富的人而言,在编码的过程中往往考虑更多的是功能是否实现,而忽略了对SQL语句的优化以及程序整体性能的考虑。这使得在程序部署上线试运行的过程中产生这样或那样的问题。在调试解决这些问题的过程中,不知不觉地增加了开发维护的成本。下面就对几种比较常见的SQL语句的优化方式做一个总结:
1.能用oracle自带函数,或者用他的函数可以实现的效果,尽量用oracle的函数,因为他的函数的算法和实现函数的语言都是效率非常高的,一般情况下比我们写的要高效。
2. sql的关键字都大写,因为oracle 再执行sql时,会把所有的sql 转换为大写来执行
3.select 句子中最好不要出现* ,要写具体的列名,不然 oracle会一次解析每个字段,费时。
4.from 的表,如果是一张或者两张表,把条数最少的放在后面,如果是三张以上,把和其他有交叉的表的放在后面,所谓交叉,就是和其他表有关联的的意思,因为oracle的扫描是从下往上从右往左,这样的结果是可以尽量的少扫描表,
5.where 把可以过滤掉多条数据的条件往后放,以此类推。
6.删除重复记录的最好办法是用rowid
7.使用decode函数减少处理时间
8.用truncate table表明 代替delete from表名,因为第一个会删除表所对应的表空间
9.用where过滤,少用having过滤
10.使用表的别名也可以提高效率
11.用 EXISTS 替代 IN 、用 NOT EXISTS 替代 NOT IN :
12.使用索引来提高查询效率,但是索引建立的时候很有讲究,并不是每个字段都建立,那样反而会降低效率
关于索引的建议:索引是以空间换时间,但是过多的索引会增加INSERT、DELETE、UPDATE的负担,所以不必要的索引尽量删除,可能存在空值的字段尽量不要创建索引并且尽可能创建唯一性索引。
13.用 EXISTS 替换 DISTINCT
14.避免在索引上使用计算那些函数
15.用>= 来代替> ,因为有个确切的边线,可以让oracle跟好的确定边线
16.避免在索引列上用not ,因为这会让索引失效,也要避免使用is null ,is not null 操作
17.用union来代替 or 操作,如果可以的话。
18.用in 代替or ,如果可以的话。
19.用union all 代替 union ,如果可以的话 ,因为union 要去除重复的列,还要排序,费时
20.where句子中把过滤掉数据最的条件放在最后,一次往前罗列,因为oracle的检索顺序是从下往上,从右往左。
一般Web程序20%的性能问题可以由修改算法得到改善;80%的性能问题是因为SQL引起的。
优化SQL的目的是:在有限的资源上已最短的时间返回SQL结果,但不影响整体的数据库性能。
21、单表访问时,尽量使用效率高的索引进行辅助查询;多表访问时,可确定结果集的表尽量优先访问,在执行计划中排在前面。
分享到:
相关推荐
### SQL优化的关键方法 #### 一、选择最有效的表名顺序 在构建SQL查询时,尤其是在涉及多个表的连接查询中,表名的顺序对于查询性能有着重要影响。Oracle数据库的解析器是从右向左处理FROM子句中的表名。为了优化...
- **全书总结**:本书不仅是一本关于SQL优化的技术书籍,更是引导读者进入SQL优化世界的指南。通过丰富的案例、实战经验和深入的技术探讨,帮助读者建立起从宏观到微观的优化思路,并最终达到“爽”的境界。 - **...
### MySQL性能优化与SQL优化方法技巧 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还...
例如,在检索月薪大于 2000 的表达式中,如果 SQL 语句包括第一种情况,优化器会简单地把它转变成第二种。优化器不会简化跨越比较符的表达式,因此我们应该尽量写用常量跟字段比较检索的表达式,而不要将字段置于...
### 常见SQL优化的方法:深入解析与实践 在数据库管理与开发中,SQL查询的性能直接影响到系统的响应速度和资源消耗。本文将详细探讨常见的SQL优化方法,特别是针对Oracle和SQL Server这两种广泛使用的数据库管理...
通过对上述各种SQL优化策略的理解与应用,不仅可以显著提升数据库系统的整体性能,还可以避免因数据库性能瓶颈而导致的业务中断风险。值得注意的是,优化SQL查询是一项长期且持续的工作,需要结合实际应用场景不断...
而在MySQL中,尽管InnoDB实现了行级锁定,其锁机制比Oracle要简单,但在进行SQL优化时,DBA依然需要关注锁相关的性能问题。 最后,在执行层面的细节上,不同数据库系统有着各自独特的要求和限制。例如,在Oracle中...
随后《收获,不止SQL优化——抓住SQL的本质》指引大家学会等价改写、过程包优化、高级SQL、分析函数、需求优化这些相关的五大神功。有点头晕,能否少一点套路?淡定,这还是“术”的范畴,依然是教你如何解决问题,...
- **定位方法**:有多种方法可以用于定位性能关键的SQL语句(Top-SQL),其中一种简单有效的方式是使用ASHRPT.SQL生成报表。ASHRPT.SQL是一种专门设计用来展示会话历史报告的脚本,可以帮助快速识别出消耗资源最多的...
### Oracle 性能优化之 SQL优化 #### 一、引言 ...本文介绍的基本原则和技术可以帮助开发者和DBA更好地理解和掌握SQL优化的方法。需要注意的是,每种方法都有其适用场景,实践中应当根据具体情况灵活应用。
Oracle SQL 优化技巧 Oracle SQL 优化是提高数据库性能的关键技巧之一。以下是 Oracle SQL 优化的 12 个技巧: 1. 选择最有效率的表名顺序 在基于规则的优化器中,Oracle 的解析器按照从右到左的顺序处理 FROM ...
减少数据访问,返回更少数据,减少交互次数,减少服务器CPU开销,利用更多资源。注意:这个是对《sql性能优化分享》的后期修改与补充。下载这个最新的就下载老的了。别下载重复了!!!
, 现在《收获,不止SQL优化——抓住SQL的本质》开始带你抛除烦恼,走进优化的可乐世界!, 首先教你SQL整体优化、快速优化实施、如何读懂执行计划、如何左右执行计划这四大必杀招。整这些干嘛呢?答案是,传授一个先...
Oracle数据库的高性能SQL优化是数据库管理员和开发人员关注的关键领域,因为它直接影响到系统的响应时间和整体性能。Oracle性能管理是一个持续的过程,包括主动和被动两个方面。主动性能管理强调在系统设计和开发...
SQL 命令优化小窍门 SQL 优化是数据库性能优化的关键部分,好的 SQL 命令优化可以大大提高查询速度和数据库性能。在 SQL 命令优化中,索引的建立和使用非常关键。本文总结了一些常用的 SQL 命令优化小窍门,旨在...
在 SQL 优化过程中,需要了解性能管理、性能问题、调整的方法、SQL 优化机制、应用的调整、SQL 语句的处理过程等内容。只有通过深入学习 SQL 语法及各种 SQL 调优技巧,熟悉 SQL 语法、掌握各种内嵌函数、分析函数的...
SQL语句优化是数据库性能提升的关键环节,尤其是在大数据量的环境下。优化SQL语句能够显著提高查询速度,减少服务器负载,提升系统整体效率。以下是一些关于SQL语句优化的重要知识点: 1. **选择最有效的表名顺序**...
大量优化实战方法:将主要SQL优化点一一剖析,分享大量SQL优化的实际工作经验 50余改写调优案例:覆盖大多数DBA日常工作场景,具有相当大的实用价值 技巧+案例:可以作为DBA的参考手册,也可以作为开发人员编写SQL...