oracle 优化sql语句

2025-05-23 19:29:34

一、执行顺序及优化细茸垂扌馔则

1.表名顺序优化(1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边表或视图:

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

2.where执行顺序where执行会从至下往上执行 摆放where子句时,把能过滤大量数据的条件放在最下边

3. is null 和is not null当要过滤列为空数据或不为空的数据时使用

4.使用表别名当查询时出现多个表时,查询时加上别名,避免出现减少解析的时间字段歧义引起的语法错误。

where执行速度比having快尽可能的使用where代替having

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

二、替代优化1、用>=替代>

2、用UNION替换OR (适用于索引列)

3、用in 代替or

4、 Union All 与UnionUnion All重复输出两个结果集合中相同记录如果两个并集中数据都不一样.那么使用Union All 与Union是没有区别的,

5、分离表和索引总是将你的表和索引建立在另外的表空间内决不要将这些对象存放到SYSTEM表空间里

三、一些优化技巧

1、计算表的记录数时

select count(si.student_id)from Student_info si(student_id为索引)与select count(*) from Student_info si执行时.上面的语句明显会比下面没有用索引统计的语句要快

2.使用函数提高SQL执行速度

当出现复杂的查询sql语名,可以考虑使用函数来提高速度查询学生信息并查询学生(李明)个人信息与的数学成绩排名如

4、用Exists(Not Exists)代替In(Not In)

在执行当中使用Exists或者Not Exists可以高效的进行查询

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢