[20202117]Function based indexes and cursor sharing.txt --//昨天测试给sql打补丁在11g,根据链接介绍https://hourim.wordpress.com/2020/10/24/function-based-indexes-and-cursor-sharing/ --//视乎从19c开始即使设置CURSOR_SHARING=FORCE,对于函数索引可能不需要我介绍的这样操作。 --//自己测试看看,加强记忆: 1.环境: TTT@192.168.2.7:1521/orcl> select banner_full from v$version; BANNER_FULL ---------------------------------------------------------------------- Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.3.0.0.0 2.建立测试例子: create table t1 as select rownum n1, 'xy' || rownum vc1, mod(rownum, 10) n2 from dual connect by level <= 1e4; create index idx_t1 on t1(substr(vc1,3,1)); alter session set cursor_sharing=force; select * from t1 where substr(vc1,3,1)='5'; TTT@192.168.2.7:1521/orcl> @ dpc '' '' PLAN_TABLE_OUTPUT ------------------------------------- SQL_ID djypd1v8qjawh, child number 0 ------------------------------------- select * from t1 where substr(vc1,:"SYS_B_0",:"SYS_B_1")=:"SYS_B_2" Plan hash value: 3491035275 ----------------------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | ----------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 3 (100)| | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| T1 | 100 | 1400 | 3 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | IDX_T1 | 40 | | 2 (0)| 00:00:01 | ----------------------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id): ------------------------------------------------------------- 1 - SEL$1 / T1@SEL$1 2 - SEL$1 / T1@SEL$1 Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("T1"."SYS_NC00004$"=:SYS_B_2) --//确实如此,对于一些实际生产系统确实是一个大的进步。 TTT@192.168.2.7:1521/orcl> alter session set optimizer_features_enable='12.2.0.1'; Session altered. TTT@192.168.2.7:1521/orcl> select * from t1 where substr(vc1,3,1)='z'; no rows selected TTT@192.168.2.7:1521/orcl> @ dpc '' '' PLAN_TABLE_OUTPUT ------------------------------------- SQL_ID djypd1v8qjawh, child number 1 ------------------------------------- select * from t1 where substr(vc1,:"SYS_B_0",:"SYS_B_1")=:"SYS_B_2" Plan hash value: 3617692013 --------------------------------------------------------------------------- | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | --------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 10 (100)| | |* 1 | TABLE ACCESS FULL| T1 | 100 | 1400 | 10 (0)| 00:00:01 | --------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id): ------------------------------------------------------------- 1 - SEL$1 / T1@SEL$1 Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(SUBSTR("VC1",:SYS_B_0,:SYS_B_1)=:SYS_B_2) --//全表扫描,无法使用函数索引。12c还没有改进。18c已经支持这个功能。不知道那个隐含参数控制这种引为。
[20202117]Function based indexes and cursor sharing.txt
来源:这里教程网
时间:2026-03-03 16:16:48
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle删除表中数据(delete与truncate)
oracle删除表中数据(delete与truncate)
26-03-03 - SQL Server数据库mdf文件中了勒索病毒*.mdf.[helpbackup@email.tg].Devos
- G006-ORACLE-INS-SIFS-01 ORACLE 19C SIFS Ins ON RHEL 8.2
- G008-ORACLE-DG ORACLE 19C Active Data Guard DML Redirection
- 查看oracle数据库中,哪些表的字段是null值比较多
查看oracle数据库中,哪些表的字段是null值比较多
26-03-03 - Oracle数据库服务器dbf文件中了勒索病毒,扩展名被篡改为.CC7H
Oracle数据库服务器dbf文件中了勒索病毒,扩展名被篡改为.CC7H
26-03-03 - 数据库范式
数据库范式
26-03-03 - 沙龙回顾丨开发者掌握这些背后的技术路径,可助力企业智能化升级
沙龙回顾丨开发者掌握这些背后的技术路径,可助力企业智能化升级
26-03-03 - Oracle的awr报告分析
Oracle的awr报告分析
26-03-03 - DDD 在京东 DevOps 项目协作领域的落地实战
DDD 在京东 DevOps 项目协作领域的落地实战
26-03-03
