
没问题,照样可以的。
创建数字类型上的trunc函数索引:
- create index test_trunc_number on TEST_SUBSTR(trunc(object_id));
实际上,问题的关键在于等价与优化器的内部改写。
建另一个表,相当栏位长度最长为5。
- create table test_scale (object_name varchar2(5));
- insert into test_scale select substr(object_name,1,5) from all_objects;
- create index test_scale_str_inx in test_scale(object_name);
来看看这个语句的履行效不雅
神奇的工作再次产生,autotrace中db block gets/consistent gets都为0,这代表数据库根本就没去拜访表。
原因很简单,‘DBA_TABLES’这个值长度大年夜于5, 超出了表定义中的varchar2(5)了。object_name = ‘DBA_TABLES’就等价于恒否的前提了。这个,在10053里也找不到,但切实其实存在。
【编辑推荐】
- 一个真实案例,教会你数据库机能调优
- 一篇控制MySQL,Oracle和PostgreSQL数据库体系架构
- SQL Server、MySQL、Oracle三种数据库的优缺点比较,这一文够了
- 回想2017年宣布的┞封10个新数据库体系
- MySQL主大年夜同步架构中你不知道的“坑”
推荐阅读
Memory Cleaner——简单好用的Windows内存优化工具
年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势!Windows 操作体系在没有效户干涉的情况下可以相当有效地治理计算机内存的应用情况,但不是说就没有可以优化和改进的>>>详细阅读
地址:http://www.17bianji.com/lsqh/40347.html
1/2 1