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

Oracle语句优化(整理2)

作者: 织田信长 | 来源:发表于2015-08-14 14:43 被阅读92次

1 数据库的sql语句是忽略大小写的,即

select * from users

SELECT * FROM USERS

SELECT * from users

一条语句写了如上三种形式,但是在oracle的SGA的共享池中确对应着三个不同的Hash值,

会降低sql语句的命中率。

2 exists与in

exists是用于判断存在性,in是用来判断匹配性。

在使用exists时,它会将子查询的外部表视作左表,内部表视作右表进行连接查询,在查询过程中

会使用HASH JOIN 这种特殊的优化方式,选择数据量较小的表作为主表。并且oracle还利用SEMI

策略,防止产生重复记录,及针对主表的每一行,一旦与从表中个某条匹配成功便立即返回。

HASH JOIN是exists判式的一个特殊操作。

SEMI连接时exists子查询的一种特殊处理方式。

in判式与exists的执行过程完全一致,oracle已经把in自动优化成exists查询了。一般情况下还是exists的速度快。

not in 将对子查询的表进行全表扫描,是最低效的方式,利用not exists替代not in是提高效率的一种方式。

相关文章

  • Oracle语句优化(整理2)

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

  • Oracle 语句优化(整理1)

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

  • 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 查询语句优化录

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

  • SQL 语句优化整理

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

  • ORACLE性能优化之SQL语句优化

    #1 使用EXISTS代替IN Oracle通过使用EXISTS,Oracle会首先检查主查询,然后运行子查询直到...

  • oracle 多表查询优化

    ORACLE中的高速缓冲用于保存查询过的sql语句,单只对单表查询起作用 单表查询优化:写查询语句时尽量统一规范,...

网友评论

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

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