`
smalljavaer
  • 浏览: 9796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle SQL优化

 
阅读更多

 

SQL语句的优化就是将性能较低的SQL语句转换达成同样目的性能优异的SQL语句

 

下面我们一起来看看一些可以优化SQL的方法,希望大家多提出意见我们共同学习或者是大家有什么好的优化方法可以提出来共享一下。

 

第一种优化(使用指定列代替”*”

使用“*”可以降低编写SQL语句的复杂度,但是却降低了SQL语句执行的效率。

 

通过SQL语句的执行过程我们来了解SQL语句的执行效率。当一条SQL语句从客户端发送到服务器。ORACLE需要执行以下步骤:

A:在共享池中搜索SQL语句是否存在。

 

      B:验证SQL语句的语法是否正确。

 

C   C:执行数据字典来验证表和列的定义。

 

4.   D:获取对象的分析锁,以便在语句的分析过程中对象的定义不会被改变。

 

5.   F:检查用户是否具有相应的操作权限。

 

6.   G:确定语句的最佳执行计划。

 

7.    H:将语句和执行方案保存到共享的SQL

 

 

 

 

 

第二(使用WHERE子句来替代HAVING

 

使用HAVING子句过滤分组,也就是在分组之后过滤,因为行分组需要一段时间,所以应该尽量使用WHERE子句过滤行,减少分组的行数,也就减少了分组的时间,从而提高查询效率。

 

 

 

第三(使用“>=”替代“>|使用“<=”替代“<”)

 

例如“某列<=8888和“某列<8889检索结果是一样的,但是效率并不是一样的。

 

使用“>=”替代“>|使用“<=”替代“<

 

上面两个运算的区别在于,如果使用“某列<8889ORACLE会定位到8889,然后再去找比8889小的数据,如果使用“某列<=8888,则ORACLE直接定位到等于8888的数。虽然这种优化显得差别不大,但是在查询数据量特别大的时候,尤其再循环语句中使用比较操作的时候区别就会很明显了。

 

 

 

第四(使用EXISTS替代IN和替代DISTINCT

 

1. 使用EXISTS替代IN

 

我们使用IN操作符是用来检查一个值是否包含在列表中。EXISTSIN不同,EXISTS只检查行的存在性,而IN检查的是实际的值。相应的我们使用NOT EXISTS来替代NOT IN

 

来提高查询的效率。

 

 

 

2. 使用EXISTS替代DISTINCT

 

       在连接查询的SQL语句当中,我们使用DISTINCT关键字来过禁止重复行的显示。尽量使用EXISTS替代DISTINCT。使用EXISTS用于检查子查询返回行的存在性,因为DISTINCT在禁止重复行显示之前要排序检索到的行。(这一步非常的消耗时间)

 

 

 

第五(表连接查询)

 

1.表查询

 

在执行每条查询语句的时候,ORACLE内部要执行许多的工作,比如:解析SQL语句、估算索引利用率、绑定变量、以及读取数据块等,因此我们要减少访问SQL的次数。主要就是指我们可以通过一次查询获取数据就尽量不要通过两次或多次来查询。

太多表连接会查询效率会极度下降

 

 

2.FROM子句表中的顺序

 

       SELECT语句的FROM子句中我们可以指定多个表,至于表和表之间的先后顺序,如果光是从查询结果来看,哪个表放在前面都是一样的,但是要从执行的效率来考虑表之间的顺序就要我们考虑的问题了。

 

       ORACLE的解析器在处理FROM子句的中的表时,是按照从左到右的顺序扫描的。也就是说FROM子句的最后指定的表现被处理。ORACLE将它视为驱动表(Driving table)并对该表进行排序,然后再扫描倒数的第二个表。最后将第二个表中检索出来的顺序和第一个表的合适记录做合并。因此我们建议采用比较小的表来做驱动表,也就是放到FROM子句的最后。

 

例如:有两张表T1888条)和T288888条)我们应该这样写

 

Select 列名 from T2,T1

 

 

 

3.WHERE子句的连接顺序

 

       ORACLE采用自右至左(自下向上)的顺序解析WHERE子句,根据这个顺序,表之间的连接应该写在WHERE条件之前,将可以过滤最大数量记录的条件写在WHERE末尾。

这个不是很确定,据说和oralce的某个设置模式有关系

分享到:
评论

相关推荐

    oracle SQL优化技巧

    Oracle SQL 优化技巧 Oracle SQL 优化是提高数据库性能的关键技巧之一。以下是 Oracle SQL 优化的 12 个技巧: 1. 选择最有效率的表名顺序 在基于规则的优化器中,Oracle 的解析器按照从右到左的顺序处理 FROM ...

    oracle sql优化

    在Oracle数据库环境中,SQL优化是提升系统性能的关键环节。它涉及到如何有效地检索数据,减少查询时间,减轻数据库服务器的负载,以及改善整体系统的响应速度。本文将深入探讨Oracle SQL优化的相关知识点,帮助你...

    Oracle SQL优化文档

    Oracle SQL优化文档提供了对Oracle数据库进行SQL语句优化的一系列方法和工具,旨在帮助数据库管理员和开发人员提高SQL查询性能和数据库效率。文档内容涵盖了从基本的SQL优化思路到具体的分析工具,详细介绍了如何...

    OracleSQL的优化.pdf

    Oracle SQL 优化 Oracle SQL 优化是数据库性能优化的关键部分。为了提高数据库的性能,我们需要从五个方面进行调整:去掉不必要的大型表的全表扫描、缓存小型表的全表扫描、检验优化索引的使用、检验优化的连接技术...

    oracle sql优化100条

    ### Oracle SQL优化100条概览 在Oracle数据库管理与优化领域,SQL查询的效率直接关系到系统性能和用户体验。以下将详细解读部分Oracle SQL优化原则,涵盖查询执行计划、表扫描方式、SQL语句优化及数据访问顺序等...

    Oracle SQL 优化与调优技术详解-附录:SQL提示

    在Oracle数据库中,SQL优化是一个至关重要的环节,它能够显著提高数据库查询的效率和性能。本文将详细介绍Oracle SQL中的“提示”(HINT)技术,这是Oracle SQL优化中使用的一项辅助手段,通过为查询提供额外的优化...

    oracle sql优化实战案例

    主要讲述oracle sql 的开发以及优化,对低效率的sql的优化方法和诊断技巧

    ORACLE SQL优化工具sqlhc

    Oracle SQL优化是数据库管理中的关键任务,用于提升查询性能,减少资源消耗,进而改善整体系统效率。`SQLHC`(SQL Health Check)是Oracle提供的一种实用工具,它可以帮助DBA(数据库管理员)诊断和优化SQL语句。在...

    落落 Oracle SQL优化与改写培训教程

    大量优化实战方法:将主要SQL优化点一一剖析,分享大量SQL优化的实际工作经验 50余改写调优案例:覆盖大多数DBA日常工作场景,具有相当大的实用价值 技巧+案例:可以作为DBA的参考手册,也可以作为开发人员编写SQL...

    Oracle sql优化.pdf

    Oracle SQL 优化 Oracle SQL 优化是指通过调整和优化 SQL 语句、数据库服务器设置和应用程序配置来提高数据库性能的过程。该过程涉及到多个方面,包括 SQL 语句优化、索引优化、数据库服务器配置优化、应用程序...

    ORACLE SQL 优化 存储过程 PROCEDURE

    ORACLE SQL 优化存储过程 PROCEDURE ORACLE SQL 优化存储过程 PROCEDURE 是一篇结合实际开发经验和理论知识的文章,旨在帮助开发者提高 SQL 开发效率和优化存储过程。文章涵盖了广泛的知识点,从基本的 SQL 语句到...

    Oracle SQL优化法则

    Oracle SQL优化是数据库管理的关键环节,它涉及到提升SQL语句执行效率,降低资源消耗,从而提高整体系统性能。以下是对Oracle SQL优化53个规则的详细解读,主要围绕选择优化器、访问表的方式、共享SQL语句这三大方面...

    oracle sql优化语句

    Oracle SQL 优化是数据库管理...总的来说,Oracle SQL优化涉及到对数据库行为的深入理解,包括优化器的工作原理、索引的使用策略以及执行计划的选择。通过恰当的配置和调优,可以大大提高数据库系统的性能和响应速度。

    oracle sql优化分享案例

    oracle sql案例的分享ppt,具体调优和改写sql的例子

    Oracle sql 优化实例

    不错的东东,通俗易懂,建议学习.赶紧下载吧

    oraclesql优化_Oracle中优化SQL的原则.pdf

    oraclesql优化_Oracle中优化SQL的原则.pdf

    大牛出手Oracle SQL优化实例讲解

    10.基于基本的优化CBO 11.如何统计数据库数据 12.Oracle如何统计操作系统数据 13./*+parallel(t,4)*/在大表查询性能的提现 14.CRAS和create insert的性能测试 15.增加字段时指定default值和先增加再update哪个性能好...

    OracleSQL优化初步

    在Oracle数据库管理中,SQL优化是一项至关重要的任务,它直接影响到数据库系统的性能和效率。"Oracle SQL优化初步"这个主题涵盖了DBA们在日常工作中必须掌握的基础知识和技巧。SQL优化的目标是通过改进查询结构、...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    Oracle的SQL优化与调优机制复杂多样,涵盖了从SQL语句的编写、执行计划的选择、到资源管理的全方位调优方法。为了深入理解Oracle SQL优化与调优机制,需要掌握以下几个核心知识点。 首先,要掌握Oracle SQL的基本...

    Oracle SQL优化的53个黄金法则

    Oracle SQL优化是数据库管理中的关键任务,以确保高效的数据检索和整体系统性能。本文将深入探讨53个黄金法则中的几个关键原则,帮助你优化Oracle SQL查询。 1. **选择合适的优化器**: - ORACLE提供三种优化器:...

Global site tag (gtag.js) - Google Analytics