特殊情况如下

  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. UVA 1025_A Spy in the Metro

    [题意](小紫书)一个人从站台1出发,乘车要在时刻T到达站台n,为使在站台等车时间最短,她可以选择乘坐两个方向的列车,并在客车停靠站的时候换车. [分析]每次停站下车时,她都有三种选择,1.原地不动 ...

  2. wget: unable to resolve host address “mirrors.163.com” 的解决办法

    wget:无法解析主机地址.这就能看出是DNS解析的问题. 解决办法: 登入root(VPS). 进入/etc/resolv.conf. 修改内容为下nameserver 8.8.8.8 #googl ...

  3. TensorFlow-GPU环境配置之三——安装bazel

    TensorFlow的源码需要使用bazel进行编译,所以需要安装bazel构建工具 1.安装JDK 8 sudo add-apt-repository ppa:webupd8team/java su ...

  4. yarn-cli 简介

    Yarn 提供了丰富的命令行命令来帮你应付你所开发的 Yarn 包的方方面面的工作,包括安装.管理.发布等等. 虽然我们在这里按照字母顺序列出了我们提供的所有命令,但是某些更常用的命令还是要着重提一下 ...

  5. iOS xcode6最新提交app方法

    依照之前方式打包.打包成功后.直接submit提交AppStore.然后再选择build,假设上传成功,但在build选择上未出现,你能够耐心等待.有可能要等上一天,然后选择相应的build,直接提交 ...

  6. OpenStack QA

    1 能用devstack部署生产环境的OpenStack吗? 不能,记着,不能!有些选项对生产环境不合适.生产环境能够考虑使用Crowbar部署OpenStack.相关文档例如以下:http://op ...

  7. Swing的Look And Feel机制研究

    首先,参考了一下这篇文章 里面提到需要自己Override L&F的initClassDefaults方法,但是查看了一下NimbusLookAndFeel, 发现它为了没有实现initCla ...

  8. YTU 2508: 武功秘籍

    2508: 武功秘籍 时间限制: 1 Sec  内存限制: 128 MB 提交: 1384  解决: 438 题目描述 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的).  他 ...

  9. SPOOL 命令使用实例【oracle导出纯文本格式文件】

    SPOOL 命令使用实例[oracle导出纯文本格式文件] SET echo off              --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句: SET ...

  10. [USACO15DEC]High Card Low Card (Platinum)

    https://www.zybuluo.com/ysner/note/1300791 题面 贝西和她的朋友艾尔西正在玩这个简单的纸牌游戏.游戏有\(2N\)张牌,牌上的数字是\(1\)到\(2N\). ...