第十四掌 使用基于函数的索引
前面谈到任何对列的操作都可能导致全表扫描,例如:
select * from emp where substr(ename,1,2)=’SM’;
但是这种查询在客服系统又经常使用,我们可以创建一个带有substr函数的基于函数的索引,
create index emp_ename_substr on eemp ( substr(ename,1,2) );
这样在执行上面的查询语句时,这个基于函数的索引将排上用场,执行计划将是(INDEX RANGE SCAN)。
第十五掌 基于函数的索引要求等式匹配
上面的例子中,我们创建了基于函数的索引,但是如果执行下面的查询:
select * from emp where substr(ename,1,1)=’S’
得
到的执行计划将还是(TABLE ACCESS
FULL),因为只有当数据列能够等式匹配时,基于函数的索引才能生效,这样对于这种索引的计划和维护的要求都很高。请注意,向表中添加索引是非常危险的
操作,因为这将导致许多查询执行计划的变更。然而,如果我们使用基于函数的索引就不会产生这样的问题,因为Oracle只有在查询使用了匹配的内置函数时
才会使用这种类型的索引。
第十六掌 使用分区索引
在用分析命令对分区索引进行分析时,每一个分区的数据值的范围信息会放入Oracle的数据字典中。Oracle可以利用这个信息来提取出那些只与SQL查询相关的数据分区。
例如,假设你已经定义了一个分区索引,并且某个SQL语句需要在一个索引分区中进行一次索引扫描。Oracle会仅仅访问这个索引分区,而且会在这个分区上调用一个此索引范围的快速全扫描。因为不需要访问整个索引,所以提高了查询的速度。
第十七掌 使用位图索引
位图索引可以从本质上提高使用了小于1000个唯一数据值的数据列的查询速度,因为在位图索引中进行的检索是在RAM中完成的,而且也总是比传统的B树索引的速度要快。对于那些少于1000个唯一数据值的数据列建立位图索引,可以使执行效率更快。
分享到:
相关推荐
- 对于频繁使用的JOIN操作中的关联列建立索引。 - 考虑使用复合索引来同时优化多个列的查询性能。 2. **减少全表扫描:** - 使用WHERE子句过滤记录,避免不必要的全表扫描。 - 使用适当的索引来加速查询。 3. ...
五、数据库SQL优化之IN和NOT IN操作符 5. IN和NOT IN操作符也要慎用,以免引擎放弃使用索引而进行全表扫描。 六、数据库SQL优化之EXISTS代替IN操作符 6. 使用EXISTS代替IN操作符,可以提高查询效率。 七、数据库...
### SQL Server 建立索引相关知识点 #### 一、建立索引 索引是在数据库表中的数据列上创建的一种特殊的数据结构,其目的是为了加快数据检索速度。索引类似于书籍的目录,通过索引可以快速定位到所需的数据行,从而...
- 索引维护:索引会增加写操作的开销,频繁更新的列不宜建立索引。 - 存储空间:索引需要额外的存储空间,应权衡性能提升与存储成本。 四、索引优化策略 1. 唯一性:索引的唯一性有助于提高查询效率,避免冲突。 2....
SQL 命令优化小窍门 SQL 优化是数据库性能优化的关键部分,好的 SQL 命令优化可以大大提高查询速度和数据库性能。在 SQL 命令优化中,索引的建立和使用非常关键。本文总结了一些常用的 SQL 命令优化小窍门,旨在...
在建立索引时,需要考虑数据类型和保存这些数据的 column。同时,也需要考虑数据库可能用到的查询类型以及使用的最为频繁的查询类型。对于 column 保存了高度相关的数据,并且常常被顺序访问时,最好使用 clustered ...
- **全书总结**:本书不仅是一本关于SQL优化的技术书籍,更是引导读者进入SQL优化世界的指南。通过丰富的案例、实战经验和深入的技术探讨,帮助读者建立起从宏观到微观的优化思路,并最终达到“爽”的境界。 - **...
SQL优化中的索引是提升数据库查询性能的关键技术。索引可以理解为数据库中的一种特殊目录,帮助快速定位和访问数据。SQL Server提供了两种主要类型的索引:聚集索引(Clustered Index)和非聚集索引(Nonclustered ...
通过对《基于Oracle的SQL优化》一书的学习,我们可以了解到SQL优化不仅是数据库管理员的基本技能之一,也是每个开发人员都应该掌握的重要知识。通过采用合适的方法和技术,我们可以在很大程度上提升数据库系统的整体...
### DB2之SQL优化浅析 #### 一、为什么要做SQL优化 在DB2数据库管理中,SQL优化是一项至关重要的工作。SQL语句是应用程序与数据库之间交互的主要方式,其性能直接影响到整体应用的响应速度及数据库服务器的负载。...
**基于索引的SQL语句优化**是提升数据库查询效率的有效手段之一,它通过合理设计和利用索引,减少数据检索的时间消耗,从而提升整体系统性能。 #### 核心概念与原则 **降龙十八掌**,这里被比喻成18条关键的优化...
### SQL优化、索引的建立和运用以及多表连接建索引的相关知识点 #### SQL优化概述 在数据库系统中,SQL语句的执行效率对于系统的响应时间和资源利用有着至关重要的影响。合理的SQL优化不仅可以显著提升查询速度,还...
### DB2之SQL优化浅析 #### 为什么要做SQL优化 在DB2数据库管理系统中,SQL语句是操作数据库的主要手段。任何应用程序对数据库的操作最终都会转化为SQL语句。因此,SQL语句的执行效率直接影响到数据库系统的整体...
优化过程中需要考虑全文索引的存储和管理方式,这些索引存储在SQL Server外部,大部分的全文查询处理由MSSearch完成。因此,如何合理配置和使用MSSearch是优化全文索引性能的关键。 在全文索引的组件结构中,关系...
如果直接删除并重新创建聚集索引,那么所有的非聚集索引都需要被删除并重新建立两次,因为它们依赖于聚集索引的键来定位数据行。但是,通过`DROP_EXISTING`,你可以避免这个昂贵的过程,因为它会更新现有索引,而...
- 对于频繁查询的字段建立索引。 **2. 选择合适的数据类型** - 选择最适合数据特性的数据类型,以减少存储空间的使用并提高性能。 **3. 限制返回结果集** - 使用LIMIT关键字来限制查询结果的行数。 **4. 使用JOIN...
SQL优化是一个复杂的过程,其中加索引是提升数据库性能的有效手段之一。本文旨在探讨基于索引的SQL优化策略,通过一系列实践建议,即所谓的“降龙十八掌”,帮助开发者理解和应用索引优化,以解决系统性能问题。 ...
### SQL Server 数据库优化之50种方法 在IT领域,特别是对于数据库管理与优化方面,SQL Server作为一款广泛使用的数据库管理系统,其性能优化一直是DBA(数据库管理员)和技术团队关注的重点。本文将根据给定的信息...