楼主: nyfor

烦请解释一下“驱动表”的概念

[复制链接]
招聘 : 数据库管理员
论坛徽章:
66
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08版主3段
日期:2012-05-15 15:24:11
21#
发表于 2004-3-4 20:26 | 只看该作者
最初由 lancelotg 发布
[B]呵呵,这么老的帖子。 [/B]


老貼子﹐好貼子。

使用道具 举报

回复
论坛徽章:
168
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-01-04 11:49:54蜘蛛蛋
日期:2011-12-05 16:08:56ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41设计板块每日发贴之星
日期:2011-07-22 01:01:02ITPUB官方微博粉丝徽章
日期:2011-06-30 12:30:16管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:33
22#
发表于 2004-3-4 23:17 | 只看该作者
顶一下

使用道具 举报

回复
论坛徽章:
5
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33蓝色妖姬
日期:2006-04-12 22:10:01会员2006贡献徽章
日期:2006-04-17 13:46:34
23#
发表于 2004-3-5 11:34 | 只看该作者
好贴子,顶一下.上个月还专门做了个实验
再问个问题,在规则方式下,a,c 两表无索引

select * from a,b ;b是驱动表,如果加了
select * /*+ordered*/ from a,b 我的实验中是a 为驱动表,这和书上说的不同
对于这个hint ORACLE 是如何判断执行次序?

使用道具 举报

回复
论坛徽章:
70
三菱
日期:2014-01-17 10:00:292014年世界杯参赛球队: 智利
日期:2014-06-05 11:54:32马上加薪
日期:2014-04-07 17:03:21马上有钱
日期:2014-02-25 21:39:36马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:11
24#
发表于 2004-6-21 17:11 | 只看该作者
恰如你的实验,ordered是采用第一个表作驱动表的

使用道具 举报

回复
论坛徽章:
4
祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:20:57ITPUB9周年纪念徽章
日期:2010-10-08 09:34:02ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
25#
发表于 2005-5-31 09:29 | 只看该作者
搬张小板凳来听课!

使用道具 举报

回复
论坛徽章:
63
19周年集字徽章-19
日期:2020-09-23 02:43:002012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-02-18 11:42:472011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
26#
发表于 2005-5-31 21:15 | 只看该作者
biti的一番话令我又学到不少!

使用道具 举报

回复
论坛徽章:
2
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010年世界杯参赛球队:意大利
日期:2010-06-24 12:51:28
27#
发表于 2005-12-19 16:40 | 只看该作者
我的口号是:老帖也要顶

使用道具 举报

回复
论坛徽章:
0
28#
发表于 2007-7-25 09:30 | 只看该作者
有一个问题:如果两个表都建了index,然后又加hint,又是怎么样的情况呢?
麻烦高手解释一下!

使用道具 举报

回复
论坛徽章:
24
生肖徽章:狗
日期:2006-09-07 10:14:43数据库板块每日发贴之星
日期:2008-07-26 01:02:20生肖徽章2007版:兔
日期:2008-10-13 11:10:11奥运会纪念徽章:铁人三项
日期:2008-10-24 13:27:21开发板块每日发贴之星
日期:2008-12-27 01:01:09生肖徽章2007版:马
日期:2009-11-18 10:45:032010新春纪念徽章
日期:2010-03-01 11:21:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51ERP板块每日发贴之星
日期:2011-05-18 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
29#
发表于 2007-10-26 12:33 | 只看该作者

Re: rule 下所谓驱动表

最初由 biti_rainy 发布
[B]还有  nested loops  and  hash  join 之份

我们以 nested  loop 为例:

如果两个表连接字段都没有索引(通常这个时候是 sort  merge /  hash  join),则驱动表会选择后者

若两个表其中有一个有索引而另外一个没有索引,则驱动表是没有索引那一个,跟顺序无关

若两个表都有索引,则驱动表为 后面 那一个表

所以事实上,RULE下,只有在两个表都存在连接字段的索引的情况下才需要考虑顺序问题
也就是小表放在后面大表放在前面(当然到底哪个好这实际上还跟  符合条件的记录数、数据分布等因素相关!!!,所以应该以实际测试为准)

如果是 CBO 下则跟顺序无关 [/B]


慢慢消化下!老贴含金量高啊

使用道具 举报

回复
论坛徽章:
273
生肖徽章2007版:猪
日期:2008-09-27 09:35:45明尼苏达森林狼
日期:2009-01-12 14:15:09生肖徽章2007版:猪
日期:2009-01-21 16:30:59布鲁克林篮网
日期:2009-03-03 14:42:32圣安东尼奥马刺
日期:2009-03-03 14:44:41生肖徽章2007版:鸡
日期:2009-03-03 21:45:52生肖徽章2007版:牛
日期:2009-03-09 14:03:42生肖徽章2007版:猪
日期:2009-03-10 21:37:00生肖徽章2007版:羊
日期:2009-03-16 10:17:11生肖徽章2007版:虎
日期:2009-03-24 21:26:52
30#
发表于 2007-10-27 12:34 | 只看该作者
是金子总会发光
嘻嘻

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表