特殊情况如下

  1. 客户的统计信息是固定的,没办法收集统计信息 。
  2. SQL profile 是最后考虑方案,因为同样写法sql 比较多,几十条。
  3. Parallle 并行客户一般不考虑接受,OLTP 系统。
  4. 最好使用hint .

无法收集统计信息,怎样优化SQL。

首先在dev 环境收集统计信息,通过SQLHC ,收取结果。

其次使用收集信息的outline ,来代入,调优

结果如下:

SELECT

/*+

                            BEGIN_OUTLINE_DATA

                            IGNORE_OPTIM_EMBEDDED_HINTS

                            OPTIMIZER_FEATURES_ENABLE('11.2.0.4')

                            DB_VERSION('11.2.0.4')

                            ALL_ROWS

                            OUTLINE_LEAF(@"SEL$7286615E")

                            MERGE(@"SEL$5")

                            OUTLINE_LEAF(@"SEL$335DD26A")

                            MERGE(@"SEL$3")

                            OUTLINE_LEAF(@"SEL$E9CE8D49")

                            MERGE(@"SEL$07C48A2D")

                            OUTLINE_LEAF(@"SEL$B584FDD1")

                            MERGE(@"SEL$29F99543")

                            OUTLINE_LEAF(@"SEL$201A8568")

                            MERGE(@"SEL$10")

                            MERGE(@"SEL$11")

                            MERGE(@"SEL$12")

                            MERGE(@"SEL$13")

                            MERGE(@"SEL$6")

                            MERGE(@"SEL$7")

                            MERGE(@"SEL$8")

                            MERGE(@"SEL$9")

                            OUTLINE(@"SEL$4")

                            OUTLINE(@"SEL$5")

                            OUTLINE(@"SEL$2")

                            OUTLINE(@"SEL$3")

                            OUTLINE(@"SEL$17")

                            OUTLINE(@"SEL$07C48A2D")

                            MERGE(@"SEL$19")

                            OUTLINE(@"SEL$14")

                            OUTLINE(@"SEL$29F99543")

                            MERGE(@"SEL$16")

                            OUTLINE(@"SEL$1")

                            OUTLINE(@"SEL$10")

                            OUTLINE(@"SEL$11")

                            OUTLINE(@"SEL$12")

                            OUTLINE(@"SEL$13")

                            OUTLINE(@"SEL$6")

                            OUTLINE(@"SEL$7")

                            OUTLINE(@"SEL$8")

                            OUTLINE(@"SEL$9")

                            OUTLINE(@"SEL$18")

                            OUTLINE(@"SEL$19")

                            OUTLINE(@"SEL$15")

                            OUTLINE(@"SEL$16")

                            FULL(@"SEL$201A8568" "CONTAINER"@"SEL$6")

                            INDEX_RS_ASC(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$10" ("LOCN_GP_ACCESS_CTRL_GP_MEMBER"."LS_LEVEL_1"

                                    "LOCN_GP_ACCESS_CTRL_GP_MEMBER"."LS_LEVEL_2" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"."LS_LEVEL_3" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"."LS_LEVEL_4"))

                            FULL(@"SEL$201A8568" "SHIPMENT"@"SEL$7")

                            FULL(@"SEL$201A8568" "SHIPMENT_INSTRUCTION"@"SEL$8")

                            NO_ACCESS(@"SEL$201A8568" "RFR"@"SEL$1")

                            FULL(@"SEL$201A8568" "LOCATION_SPACE"@"SEL$13")

                            INDEX_FFS(@"SEL$201A8568" "EMPTY_POOL_CONTAINER"@"SEL$9" ("EMPTY_POOL_CONTAINER"."EMPTY_POOL_CODE" "EMPTY_POOL_CONTAINER"."CNTR_ID"))

                            FULL(@"SEL$201A8568" "CNTR_DAMAGE_DTL"@"SEL$12")

                            FULL(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$11")

                            LEADING(@"SEL$201A8568" "CONTAINER"@"SEL$6" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$10" "SHIPMENT"@"SEL$7" "SHIPMENT_INSTRUCTION"@"SEL$8"

                                    "RFR"@"SEL$1" "LOCATION_SPACE"@"SEL$13" "EMPTY_POOL_CONTAINER"@"SEL$9" "CNTR_DAMAGE_DTL"@"SEL$12" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$11")

                            USE_HASH(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$10")

                            USE_HASH(@"SEL$201A8568" "SHIPMENT"@"SEL$7")

                            USE_HASH(@"SEL$201A8568" "SHIPMENT_INSTRUCTION"@"SEL$8")

                            USE_HASH(@"SEL$201A8568" "RFR"@"SEL$1")

                            USE_HASH(@"SEL$201A8568" "LOCATION_SPACE"@"SEL$13")

                            USE_HASH(@"SEL$201A8568" "EMPTY_POOL_CONTAINER"@"SEL$9")

                            USE_HASH(@"SEL$201A8568" "CNTR_DAMAGE_DTL"@"SEL$12")

                            USE_HASH(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$11")

                            PX_JOIN_FILTER(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$11")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$10")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "SHIPMENT"@"SEL$7")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "SHIPMENT_INSTRUCTION"@"SEL$8")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "RFR"@"SEL$1")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "LOCATION_SPACE"@"SEL$13")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "EMPTY_POOL_CONTAINER"@"SEL$9")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "CNTR_DAMAGE_DTL"@"SEL$12")

                            SWAP_JOIN_INPUTS(@"SEL$201A8568" "LOCN_GP_ACCESS_CTRL_GP_MEMBER"@"SEL$11")

                            NO_ACCESS(@"SEL$B584FDD1" "C"@"SEL$14")

                            FULL(@"SEL$B584FDD1" "REEFER_MONITORING_LOG"@"SEL$16")

                            LEADING(@"SEL$B584FDD1" "C"@"SEL$14" "REEFER_MONITORING_LOG"@"SEL$16")

                            USE_HASH(@"SEL$B584FDD1" "REEFER_MONITORING_LOG"@"SEL$16")

                            INDEX_FFS(@"SEL$E9CE8D49" "REEFER_MONITORING_LOG"@"SEL$19" ("REEFER_MONITORING_LOG"."REEFER_HANDLING_CYCLE_MODE"

                                    "REEFER_MONITORING_LOG"."CNTR_ID" "REEFER_MONITORING_LOG"."REEFER_MONITORING_DATETIME"))

                            USE_HASH_AGGREGATION(@"SEL$E9CE8D49")

                            INDEX_RS_ASC(@"SEL$335DD26A" "GATE_LOG"@"SEL$3" ("GATE_LOG"."CNTR_ID" "GATE_LOG"."CMS_NO"))

                            INDEX_RS_ASC(@"SEL$7286615E" "GATE_LOG"@"SEL$5" ("GATE_LOG"."CNTR_ID" "GATE_LOG"."CMS_NO"))

                            END_OUTLINE_DATA

                        */

CNTR.CREATED_BY_OPR_UNIT CREATED_BY_OPR_UNIT,

*********

from

*****.

无法收集统计信息,怎样优化SQL。的更多相关文章

  1. 收集统计信息让SQL走正确的执行计划

    数据库环境:SQL SERVER 2005 今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行, 却执行了34分钟,甚至更久. 先看一下执行结果 我贴一下SQL. SELE ...

  2. 使用DBMS_STATS来收集统计信息【转】

    overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fract ...

  3. Oracle 手动收集统计信息

    收集oracle统计信息 优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN: 列统计: --列中唯一值的数量(NDV ...

  4. Oracle 判断 并 手动收集 统计信息 脚本

    CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS AUTHID CURRENT_USER IS BEGIN SYS.DBMS_STATS.GAT ...

  5. ORACLE收集统计信息

    1.     理解什么是统计信息 优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·       ...

  6. ORACLE 收集统计信息

    1.     理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·        ...

  7. Oracle重建表索引及手工收集统计信息

    Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...

  8. Oracle 11g系统自己主动收集统计信息的一些知识

    在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10 ...

  9. 验证Oracle收集统计信息参数granularity数据分析的力度

    最近在学习Oracle的统计信息这一块,收集统计信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, ---所有者名字 tabname ...

随机推荐

  1. 在子线程中更新UI,只能使用Handler

    package com.pingyijinren.test; import android.os.Handler; import android.os.Message; import android. ...

  2. Count Color POJ - 2777 线段树

    Chosen Problem Solving and Program design as an optional course, you are required to solve all kinds ...

  3. TCP/IP学习笔记(4)------ICMP,ping,traceroute

    IMCP协议介绍 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机.给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能 ...

  4. 对于事务ACID的理解

    ACID,即以下四点: 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性(Consistency) 事务前后数据的完整性必须保持一致 ...

  5. mysql利用timestamp来进行帖子排序

    select * from table order by timestamp descorder by 该列 desc timestamp字段也可以用来排序,对应Java类型的.net.timesta ...

  6. 物理内存、虚拟内存、buffers、cached、共享内存、swap

    物理内存: 实际使用的内存: 虚拟内存: 虚拟内存是操作系统内核为了对进程地址空间进行管理(process address space management)而精心设计的一个逻辑意义上的内存空间概念. ...

  7. 【转】golang中的并行与并发

    原文:http://blog.csdn.net/taohaoge/article/details/27970421 ------------------------------------------ ...

  8. android学习一(了解android)

    声明:android学习文件中面的全部内容为都是整理来自第一行代码Android.在接下来的文章里我就不在进行反复的声明. 想看原版的能够买书看看.或者去作者的博客http://blog.csdn.n ...

  9. 【LeetCode刷题Java版】Reverse Words in a String

    Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...

  10. 单点登录之CAS简介

    cas官网http://www.ja-sig.org/products/cas/. ok,如今開始本文的重点内容解说,先来了解一下cas 实现single sign out的原理,如图所看到的:    ...