一个有头发的程序猿 2022-01-10 16:25 采纳率: 0%
浏览 277

oracle inner join 链接 多对多 效率优化

例: select a.prod_id,a.prod_name,b.price,b.data_date from prod a inner join prod_price b on a.prod_id = b.prod_id
例如这个例子 在用 inner join 时,两个表都有多条数据,存储过程效率特别慢,有什么好方法吗?

  • 写回答

4条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-01-10 17:11
    关注

    这哪里多对多了?你的prod里,难道prod_id不是主键?会有重复值?
    在oracle里,极少使用join去关联表,因为oracle的CBO会进行自动优化,除非是要做full join。
    像你这个例子,在oracle中的常规sql写法应该为

    select a.prod_id,a.prod_name,b.price,b.data_date from prod a , prod_price b where a.prod_id = b.prod_id;
    

    如果这个sql效率慢,那就说明你这两个表上的索引没建或者建得不对,另外,还要查看下prod_price是否存在高水位的情况

    评论

报告相同问题?

问题事件

  • 创建了问题 1月10日