暂无图片
分享
外包DBA
2020-06-13
sql中带有with as无法缓存

---------------背景------------
【1】with xx as (……) select ……
【2】select ……

---------------已知------------
sql【1】和【2】都会直接使用share pool中第一次解析的结果(软解析)
sql【2】直接使用buffer cache中第一次缓存

---------------现象------------
sql【1】在数据库中每次执行的时间都一样!!!!
sql【2】第一次之后,每次执行时间都很短

---------------问题------------
为什么sql【1】不会使用buffer cache中的缓存?
(加上/+ result_cache/也不会缓存)
如何才能让sql【1】用上buffer cache的缓存?

收藏
分享
4条回答
默认
最新
外包DBA

自己在家做实验with as是可以用data buffer的缓存的,但是生产库有个sql比较复杂,用了with as后就无法缓存了,请问大佬们with as (……)中有什么会引起无法使用缓存吗?

暂无图片 评论
暂无图片 有用 0
许超

加materialize的hint

暂无图片 评论
暂无图片 有用 0
外包DBA

高手!厉害~ 谢谢!

暂无图片 评论
暂无图片 有用 0
外包DBA
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏