美文网首页
Oracle 语句优化(整理1)

Oracle 语句优化(整理1)

作者: 织田信长 | 来源:发表于2015-07-24 18:03 被阅读77次

1*号引起的执行效率

    尽量减少使用select * 来进行查询,当你查询使用*,数据库会进行解析并将*转换为全部列。因此尽量写明你所需要查询的字段名。

SELECT * FROM EMP;

SELECT EMP.NO FROM EMP;

2避免在索引列上使用计算

WHERE 子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描.

举例 :

低效:

SELECT … FROM DEPT WHERE SAL * 12 > 25000;

高效 :

SELECT … FROM DEPT WHERE SAL > 25000/12;

3用 >= 替代 >

高效 :

SELECT * FROM EMP WHERE DEPTNO >=4

低效 :

SELECT * FROM EMP WHERE DEPTNO >3

两者的区别在于 , 前者 DBMS 将直接跳到第一个 DEPT 等于 4 的记录而后者将首先定位到 DEPTNO=3 的记录并且向前扫描到第一个 DEPT 大于 3 的记录 .

4where执行顺序

where执行会从至下往上执行

SELECT * FROM STUDENT_INFO SI--学生信息表

WHERE SI.SCHOOL_ID=10 --学院ID

AND SI.SYSTEM.ID=100--系ID

摆放where子句时,把能过滤大量数据的条件放在最下边

5from字段中的优化:

Oracle安照从右到左的顺序加载表数据,应该把可以排除数据最多的表放到后面(基础表)。

比如,在关联查询中,把课程表放到后面,成绩表放到前面,因为课程表数据一般比较少,关联的时候可以快速的过滤掉一些成绩数据。因此把简单的数据少的基础表放在右侧可以提高速度。

当出现多个表时,关联表被称之为交叉表,交叉表作为基础表。

6where执行速度比having快

尽可能的使用where代替having,having只会在检索出所有记录之后才会对结果集进行过滤,这个过程需要排序,总计等操作。

7替换

用in 代替or

SELECT UI.USER_NAME

FROM USER_INFO UI--员工信息表

WHERE UI.STUDENT_ID=10

OR UI.STUDENT_ID=20

OR UI.STUDENT_ID=30

改成

SELECT UI.USER_NAME

FROM USER_INFO UI--员工信息表

WHERE UI.STUDENT_ID IN (10,20,30)

执行会更有效率。

8优化GROUP BY:

提高GROUP BY语句的效率,可以通过将不需要的记录在GROUP BY之前过滤掉.

关于索引,感觉里面的问题比较复杂,还没有详细了解。

相关文章

  • Oracle 语句优化(整理1)

    1*号引起的执行效率 尽量减少使用select * 来进行查询,当你查询使用*,数据库会进行解析并将*转换为全...

  • Oracle语句优化(整理2)

    1 数据库的sql语句是忽略大小写的,即 select * from users SELECT * FROM US...

  • Oracle SQL优化学习

    Oracle SQL优化进阶学习 引言 对于下面的Oracle分页如何优化该段语句: SELECT * FROM ...

  • SQL语句和索引优化

    sql语句优化 1、尽量不要使用select * ,需要哪些字段就拿哪些2、Oracle和myslq中采用自下而上...

  • Oracle高级语句书目录

    Oracle高级语句之with as Oracle高级语句之merge into Oracle高级语句之row_n...

  • Oracle sql语句的优化

    (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子...

  • oracle 查询语句优化录

    最近,因为发现以前使用的数据查询语句的效率越来越差,导致每次进行大量数据的操作都需要耗一个小时以上.这速度实在是太...

  • Oracle查询优化改写技巧与案例 PDF高清版

    内容简介 《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是...

  • SQL 语句优化整理

    为了提高 SQL 查询效率,我们都会采取一切 SQL 语句的优化。 1 对查询进行优化,应尽量避免全表扫描,首先应...

  • SQL语言③--SQL是如何执行的

    1、Oracle中SQL语句是怎么执行的,什么是硬解析,什么是软解析? Oracle中SQL语句的执行过程...

网友评论

      本文标题:Oracle 语句优化(整理1)

      本文链接:https://www.haomeiwen.com/subject/yiqmqttx.html