问题描述
大家好,
Oracle中的 “带有子句” 将选择查询的结果存储在缓存中,并将显示来自缓存的结果以下次显示同一语句的记录?
除了使用函数使用类型对象返回表之外,“带有子句” 的优点和替代方法是什么?
谢谢
Oracle中的 “带有子句” 将选择查询的结果存储在缓存中,并将显示来自缓存的结果以下次显示同一语句的记录?
除了使用函数使用类型对象返回表之外,“带有子句” 的优点和替代方法是什么?
谢谢
专家解答
使用子句存储缓存并不是强制性的。这是一个没有的例子,然后我暗示它会强迫它这样做
Waving子句就像其他任何SQL构造一样-工具箱中的另一个工具可以帮助您编写良好的SQL。它可以通过在部分中构建SQL来提供结构和维护方面的好处。它可以递归地用于以任何其他方式处理更难编码的查询。
那里有很多选择。
SQL> create table t 2 as 3 select * 4 from dba_objects; Table created. SQL> SQL> set feedback only SQL> with xyz as 2 ( 3 select owner, count(*) c 4 from t 5 group by owner 6 ) 7 select * from xyz; 32 rows selected. SQL> SQL> set feedback on SQL> select * from table(dbms_xplan.display_cursor); PLAN_TABLE_OUTPUT ---------------------------------------------------------------------------------------------------------------------------------- SQL_ID fzhrfc593c2hu, child number 0 ------------------------------------- with xyz as ( select owner, count(*) c from t group by owner ) select * from xyz Plan hash value: 47235625 --------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 422 (100)| | | 1 | HASH GROUP BY | | 32 | 192 | 422 (2)| 00:00:01 | | 2 | TABLE ACCESS FULL| T | 77225 | 452K| 418 (1)| 00:00:01 | --------------------------------------------------------------------------- 15 rows selected. SQL> SQL> set feedback only SQL> with xyz as 2 ( 3 select /*+ materialize */ owner, count(*) c 4 from t 5 group by owner 6 ) 7 select * from xyz; 32 rows selected. SQL> SQL> set feedback on SQL> select * from table(dbms_xplan.display_cursor); PLAN_TABLE_OUTPUT ---------------------------------------------------------------------------------------------------------------------------------- SQL_ID 35fqjpxwg3649, child number 0 ------------------------------------- with xyz as ( select /*+ materialize */ owner, count(*) c from t group by owner ) select * from xyz Plan hash value: 1146019360 ---------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 424 (100)| | | 1 | TEMP TABLE TRANSFORMATION | | | | | | | 2 | LOAD AS SELECT (CURSOR DURATION MEMORY)| SYS_TEMP_0FD9D6659_22ECE8 | | | | | | 3 | HASH GROUP BY | | 32 | 192 | 422 (2)| 00:00:01 | | 4 | TABLE ACCESS FULL | T | 77225 | 452K| 418 (1)| 00:00:01 | | 5 | VIEW | | 32 | 2528 | 2 (0)| 00:00:01 | | 6 | TABLE ACCESS FULL | SYS_TEMP_0FD9D6659_22ECE8 | 32 | 192 | 2 (0)| 00:00:01 | ---------------------------------------------------------------------------------------------------------------------- 19 rows selected. SQL>复制
Waving子句就像其他任何SQL构造一样-工具箱中的另一个工具可以帮助您编写良好的SQL。它可以通过在部分中构建SQL来提供结构和维护方面的好处。它可以递归地用于以任何其他方式处理更难编码的查询。
那里有很多选择。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
597次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
576次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
491次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
474次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
459次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
434次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
434次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
419次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
367次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
358次阅读
2025-04-15 14:48:05