sql查询优化

qq_38071004 2018-03-12 04:24:05
现在有一个查询语句:
select col1,col2,col3
from a,b,c
where a.id = b.id
and a.id = c.id

b,c是两个视图,查询时间n分钟,加了一个条件:
b.id=c.id

查询不到2秒,没加条件之前感觉已经消除了笛卡尔积,但是为什么效率这么低。

...全文
303 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_38071004 2018-03-12
  • 打赏
  • 举报
回复
谢啦,看了执行计划,他先连接了两个视图b、c,bc之间没有添加连接条件所以产生了笛卡尔积(新人小白没研究过执行计划,查了下百度看到了),条件改为:
b.id=c.id and a.id=b.id
结果查询没问题了(又学到了
qq_38071004 2018-03-12
  • 打赏
  • 举报
回复
补充一下,两个视图一个是物化视图,一个是dblink连另一个库查出来的(取的那个库里的一个视图的几个列)
liu志坚 2018-03-12
  • 打赏
  • 举报
回复
你对比下加了条件前后的执行计划吧~~ pl/sql里面选中sql按F5

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧