特殊情况如下

  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. Linux下C编程入门(1)

    Linux系统的介绍(以下以Manjaro最新版为例子): 一.系统的安装: 1.可以直接使用U盘做一个live usb的启动盘,在bios中设置从U盘启动即可拥有linux系统,如果是新式bios需 ...

  2. POJ 2240_Arbitrage

    题意: 给定一系列货币汇率,求能否从一种货币,经过一系列转换,最终转化回更高价值的该种货币. 分析: 即为求最长路并判断是否存在"正"权值回路,这里用的bellmanford算法. ...

  3. P1665 正方形计数

    P1665 正方形计数 题目描述 给定平面上N个点,你需要计算以其中4个点为顶点的正方形的个数.注意这里的正方形边不一定需要和坐标轴平行. 输入输出格式 输入格式: 第一行一个数X,以下N个点的坐标. ...

  4. Servlet的Cookies处理

    以下内容引用自http://wiki.jikexueyuan.com/project/servlet/cookies-handling.html: Cookies是存储在客户端计算机上的文本文件,用于 ...

  5. node使用npm一句命令停止某个端口号 xl_close_port

    一命令停止某一个端口号,再也不怕端口号被占用了.. 1.插件背景 开启项目的时候,跑不起来了? 很多时候的原因就是,依赖版本,依赖的包未安装,再就是端口号被占用 例如: 这时候,我们做法就是: 1.到 ...

  6. pycharm内存不足时如何修改设置?

    Help->Find Action->(type "VM Options")->(Click)"Edit Custom VM Options" ...

  7. git: 保存帐号信息

    One line command: git config credential.helper store

  8. linux内核CFS进程调度策略

    一.概述 首先简介一下主要的设计思路, CFS思路非常easy.就是依据各个进程的权重分配执行时间(权重怎么来的后面再说). 进程的执行时间计算公式为: 分配给进程的执行时间 = 调度周期 * 进程权 ...

  9. VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群—整合Zookeeper和Hbase

    VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 这篇是接着上一篇hadoop集群搭建进行的.在hadoop-1.2.1基础之上安装zoo ...

  10. 【Swift】学习笔记(二)——基本运算符

    运算符是编程中用得最多的,其包含一元,二元和三元 三种运算符.swift也和其他编程语言一样基本就那些,以下总结一下,也有它特有的运算符.比方区间运算符 1.一元运算符 =   赋值运算符,用得最多的 ...