执行计划怪异的问题,求助大神解答,么么哒
SQL是统计工单维修材料(tt_ddc_ro_repair_part)的 材料费,要关联工单(tt_ddc_repair_order)的维修类型"repair_type_code"
select tl.part_sales_amount as ct,
tl.from_entity,
to_char(tl.send_time, 'yyyy-mm-dd') as index_date
from tt_ddc_ro_repair_part tl
left join tt_ddc_repair_order tro on tl.from_entity = tro.from_entity
and tro.ro_no = tl.ro_no
where tl.is_finished = 12781001
and tro.repair_type_code = 'PTWX'
===========================================================================
SELECT STATEMENT, GOAL = ALL_ROWS 75572 1 93
NESTED LOOPS
NESTED LOOPS 75572 1 93
TABLE ACCESS FULL INFODDC TT_DDC_REPAIR_ORDER 75572 4420 132600
INDEX RANGE SCAN INFODDC FK_RO_PART1 0 1
TABLE ACCESS BY INDEX ROWID INFODDC TT_DDC_RO_REPAIR_PART 0 1 63
单独这么查询 时间非常长,说是全表扫描了.
然后我自己瞎试,居然变快了,但是我完全不懂其中的区别,就是我给数据量比较大的表加上了一个"店面"的关联,但是其实本身他也就那么多店面,信息也都是完整的,从文字来看就是所有店等于所有店. (如下) tm_brand_dealer_map 记录所有店面的表
select tl.part_sales_amount as ct,
tl.from_entity,
to_char(tl.send_time, 'yyyy-mm-dd') as index_date
from tt_ddc_ro_repair_part tl
left join tt_ddc_repair_order tro on tl.from_entity = tro.from_entity
and tro.ro_no = tl.ro_no
where tl.is_finished = 12781001
and tro.repair_type_code = 'PTWX'
/*-----------------------------------------------------*/
and exists (select tm.dealer_code
from tm_brand_dealer_map tm
where tm.dr = 0
and tl.from_entity = tm.dealer_code)
/*-----------------------------------------------------------------*/
SELECT STATEMENT, GOAL = ALL_ROWS 10 1 112
NESTED LOOPS
NESTED LOOPS 10 1 112
NESTED LOOPS 10 1 82
SORT UNIQUE 9 13 247
TABLE ACCESS FULL NC60 TM_BRAND_DEALER_MAP 9 13 247
TABLE ACCESS BY INDEX ROWID INFODDC TT_DDC_RO_REPAIR_PART 0 1 63
INDEX RANGE SCAN INFODDC FK_RO_PART1 0 1
INDEX RANGE SCAN INFODDC INX_RO_RO_NO1 0 1
TABLE ACCESS BY INDEX ROWID INFODDC TT_DDC_REPAIR_ORDER 0 2 60
=====================
想求教大神为什么会有这样的区别!!!!此致敬礼
select tl.part_sales_amount as ct,
tl.from_entity,
to_char(tl.send_time, 'yyyy-mm-dd') as index_date
from tt_ddc_ro_repair_part tl
left join tt_ddc_repair_order tro on tl.from_entity = tro.from_entity
and tro.ro_no = tl.ro_no
where tl.is_finished = 12781001
and tro.repair_type_code = 'PTWX'
===========================================================================
SELECT STATEMENT, GOAL = ALL_ROWS 75572 1 93
NESTED LOOPS
NESTED LOOPS 75572 1 93
TABLE ACCESS FULL INFODDC TT_DDC_REPAIR_ORDER 75572 4420 132600
INDEX RANGE SCAN INFODDC FK_RO_PART1 0 1
TABLE ACCESS BY INDEX ROWID INFODDC TT_DDC_RO_REPAIR_PART 0 1 63
单独这么查询 时间非常长,说是全表扫描了.
然后我自己瞎试,居然变快了,但是我完全不懂其中的区别,就是我给数据量比较大的表加上了一个"店面"的关联,但是其实本身他也就那么多店面,信息也都是完整的,从文字来看就是所有店等于所有店. (如下) tm_brand_dealer_map 记录所有店面的表
select tl.part_sales_amount as ct,
tl.from_entity,
to_char(tl.send_time, 'yyyy-mm-dd') as index_date
from tt_ddc_ro_repair_part tl
left join tt_ddc_repair_order tro on tl.from_entity = tro.from_entity
and tro.ro_no = tl.ro_no
where tl.is_finished = 12781001
and tro.repair_type_code = 'PTWX'
/*-----------------------------------------------------*/
and exists (select tm.dealer_code
from tm_brand_dealer_map tm
where tm.dr = 0
and tl.from_entity = tm.dealer_code)
/*-----------------------------------------------------------------*/
SELECT STATEMENT, GOAL = ALL_ROWS 10 1 112
NESTED LOOPS
NESTED LOOPS 10 1 112
NESTED LOOPS 10 1 82
SORT UNIQUE 9 13 247
TABLE ACCESS FULL NC60 TM_BRAND_DEALER_MAP 9 13 247
TABLE ACCESS BY INDEX ROWID INFODDC TT_DDC_RO_REPAIR_PART 0 1 63
INDEX RANGE SCAN INFODDC FK_RO_PART1 0 1
INDEX RANGE SCAN INFODDC INX_RO_RO_NO1 0 1
TABLE ACCESS BY INDEX ROWID INFODDC TT_DDC_REPAIR_ORDER 0 2 60
=====================
想求教大神为什么会有这样的区别!!!!此致敬礼
...全文
相关推荐
详解CSS 怪异盒模型和标准盒模型
在html文档中,每个渲染在页面中的标签都是一个个盒子模型。 盒子模型又分为 : W3C标准的盒子模型 和 IE标准的盒子模型。 由于目前大部分主流的浏览器支持的是W3C标准盒模型(标准盒模型),也有保留对怪异盒子样式的解析,当然IE沿用的是自己标准的盒模型(怪异盒子模型) 用两个简单的例子分别介绍下这两个盒子模型: 标准盒模型: <!--html--> <div class=box1> <div class=box2></div> </div> <!--css--> .box1{ width: 200px; height: 200px;
怪异的一面
怪异的一面
C语言怪异代码大赛历届作品大全
C语言怪异代码大赛历届作品大全 1984~1996,1998,2000,2001,2004~2006,2011,2012
标准盒模型与怪异盒模的区别.html
介绍了css中盒模型的一些属性的位置设置和标准盒模型与怪异盒模型的一些区别,他们的区别在于标准盒模型与怪异盒模型的大小计算的不同。
扩展的《怪异星球协议》
扩展的《怪异星球协议》


