假设有 表A和表B ,通过 C1做内连接。
也就是 select * from A inner join B on A.C1 =B.C1 where xxxx
对于表B来说 C1是 pk。想问一下 B的执行计划是全表检索 还是 pk检索。
A大概 从几万条中检索100条 。B表有几千万。我这的结果是全表检索。求高手解释下原理。
另,这种情况如何处理比较好?用hint么?还是分两步检索?
也就是 select * from A inner join B on A.C1 =B.C1 where xxxx
对于表B来说 C1是 pk。想问一下 B的执行计划是全表检索 还是 pk检索。
A大概 从几万条中检索100条 。B表有几千万。我这的结果是全表检索。求高手解释下原理。
另,这种情况如何处理比较好?用hint么?还是分两步检索?
解决方案 »
- MDX中怎样判断等于0.00?
- ORA-02291:我遇到这个错误很奇怪!
- oracle高手进来指点一二啊,很简单的问题
- 大家有人知道什么是 "DataBase Trimming" 么?
- 在xp下装的oracle10,ORA-12528监听程序:所有适用都不允许建立新的连接。(请高手指点一下怎么解决)
- 大侠们,大侠们,帮我看看这个经典的想法能不能实现啊?
- sql语句:如何统计1月至5月每时段的发案数量,每时段是指将24小时分割位12段
- 如何更改表中的字段
- 跪地拜求10g的em和lsnrctl的问题
- Oracle的一个SELECT语句把服务器弄coredump了
- oracle初学者求问大神有关执行效率的问题
- 怎么把ID相同的数据合并成一行了 着急啊,求大神
不过还 是看你where后面的条件
重新设计了下数据和逻辑避开了这个问题。但是发现一个不理解的事。B表其实是个view。内容为俩个表数据的union all。如果在我的sql里写view,就全表扫,如果把view的sql直接写在b的位置,就会走pk的索引。
这是怎么回事?