[20210202]计算标量子查询缓存数量2.txt --//昨天做了计算标量子查询缓存数量的测试,实际上还有1个简单的方法测试,就是看执行计划, --//唯一的方式就是打开statistics_level = all,或者设置提示gather_plan_statistics. --//通过例子说明: 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.测试: create table t1 tablespace users as with generator as ( select --+ materialize rownum id from all_objects where rownum <= 3000 ) select /*+ ordered use_nl(v2) */ rownum n1, lpad(rownum,16,'0') v16, lpad(rownum,32,'0') v32 from generator v1, generator v2 where rownum <= 16384 ; insert /*+ append */ into t1 select * from t1; commit; begin dbms_stats.gather_table_stats( user, 't1', cascade => true, estimate_percent => null, method_opt => 'for all columns size 1' ); end; / create or replace package pack1 as g_ct number(10) := 0; function f_n(i in number) return number; function f_v(i in varchar2) return varchar2; function f_vn(i in varchar2) return number; end; / create or replace package body pack1 as function f_n(i in number) return number is begin dbms_application_info.set_client_info(userenv('client_info')+1 ); return i; end; function f_v(i in varchar2) return varchar2 is begin dbms_application_info.set_client_info(userenv('client_info')+1 ); return i; end ; function f_vn(i in varchar2) return number is begin dbms_application_info.set_client_info(userenv('client_info')+1 ); return length(i); end ; end; / 3.测试: SCOTT@book> select count(distinct x) from ( select /*+ gather_plan_statistics no_merge */ (select pack1.f_n(n1) from dual) x from t1) ; COUNT(DISTINCTX) ---------------- 16384 SCOTT@book> @ dpc '' '' PLAN_TABLE_OUTPUT ------------------------------------- SQL_ID cvqr6u5a0yq15, child number 0 ------------------------------------- select count(distinct x) from ( select /*+ gather_plan_statistics no_merge */ (select pack1.f_n(n1) from dual) x from t1) Plan hash value: 2761048924 ------------------------------------------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers | OMem | 1Mem | Used-Mem | ------------------------------------------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | | | 81 (100)| | 1 |00:00:00.31 | 275 | | | | | 1 | FAST DUAL | | 31744 | 1 | | 2 (0)| 00:00:01 | 31744 |00:00:00.01 | 0 | | | | | 2 | SORT AGGREGATE | | 1 | 1 | 13 | | | 1 |00:00:00.31 | 275 | | | | | 3 | VIEW | VW_DAG_0 | 1 | 32768 | 416K| 81 (3)| 00:00:01 | 16384 |00:00:00.31 | 275 | | | | | 4 | HASH GROUP BY | | 1 | 32768 | 416K| 81 (3)| 00:00:01 | 16384 |00:00:00.31 | 275 | 3072K| 2891K| 1843K (0)| | 5 | VIEW | | 1 | 32768 | 416K| 79 (0)| 00:00:01 | 32768 |00:00:00.29 | 275 | | | | | 6 | TABLE ACCESS FULL| T1 | 1 | 32768 | 160K| 79 (0)| 00:00:01 | 32768 |00:00:00.01 | 275 | | | | ------------------------------------------------------------------------------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id): ------------------------------------------------------------- 1 - SEL$3 / DUAL@SEL$3 2 - SEL$C33C846D 3 - SEL$5771D262 / VW_DAG_0@SEL$C33C846D 4 - SEL$5771D262 5 - SEL$2 / from$_subquery$_001@SEL$1 6 - SEL$2 / T1@SEL$2 29 rows selected. --//id=2,starts=31744,说明调用函数次数是31744. --//16384*2-31744 = 1024 --//hash table size=1024.
[20210202]计算标量子查询缓存数量2.txt
来源:这里教程网
时间:2026-03-03 16:24:36
作者:
编辑推荐:
- Oracle 12c SCN推进方法汇总(二)之EVENT03-03
- [20210202]计算标量子查询缓存数量2.txt03-03
- 修改sys密码报错:ORA-01994: Password file missing or disabled03-03
- 记一次 JVM OOM 实战优化03-03
- 趣店容器进化史03-03
- 延迟密码验证特性引起的数据库HANG死及宕机03-03
- 进阶:玩转 CSS 变量03-03
- “秒杀”问题的数据库和SQL设计03-03
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 延迟密码验证特性引起的数据库HANG死及宕机
延迟密码验证特性引起的数据库HANG死及宕机
26-03-03 - 空格导致的impdp时的ORA-07445错误
空格导致的impdp时的ORA-07445错误
26-03-03 - Oracle TX锁的处理
Oracle TX锁的处理
26-03-03 - oracle 更改分区表数据 ora-14402
oracle 更改分区表数据 ora-14402
26-03-03 - ORACLE rman与RMAN-00054&ORA-09945
ORACLE rman与RMAN-00054&ORA-09945
26-03-03 - Oracle 12.2之后补丁RU RUR概要
Oracle 12.2之后补丁RU RUR概要
26-03-03 - unable to extend table SYS.AUD$ by 1024 in tablespace SYSTEM
- 【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
【BUILD_ORACLE】使用ASMLib包搭建ASM磁盘
26-03-03 - 干货 | 设计师必备中国风配色卡,快来收藏
干货 | 设计师必备中国风配色卡,快来收藏
26-03-03 - Thread 1 cannot allocate new log
Thread 1 cannot allocate new log
26-03-03
