如何使用提示改变表连接方式牛
在多表联合查询中,当使用Ordered提示改变SQL执行计划之后,通常我们很难再次控制结果集中进一步Join的顺序.
这时候我们可以使用Oracle提供的另外一个Hints: Leading 提示.
这个Hints在Oracle9i中的含义为:
The LEADING hint causes Oracle to use the specified table as the first table in the join order.
If you specify two or more LEADING hints on different tables, then all of them are ignored. If you specify the ORDERED hint, then it overrides all LEADING hints.
通过Leading 和 use_hash 提示连用,我们可以巧妙的影响SQL中表和结果集的Join顺序.
我们通过如下示例看一下这个提示是如何影响SQL执行的:
SQL SELECT /*+ leading(t_max) use_hash(t_max t_middle) */ COUNT (*)
2 FROM t_small, t_max, t_middle
3 WHERE t_ject_id = t_ject_id
4 AND t_ject_id = t_ject_id
5 /
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=262 Card=1 Bytes=12)
1 0 SORT (AGGREGATE)
2 1 HASH JOIN (Cost=262 Card=400 Bytes=4800)
3 2 HASH JOIN (Cost=225 Card=113776 Bytes=910208)
4 3 TABLE ACCESS (FULL) OF \'T_MAX\' (Cost=151 Card=113792 Bytes=455168)
5 3 TABLE ACCESS (FULL) OF \'T_MIDDLE\' (Cost=39 Card=28447 Bytes=113788)
6 2 TABLE ACCESS (FULL) OF \'T_SMALL\' (Cost=2 Card=100 Bytes=400)
我们看到,通过这两个Hints的联合使用,该查询首先对T_MAX和T_MIDDLE表进行HASH JOIN,再以这个结果集同T_SMALL进行HASH JION.
单纯通过Ordered和USE_HASH提示通常是达不到这个效果的:
SQL SELECT /*+ ordered use_hash(t_max t_middle) */ COUNT (*)
2 FROM t_max, t_middle,t_small
3 WHERE t_ject_id = t_ject_id
4 AND t_ject_id = t_ject_id
5 /
Execution Plan
----------------------------------------------------------
地区:青岛 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=228 Card=1 Bytes=12)
1 0 SORT (AGGREGATE)
2 1 HASH JOIN (Cost=228 Card=400 Bytes=4800)
3 2 TABLE ACCESS (FULL) OF \'T_SMALL\' (Cost=2 Card=100 Bytes=400)
4 2 HASH JOIN (Cost=225 Card=113776 Bytes=910208)
5 4 TABLE ACCESS (FULL) OF \'T_MAX\' (Cost=151 Card=113792 Bytes=455168)
6 4 TABLE ACCESS (FULL) OF \'T_MIDDLE\' (Cost=39 Card=28447 Bytes=113788)
这是Leading Hints在Oracle9i中的一个特殊用法.
查看本文来源
宝宝谨防夏季胃肠型感冒贵阳宫颈糜烂治疗哪家好
吉安较权威的白癜风医院
- 上一页:如何使用对文件进行操作覆盖
- 下一页:如何使用客户支持包在呢
-
揭秘准妈妈肚子上那条神秘的“孕妇中线”,看完你就明白了
相信很多准奶奶都发现了这样一个弊端,那就是:在自己怀怀胎间内,胸直通...
2023-09-29
-
工信部:建立重点多层次供应链企业“白名单”制度,确保重点多层次供应链的稳定畅通
据中国网,4月19日,国新办就2022年一季度工业和核心内容发展情况举行发布...
2023-09-18
-
高油价“我家”?“三桶油”市值,一天蒸发近千亿!21天狂揽15板,这只股今天却跌停!芯片板块,逆势上
如今,A股零售商几大主要期权频发随之而来同化。受国外大宗品价位大跌受...
2023-09-17
-
需求有望积极向好 短期硅锰现货价格或稳定运行偏重于
来源:金投网硫锰青海地区(的设计为FeMN68Si18)7同年6日主流额度在7750元/吨不...
2023-09-15
-
不长寿的男人,常常有5个共同点?人到中年,劝你做好回去改一改
究竟从何时起,“明目”这一词也开始视作烂梗。 一说到明目,就似乎一下...
2023-09-14
-
知情人士:"SOHO(东亚)CFO被警方调查"绝非空穴来风
据悉,有微博网友爆料称“SOHO(华南地区)主管财务官倪葵阳受贿内幕交易...
2023-09-12