无法收集统计信息,怎样优化SQL。
特殊情况如下
- 客户的统计信息是固定的,没办法收集统计信息 。
- SQL profile 是最后考虑方案,因为同样写法sql 比较多,几十条。
- Parallle 并行客户一般不考虑接受,OLTP 系统。
- 最好使用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。的更多相关文章
- 收集统计信息让SQL走正确的执行计划
数据库环境:SQL SERVER 2005 今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行, 却执行了34分钟,甚至更久. 先看一下执行结果 我贴一下SQL. SELE ...
- 使用DBMS_STATS来收集统计信息【转】
overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fract ...
- Oracle 手动收集统计信息
收集oracle统计信息 优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN: 列统计: --列中唯一值的数量(NDV ...
- Oracle 判断 并 手动收集 统计信息 脚本
CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS AUTHID CURRENT_USER IS BEGIN SYS.DBMS_STATS.GAT ...
- ORACLE收集统计信息
1. 理解什么是统计信息 优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: · ...
- ORACLE 收集统计信息
1. 理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: · ...
- Oracle重建表索引及手工收集统计信息
Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...
- Oracle 11g系统自己主动收集统计信息的一些知识
在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10 ...
- 验证Oracle收集统计信息参数granularity数据分析的力度
最近在学习Oracle的统计信息这一块,收集统计信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, ---所有者名字 tabname ...
随机推荐
- cdq分治入门--BZOJ1492: [NOI2007]货币兑换Cash
n<=100000天,一开始有s块钱,每天股票A价格ai,B价格bi,每天可以做的事情:卖出股票:按A:B=RTi的比例买入股票.问最后的最大收益.股票可以为浮点数,答案保留三位. 用脚指头想想 ...
- Ubuntu 16.04安装ntopng流量监控软件
ntop官方在2012年就已经不再更新,取代的是ntopng.ntopng具有Web页面,适合做网络管理监控软件.比如监控局域网内多台机器的上网情况等. 不过这个东西感觉不太准,最好的方案应该把安装n ...
- golang time.Duration()的问题解疑
原文: How to multiply duration by integer? 看到golang项目中的一段代码, ---------------------------------------- ...
- Android系统开发(4)——Autotools
Autotools工具的构成 1.autoscan autoscan是用来扫描源码文件夹生成configure.san文件的,configure.san包括了系统配置的基本选项.里面都是一些宏定义,我 ...
- 在head里的CSS link 竟然粗如今body里了?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGVhY2Vfb2Zfc291bA==/font/5a6L5L2T/fontsize/400/fill/I0 ...
- Objective-C语言的 if ( self = [super init] )
我们先假设如今自己创建了个类.我们起名叫MyObject,继承于NSObject. 继承知道吧,就是你这个子类(MyObject)假设什么都不写的话,和父类(NSObject)就是一模一样的. OC里 ...
- 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
算法提高 12-1三角形 时间限制:1.0s 内存限制:256.0MB 问题描述 为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体.分别设计独立的函数计算三角形的 ...
- #1543 : SCI表示法
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 每一个正整数 N 都能表示成若干个连续正整数的和,例如10可以表示成1+2+3+4,15可以表示成4+5+6,8可以表示成 ...
- MessageBox.Show
MessageBox.Show()共有21中重载方法.现将其常见用法总结如下: .MessageBox.Show("Hello~~~~"); 最简单的,只显示提示信息. .Mess ...
- CPU卡详解【转】
本文转载自:http://blog.csdn.net/logaa/article/details/7571805 第一部分 CPU基础知识 一.为什么用CPU卡 IC卡从接口方式上分,可以分为接触式I ...