暂无图片
Oracle 11g 同一条sql语句,数据没有改变的情况下,两次语句查询结果不一致
我来答
分享
三石
2021-10-31
Oracle 11g 同一条sql语句,数据没有改变的情况下,两次语句查询结果不一致

已收集最新统计信息,两次执行计划一样,第一次查四条,第二次以后都是0条








我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
三石

我分别做了三个实验,
第一个实验,收集本库的统计信息,执行sql语句,结果还是执行一次有,执行第二次没有
第二个实验,将这两个表的迁移到别的数据库,执行多次sql语句,一直存在数据
第三个实验,在原用户下,用create table as select 的方式,建两个新表,没收集统计信息,执行多次,还是有效数据

暂无图片 评论
暂无图片 有用 0
DarkAthena

尝试调整下sql的空格及回车,如果有注释就把注释也删掉。我之前有遇到过类似的情况,但和你这个现象有点区别,我遇到的是某行的最后面有几个tab空格或者有一串中文注释,理论上这些字符根本就不会被解析到,但数据就是查不出来,把这些玩意一删就查出来了。当时的环境可100%复现,哪怕数据在持续增长,一样也查不出来,但是换个数据库或者复制sql中引用到的相同表就复现不了了,哪怕我只是在注释的中文中间再敲个空格,它也能查出数据。一度怀疑是这个sql_id的执行计划出了问题,但没去尝试把执行计划删除,或许你也可以试一下删除对应sql_id的执行计划

暂无图片 评论
暂无图片 有用 0
赵勇

加/*+ gather_plan_statistics */的提示后,也执行两次,每次执行后,查看 select * from table(dbms_xplan.display_cursor('','','allstats last'));  看看哪一步的A-ROWS有变化。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏