group by placement查询转换特性导致sql执行报错-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1156356
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3760
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 13:00
个人简介

about me:oracle ace pro,optimistic,passionate and harmonious. focus on oracle,mysql and other database programming,peformance tuning,db design, j2ee,linux/aix,architecture tech,etc

文章分类

全部博文(166)

文章存档

2024年(21)

2023年(28)

2022年(43)

2020年(62)

2014年(3)

2013年(9)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2023-05-09 15:25:56

?sql和执行计划:


?问题分析

  10g正常,升级11g r2后日期转换出错,temp_value_code存多种格式字符串。

正确执行计划lt关联查询先执行,之后与外表关联。

错误执行计划是task_spring_values先与外表关联然后分组,作为view再与task_spring_label关联,导致报错。


?问题本质:

  字段用途设计不合理,其中temp_value_code作为varchar2存储普通字符、数字型字符、日期格式yyyy-mm-dd,程序中有to_number,to_date等转换,非常依赖于执行计划中表连接和条件的先后顺序。

?问题分析:
通过查看10053获得问题细节,使用了新特性group by placement:

查看是否真的有不符合格式的数据,的确有几条数据不符合格式要求,问题的本质在于设计问题:


关闭gbp隐含参数后正确:_optimizer_group_by_placement,如下所示:

阅读(386) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图