`
kavy
  • 浏览: 872483 次
  • 性别: 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
分享到:
评论

相关推荐

    收获不止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语句是一项至关重要的任务,它直接影响着数据库系统的性能和效率。以下是一些关于如何优化SQL的详细原则和步骤: 1. **已验证的语句与共享池的一致性**:确保执行的SQL语句与已经在数据库...

    Oracle中表的连接及其调整.

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

    试谈优化Oracle库表设计的若干方法.docx

    1. 考虑是否需要复合索引IDX_ORDER_COMPOSITE,如果CLIENT、ORDER_DATE和IS_SHIPPED组合的唯一性较低,可能需要为每个字段单独建立索引,或者根据查询频率优先级选择性创建。 2. 分析T_ORDER_ITEM表的查询模式,...

    oracle的Parallel_并行技术案例详解

    Oracle 的 Parallel 并行技术案例详解 Oracle 的 Parallel 并行技术是指在数据库系统中实现并行处理的技术,通过将一个大的任务分解成多个小的任务,并利用多个进程或线程来并发执行这些小任务,从而提高系统的处理...

    oracle 生产库优化2

    在修改SQL或表结构前,最好先使用`EXPLAIN PLAN`或`10053`事件进行性能分析,对比优化前后的执行计划和资源消耗,确保优化效果。 在实际应用中,结合企业的具体业务需求和技术架构,综合运用上述优化方法,可以显著...

    Oracle Index索引无效的原因与解决方法

    5. **组合索引**:对于复合索引,只有包含所有引导列的查询条件才会使用索引。如果只筛选组合索引中的部分列,那么索引可能不会被充分利用。应确保WHERE子句中的条件至少包含组合索引的引导列。 在分析索引使用情况...

    收获不知Oracle

    5.2.1.9 组合索引高效设计要领272 5.2.1.10变换角度看索引的危害289 5.2.1.11如何合理控制索引数量295 5.2.2 位图索引的玫瑰花之刺 297 5.2.2.1 统计条数奋勇夺冠297 5.2.2.2 即席查询一骑绝尘302 5.2.2.3 遭遇更新...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

    经典SQL语句大全

    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...

    Oracle数据库迁移方案

    3. **数据迁移**: 使用Oracle的数据泵工具(如expdp/impdp)、物理复制(如RMAN备份恢复)或逻辑复制(如SQL脚本导出导入)将数据从源数据库迁移到目标数据库。 4. **权限和对象迁移**: 转移用户、角色、权限以及...

    oracle ppt课件

    【Oracle数据库基础知识】 Oracle是一种广泛使用的商业关系型数据库管理系统(RDBMS),由甲骨文公司(Oracle Corporation)开发和...通过优化配置和管理,Oracle能够有效地支持医疗机构提升服务质量、提高工作效率。

    sql经典语句一部分

    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...

    Oracle创建视图(View)

    视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...

    数据库操作语句大全(sql)

    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' +...

    SQL数据库修复软件

    数据库急救成立以来,一直从事各种主流数据库的修复及恢复工作,其中包括 MS SQL,MYSQL,Oracle,Access,Sybase,IBMDB2等20余种数据库。 国内目前最专业的数据库救援站,长期修复研究各数据库的物理结构及逻辑...

    2023年博为峰最新版的面试题

    2. Oracle:SQL查询、存储过程、索引优化、事务管理等。 3. Linux:命令行操作、文件系统、进程管理、网络配置等。 4. Shell:脚本编写、条件判断、循环结构、函数使用等。 以上内容仅为面试准备的要点,实际面试...

    计算机工程格式.pdf

    - PL/SQL引擎:PL/SQL是Oracle数据库中的过程化语言,文档中的结构图描绘了其基本组成,包括词法分析、语法分析、异常处理、执行器等环节。 - 数据字典:在数据库中,数据字典存储关于数据库本身的信息,如表、列...

    亮剑.NET深入体验与实战精要2

    13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481 13.6.3 开放-封闭法则(OCP) 482 13.6.4 Liskov替换法则(LSP) 485 13.6.5 单一职责原则(SRP) 486 13.6.6 依赖...

Global site tag (gtag.js) - Google Analytics