索引
bisal(Chen Liu)
这个作者很懒,什么都没留下…
展开
-
创建索引的两种方式比对
有一个应用,需要创建索引,创建索引一般有两种方法,一种是CREATE INDEX ...;一种是CREATE INDEX ... ONLINE;字面意思上看,一个是在线,一个是非在线,有什么不同?1.语句执行时间的不同 创建测试表, 使用非在线创建索引,用时00.06秒, 使用在线方式创建索引,用时00.32秒, 表只有一条数据,ONLINE是非ONLINE用时的5倍以上了。2.阻塞对象的不原创 2017-06-03 23:36:14 · 5851 阅读 · 0 评论 -
非分区表是否可以创建分区索引?
有同事问一个问题,一张非分区表,是否可以创建分区索引?答案是可以,但分区索引的类型有限制。MOS这篇文章给出了答案,以及一些例子,What Is The Global Partitioned Index On Non Partitioned Table? (文档 ID 1612359.1)。依据文章中的示例,以下实验操作,1. 创建测试表,TEST表有四条测试数据,2. 首先创建全局哈希分区索引,原创 2017-07-08 09:42:34 · 4387 阅读 · 0 评论 -
有索引却不用的两个场景
一直有朋友问,是不是表建了索引,一定会使用索引,在RBO时代,访问效率会参考一些规则,优先级高的,认为效率就高,例如索引就比全表扫描效率高,但CBO时代,则会以成本为依据,谁的成本低,谁的效率就高,这样更科学。建了索引,SQL却未使用索引,有很多情况,何况我不精通,所以不能一一枚举出来,但结合昨天广分一位兄弟的问题,列举出两个场景,提供一些思路和方法。场景一:正确的有索引却不用创建测试表,插入一条原创 2017-09-08 08:34:20 · 790 阅读 · 0 评论 -
探索索引的奥秘 - 索引的属性
索引是一种奇特的对象,他就像一把双刃剑,用好了可以提高性能,用不好就可能会影响性能,但如何才能用好索引?可能我们日常工作中,同事、朋友,甚至我自己会问这种问题,我们创建了索引,为什么这条SQL未用这索引?创建的索引越多,应用是不是就会越快?只要SQL运行慢,一定是索引有问题?应用是否用索引,是谁来决定的?是否有了索引,应用就一定不会有性能问题?...其实这些问题,都蕴含着丰富的信息,就像学习Ora原创 2017-12-19 14:36:55 · 1055 阅读 · 0 评论 -
探索索引的奥秘 - 有索引就一定会用么?
上一篇文章《探索索引的奥秘 - 索引的属性》,我们了解了索引的属性,回顾一下,> 索引设置为unusable,会有以下特点, 1. 索引设置为unusable,此时会删除索引段。 2. 索引处于unusable期间,对表数据做DML操作,此时不维护索引。 3. 索引处于unusable期间,优化器会忽略此索引。 4. 索引处于unusable期间,由于不需要维护索引,因此可原创 2017-12-19 15:16:13 · 2035 阅读 · 0 评论 -
CBO如何选择相同cost的索引
ACOUG年会杨长老的演讲中,曾提到一个问题,一条SQL语句,两种执行计划的cost值相同,CBO是如何选择执行计划? 翻译一下问题,创建测试表数据,SQL> create table z (a number, b number);Table created. SQL> begin 2 for i in 1 .. 10000 loop 3...原创 2018-12-10 12:47:44 · 414 阅读 · 0 评论