特殊情况如下

  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. Avro kafka(Producer-Consumer)

    https://blog.csdn.net/mlljava1111/article/details/51376990

  2. ESG操作指南

    ESG使用指南:1.ESG操作文档网站:ESG有个网站,是专门的操作文档网站,因为ESG三个环境,流程各不一样.地址:http://10.20.12.90:20567/esg-help-doc/2.E ...

  3. iOS 远程推送原理及实现

    关于iOS 实现消息推送的原理: 1.provide[server]把要发送的消息,目的IOS设备标识打包.发送给APNS 2.APNS在自身已注冊Push服务的IOS设备列表中.查找有对应标识的IO ...

  4. 【大数据处理架构】1.spark streaming

    1. spark 是什么? >Apache Spark 是一个类似hadoop的开源高速集群运算环境  与后者不同的是,spark更快(官方的说法是快近100倍).提供高层JAVA,Scala, ...

  5. Qt实现Windows远程控制

    实现方式为server端+client. server端为一个进程.client为图形界面程序. client连接时设置server端的Ip地址,以及须要显示的长度和宽度(不能超过相应server端显 ...

  6. boost::mpl::eval_if的使用方法

    近期看boost的时候总是遇见这个eval_if,不知道啥意思,就没法看下去了,比方 前篇文章boost::serialization 拆分serialize函数分析时就出现这样一段代码: templ ...

  7. 使用adb在电脑和手机间传文件

    首先须要root手机. 然后,"Win + R",打开cmd窗体.以下以copy d:\1.txt到/system/文件夹为例说明. adb push source(localpa ...

  8. 在.Net MVC结构API接口中推断http头信息实现公共的权限验证过滤器演示样例

    //control   action public class TestController : ApiController { [MyAuthFilter] public string test(s ...

  9. 第五课 Struts的控制器【续】Action类的execute()方法

    1.Action类的execute()方法: public ActionForward execute(ActionMapping mapping,                           ...

  10. libpcap 中调用ctime()时警告提示:

    warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]    ...