`
kavy
  • 浏览: 888369 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle sql优化案例1(使用组合索引) .

 
阅读更多

Bad sql

SELECT T3.CONFLICT_ID,

       T3.LAST_UPD,

       T3.CREATED,

       T3.LAST_UPD_BY,

       T3.CREATED_BY,

       T3.MODIFICATION_NUM,

       T3.ROW_ID,

       T3.ATTR_04,

       T3.ATTR_03,

       T2.VAL,

       T3.ATTR_01,

       T3.ATTR_02,

       T1.NAME,

       T2.VAL1

  FROM user.S_ORG_EXT T1, user.CX_LOOKUP T2, user.CX_POS_LOG_INFOT3

 WHERE T3.ATTR_02 = T1.PAR_ROW_ID

   AND T3.ATTR_01 = T2.NAME1

   AND T2.TYPE = 'PROVIDER'

   AND (T3.TYPE = 'INFO')

   AND (T3.ATTR_04 = :1 AND T3.ATTR_02 = :2)

 

原因分析:对CX_POS_LOG_INFO表全表扫描,其实统计信息也不准确,表的大小应该500M左右了

 

 

--------------------------------------------------------------------------------

| Operation                      | PHV/Object Name     | Rows | Bytes|   Cost |

--------------------------------------------------------------------------------

|SELECT STATEMENT                |----- 1762745057 ----|       |     |   3655 |

|NESTED LOOPS                    |                     |     1 |   1K|   3655 |

| NESTED LOOPS                   |                     |     1 | 109 |      2 |

|  TABLE ACCESS BY INDEX ROWID   |S_ORG_EXT            |     1 |  25 |      1 |

|   INDEX UNIQUE SCAN            |S_ORG_EXT_U3         |    1 |      |      2 |

|  TABLE ACCESS BY INDEX ROWID   |CX_LOOKUP            |     1 |  84 |      1 |

|   INDEX RANGE SCAN             |CX_LOOKUP_U1         |    1 |      |      2 |

| TABLE ACCESS FULL              |CX_POS_LOG_INFO      |    1 |    1K|   3653 |

--------------------------------------------------------------------------------

Statistics

----------------------------------------------------------

          1 recursive calls

          0 db block gets

      71207 consistent gets

      71187 physical reads

          0 redo size

       1131 bytes sent via SQL*Net to client

        460 bytes received via SQL*Net from client

          1 SQL*Net roundtrips to/from client

          0 sorts (memory)

          0 sorts (disk)

          0 rows processed

 

 

解决思路:

手工添加组合索引,使查询走组合索引,查询从65秒下降到1秒,逻辑读从71207(556M)下降到21

create indexSIEBEL.IDX_CX_POS_LOG_INFO_U1 on SIEBEL.CX_POS_LOG_INFO (ATTR_02, ATTR_04)

  tablespace SIEB_IDX

 

 

 

Execution Plan

----------------------------------------------------------

   0     SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=1278)

   1   0   TABLE ACCESS (BY INDEX ROWID)OF 'CX_POS_LOG_INFO' (Cost=1 Card=1 Bytes=1169)

   2   1     NESTED LOOPS (Cost=3 Card=1Bytes=1278)

   3   2       NESTED LOOPS (Cost=2Card=1 Bytes=109)

   4   3         TABLE ACCESS (BY INDEXROWID) OF 'S_ORG_EXT' (Cost=1  Card=1Bytes=25)

   5   4           INDEX (UNIQUE SCAN) OF'S_ORG_EXT_U3' (UNIQUE) (Cost=2 Card=1)

   6   3         TABLE ACCESS (BY INDEXROWID) OF 'CX_LOOKUP' (Cost=1  Card=1Bytes=84)

   7   6           INDEX (RANGE SCAN) OF'CX_LOOKUP_U1' (UNIQUE) (Cost=2 Card=1)

   8   2       INDEX (RANGE SCAN) OF'IDX_CX_POS_LOG_INFO_U1'  (NON-UNIQUE)(Cost=1 Card=93)

Statistics

----------------------------------------------------------

          0 recursive calls

          0 db block gets

         18 consistent gets

          0 physical reads

          0 redo size

       1448 bytes sent via SQL*Net to client

        655 bytes received via SQL*Net from client

          2 SQL*Net roundtrips to/from client

          0 sorts (memory)

          0 sorts (disk)

          1 rows processed


转自:http://blog.csdn.net/hijk139/article/details/7301139
分享到:
评论

相关推荐

    ORACLE数据库SQL语句编写优化总结.rar

    在Oracle数据库中,SQL语句的编写和优化是数据库管理员和开发人员的重要技能。这份"ORACLE数据库SQL语句编写优化总结"文档很可能是对如何提高SQL查询性能、减少资源消耗以及提升系统整体效率的详细阐述。以下是根据...

    收获不止SQL优化

    第1章 全局在胸——用工具对SQL整体优化 1 1.1 都有哪些性能工具 1 1.1.1 不同调优场景分析 2 1.1.2 不同场景对应工具 2 1.2 整体性能工具的要点 4 1.2.1 五大性能报告的获取 5 1.2.2 五大报告关注的要点 10 ...

    从实践中学习Oracle SQL(下)

    本文详细介绍了 Oracle SQL 中的一些高级概念和技术,包括子查询、分组、连接、数据操纵语言 (DML)、事务处理、视图、索引优化以及 PL/SQL 和数据库安全等。通过这些实践案例的学习,相信读者已经掌握了更多实用的...

    Oracle查询优化改写 技巧与案例

    - **解决方案**:创建一个组合索引`IDX_CUSTOMER_DATE`,包含`customer_id`和`order_date`两个字段,这样查询可以直接从索引中获取所需数据,而无需访问表本身。 2. **案例二:利用物化视图加速报表生成** - **...

    NC的Oracle优化及异常数据处理

    文档通过案例解释了单列索引和组合索引的作用,并指出在创建复合索引时要注意列的排列顺序和数量限制。 2. 返回更少的数据。通过优化SQL语句,减少返回结果集的大小。 3. 减少交互次数。例如通过批量处理数据减少...

    浅谈Oracle数据库基于索引的SQL语句优化方法.pdf

    作者龚维荣、周顺平、万波在文章中结合自己的实际工作经验,对Oracle数据库基于索引的SQL语句优化方法进行了初步探讨,提出了建立必要索引的建议和方法,并分享了一些简单实用的优化技巧。这些技巧如果能够在数据库...

    Mastering Oracle SQL and SQL Plus

    《Mastering Oracle SQL and SQL Plus》这本书为读者提供了全面而深入的学习资源,涵盖了Oracle SQL的基础知识、高级特性以及SQL Plus的使用技巧。通过本书的学习,不仅可以掌握Oracle SQL的基本操作,还能深入了解...

    精通Oracle.10g.Pl.SQL编程

    通过阅读“精通Oracle.10g.Pl.SQL编程”这本书,读者将不仅学习到上述知识点,还能深入探讨实际案例,理解如何在实际项目中应用这些知识。这本书对于想要提升数据库开发和管理能力的人来说是一本宝贵的资源。

    Oracle PL SQL编程 第4版.rar

    10. **索引优化**:理解PL/SQL中的索引使用,以及如何通过索引提高查询性能。 11. **并发控制**:处理多用户环境下的并发问题,如锁定机制(ROWLOCK, TABLELOCK)和死锁检测。 12. **错误处理和调试**:掌握PL/SQL...

    oracle查询优化

    例如,在WHERE子句中使用了多个字段时,考虑创建这些字段的组合索引。 - **避免索引失效**:确保查询条件与索引字段相匹配,避免使用函数或表达式对索引字段进行操作。 #### 三、简化查询结构 - **减少使用IN或OR**...

    SQL.rar_oracle

    在这个案例中,"SQL.CHM"很可能是一个关于SQL的完整指南,涵盖了从基础到高级的各种概念,尤其可能包括在Oracle数据库中的应用。 下面,我们将深入探讨一些可能包含在"SQL.CHM"中的关键SQL知识点,以及它们在Oracle...

    Oracle高级SQL编程

    1. **SQL性能优化**:深入探讨SQL查询的执行计划、索引使用策略以及如何编写高效的SQL语句,这对于提高应用程序的响应速度至关重要。 2. **复杂查询技巧**:介绍如何使用子查询、连接(join)、集合操作(如union、...

    Oracle优化器及执行计划.pdf

    - **基于成本的优化器(CBO)**:现代版本的Oracle主要使用的优化技术,它根据统计数据计算出每个可能的执行路径的成本,并选择成本最低的执行计划。 #### 四、Oracle的执行计划访问路径 **4.1 执行计划的获取** ...

    oracle-sql-the-essential-reference

    他在本书中不仅分享了自己的专业见解,还通过实际案例帮助读者更好地理解和应用Oracle SQL的各种功能。 #### 三、内容概览 ##### 1. **基础概念** - **Lexical Conventions**(词法规则):这部分介绍了Oracle ...

    oracle数据库优化

    ### Oracle数据库优化关键知识点 #### 一、优化五个核心方面 1. **去掉不必要的大型表的全表扫描** - 大型表的全表扫描会导致大量的I/O操作,严重影响性能。对于这类表,应该优先考虑使用索引或者分区策略来避免...

    sql语句电子书 . .

    1. 查询优化:学习如何编写高效的SQL查询,包括避免全表扫描、使用索引等策略。 2. 性能监控:了解如何分析和调整SQL查询性能,提升数据库系统的整体效率。 以上只是“SQL语句电子书”可能涉及的一些关键知识点,...

    Oracle中表的连接及其调整.

    Oracle 数据库中的表连接是构建复杂 SQL 查询的基础,它允许从多个表中组合数据。连接方法的选择直接影响到查询性能,因此了解各种连接类型及其适用场景至关重要。本文将深入探讨 Oracle 中的三种主要连接方式:嵌套...

Global site tag (gtag.js) - Google Analytics