ITPub博客

首页 > 数据库 > Oracle > Oracle 表连接 筛选字段执行计划不正确

Oracle 表连接 筛选字段执行计划不正确

原创 Oracle 作者:std1984 时间:2013-12-03 14:59:47 0 删除 编辑
问题: 表SUMM_ADV_CONSUME是分区表,发出一个查询如下
select count(*) from  dates T434858, SUMM_ADV_CONSUME T434932 where  T434858.DATE_ID = T434932.DATE_ID and T434858.DATE_NAME = '20131202'

产生的执行计划扫描很多分区表,正常情况是一个分区表。使用同样的逻辑查询,用另个筛选条件date_name2

select count(*) from  dates T434858, SUMM_ADV_CONSUME T434932 where  T434858.DATE_ID = T434932.DATE_ID and T434858.DATE_NAME2 = to_date('20131105', 'yyyymmdd') 
只扫描一个分区表,执行计划正确。 分析两个字段发现date_name2上有建唯一索引。 对date_name创建唯一索引也能得出正确的执行计划。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16582684/viewspace-1062038/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Ubuntu 搜索安装包
请登录后发表评论 登录
全部评论

注册时间:2008-12-29

  • 博文量
    171
  • 访问量
    1401344