2.4.1    实例分析 1.  9-1分裂分析 下面我们通过一些实例的操作来进一步深入分析9-1分裂的过程吧,这将是一件很美妙的过程,就像看到一棵树生长一样。具体步骤如下: 步骤1  创建一个新表alex_t05及索引,我们主要考察索引idx_alex_t05_id: SQL> create table alex_t05 (id number, name varchar2(100)); […]

2.4 索引分裂 通过前面三节的介绍,相信各位读者已经能对索引的设计及其影响因素有了一定的把握,接下来两节我们将进行到索引的新建后的维护阶段。先想一想,索引为什么需要维护?因为它不能保证高效的查询和DML操作,甚至成了一种拖累,或者大家都很“喜欢”它,它有些不堪重负了。这些问题对我们来说都是不能置之不理的,否则宁可不建索引。 知其然必知其所以然,要想解决索引的问题,需要先知道这些问题是怎么产生的。 […]

2.3.6 索引被无视 说一千道一万,索引创建了就是要用的,可偏偏很多时候,索引被SQL语句无视了,没有被用上,此时往往需要DBA的介入进行优化。抛开索引本身的问题不说,哪些情况下,索引会被无视呢?下面我们展开几个比较典型的场景来讨论一下吧。准备工作步骤具体如下: 步骤1  创建一下相关的表和索引: SQL> create table alex_t02 as 2   select rownu […]

2.3.4    复合索引 1.  复合索引设计 在工作中,我们时常会被问及一个问题:“我将如何选择索引列来建立复合索引呢?”举一个例子来说说看吧。 现在有一张表的三个列:A、B、C,在日常的业务应用中,会用过两两组合的查询,即:A and B,B and C,A and C,将如何建复合索引呢?这是一个很不明确的需求,我们很难以此为据来作出判断,需要进一步跟需求方沟通。 经过数据量和数据分布等情 […]

2.3.4    数据存储的影响 1.  聚簇因子较好的情况 接下来通过一个实例来验证一下聚簇因子对索引性能的影响吧。先考察聚簇因子较好的情况,此时CLUSTERING_FACTOR的数值将会比较小。下面例子中,我们按照前面提到的“111222333”的方式进行数据入库。 步骤1  清空表alex_t03的数据: SQL> truncate table alex_t03; 步骤2  按照“1 […]

2.3.3 索引聚簇因子 再次回到上一节抛出的问题,什么时候应该用索引?前面我们分析过了索引选择度和数据分布的问题,而另一个会影响索引使用的关键因素就是索引聚簇因子(INDEX CLUSTERING FACTOR)。 什么是索引聚簇因子呢?索引聚簇因子是指按照索引列值进行了排序的索引条目顺序和其对应表中数据行顺序的相似程度。比较理想的状况就好比一对双胞胎,其相似程度是非常大的,此时索引使用是非常高 […]

2.3.2 数据分布的影响 1.  均匀分布的情况 当数据分布是完全均匀的,则会发现理想选择度和实际选择度是相等的,也就是说理想选择度是一种完全理想化的数据分布状态。当CBO优化器在计算索引扫描成本的时候,如果缺少索引列直方图信息,则会认为数据是完全均匀分布的。这个时候无论COL的取值是多少,其选择度都是一样的,即理想选择度等于实际选择度。此时成本的比较上,通过索引扫描再回表取数要远小于全表扫描, […]

2.3 索引设计优化 现在,我们知道了B树索引的结构特点,也了解到其对查询和排序优化的意义,但是这并不代表我们就能建好用好索引了。在实际工作中,是不是还是会遇到走了索引反而查询变慢的情况呢?虽然说不是所有的情况下索引扫描都是优于全表扫描的,但是对于一套设计成熟的系统来说,索引扫描往往是值得坚持的,应该定期进行全库SQL语句执行计划的审查,抓出全表扫描的SQL进行优化。 说一千道一万,我们创建索引就 […]

2.2.4 max()与min() 前面的章节中,我们提到COUNT(*)的聚合查询可以利用索引扫描而规避回表取数的动作,而且索引扫描过程也可以选择INDEX FAST FULL SCAN的高效方式。现在,我们再来说说另一种聚合查询min()与max()。这个和索引有关系吗,能用到索引进行优化吗?也许有读者会说:“是的,但索引列必须要有NOT NULL的约束,或者在查询过程中过滤掉NULL。”这个 […]

2.2.3 降序索引 看到这里,有的读者可能会问到,我们一直都是在说升序的情况,如果要求降序查询呢,情况是否会不一样呢?是的,会不一样。我们接下来将围绕这个索引降序的话题来说一说。 我们可以从单列索引和复合索引两个维度来进行阐述。当然,在阐述之前,先介绍一个新的概念,就是“降序索引”。 1.  降序索引 什么是降序索引呢?其实降序索引也是B树索引,只是将通常意义上的B树索引中的存储方式从升序变成了 […]

切换到手机版