暂无图片
分享
外包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
打赏 0
许超

加materialize的hint

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

高手!厉害~ 谢谢!

暂无图片 评论
暂无图片 有用 0
打赏 0
外包DBA
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle迁移到pg,一般是个啥过程?
回答 1
已采纳
Oracle迁移到PostgreSQL的过程一般包括以下步骤:评估现有的Oracle数据库,确定需要迁移的数据和应用程序。选择合适的迁移工具,例如Ora2Pg、AWSDatabaseMigration
无法从其他用户登录到 Oracle 数据库,怎么办?
回答 3
测试下ping和telnet和tnsping,看看网络和端口,监听是否正常。
oracle业务表的数据发生增删改,该表的索引会写redo,undo吗?
回答 6
自己简单测试一下,一目了然,为啥要猜,凭感觉?SQL>createtablet1(idnumber);Tablecreated.SQL>insertall2intot1values(1)3
ogg同步性
回答 2
源端和目标端的配置如下:最开始是直接将原先的服务器克隆出一个新环境,再进行ogg配置的,后配置时都是通过当前数据库的scn值expdp导出再导入到目标端进行复制同步的ogg用户,源端和目标端都拥有db
oracle 19c 节点2 pmon进程终止导致重启
回答 7
嗯,在前面就没啥重要信息了,报错从这里开始,好像是心跳出了问题,一节点被驱逐
复制一台机A的ORACLE_HOME目录 和各种日志等等文件到另一台机B,这样复制过去的,可以启动数据库吗?
回答 2
如果是两边都是WINDOWS主机,这样也可以?ORACLE安装时不是写注册表,并且将ORACLE主要程序都注册成服务么?可能还要在PROGRAMFILES里写点东西吧。光复制ORACLEHOME,OR
Oracle ADG 自动切换,怎么判断没有数据丢失?
回答 1
已采纳
ADG是通过日志进行数据同步的,只要日志能对上,数据就没问题,通过以下SQL查询主备的日志序列号是否一致,如果日志一致,数据就是没有丢失,主备数据也是一致的select'Primary:'"DBRol
ora-00304:requested INSTANCE_NUMBER is buy
回答 1
[oracle@dg]$oerrora30400304,00000,“requestedINSTANCENUMBERisbusy”//Cause:Aninstancetriedtostartbyusi
Oracle 查表结构:desc tablename 这个语句没用吗?
回答 1
已采纳
DESCtablenameSELECTDBMSMETADATA.GETDDL(‘TABLE’,‘数据表名’)FROMDUAL;怀疑你是user没找对
ogg同步报ORA-01400错误
回答 4
出错的表FCHILDNO只有该字段是主键非空约束,其他的都是可为空而且我从dsc文件中检查发现FCHILDNO具体的记录在主从库是存在的,HANDLECOLLISIONS参数的场景我知道是更新的记录从
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~