Oracle 索引应用提示
FORM:http://xinxiangsui2018.blog.163.com/blog/static/10609785620106933949412/
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
相关推荐
### Oracle索引使用样例详解 #### 一、索引并行创建 在Oracle数据库中,并行创建索引可以显著提高创建索引的速度,尤其是在处理大量数据时。下面的SQL语句展示了如何并行创建一个索引: ```sql CREATE INDEX IDX_GD...
### Oracle SQL优化与索引提示应用案例解析 在Oracle数据库管理与优化的实践中,SQL语句的执行效率直接影响着系统的响应速度与资源消耗。当面对复杂的查询或批量更新操作时,合理利用索引提示(Index Hint)成为...
提示:DBA 经常用 REBUILD 来重建索引可以减少硬盘碎片和提高应用系统的性能。Oracle8i 以后的新功能可以对索引的无用空间进行合并,它由下面命令完成:ALTER INDEX [user.]index COALESCE; 例如:ALTER INDEX ...
**Oracle索引详解** Oracle索引是数据库管理系统中用于提高查询效率的重要数据结构。它的工作原理类似于书籍的目录,允许数据库系统快速定位到所需的数据行,而无需扫描整个表。索引的存在使得对大量数据的查找、...
- 减少RB的I/O:通过使用`CACHE`和`FULL`提示对源表执行全表扫描(FTS),使其尽可能多地进入buffer cache。 - 减少RC的I/O:设置更大的`SORT_AREA_SIZE`参数(若未使用PGA_AGGREGATE_TARGET则直接设置)。 - ...
本文将详细探讨Oracle中的各种强制索引技巧及其应用场景。 #### 一、`/*+ALL_ROWS*/` - **描述**:此提示用于确保查询返回所有行。 - **应用场景**: - 当需要获取所有数据行时使用。 - 示例:`SELECT /*+ALL_...
综上所述,正确使用Oracle索引对于提高“军卫一号”这类医院信息系统的运行性能至关重要。理解索引的工作原理,结合实际业务需求和查询模式,定期评估和调整索引策略,才能确保数据库系统的高效运行。同时,保持统计...
### Oracle索引介绍 在数据库管理系统(DBMS)中,索引是提高数据检索速度的重要工具之一。Oracle作为一款广泛使用的数据库系统,在索引管理方面提供了丰富的...希望以上内容能帮助读者更好地理解和应用Oracle索引。
在Oracle数据库中,强制索引是一种技术,允许数据库管理员或开发人员在特定查询中指定必须使用的索引,即使Oracle优化器认为全表扫描更有效。强制索引有时可以帮助提升查询性能,尤其是在对业务理解深入且确信索引能...
### Oracle索引详述 #### 一、理解Oracle索引 **索引的概念:** 索引在Oracle数据库中扮演着非常重要的角色,它是一种物理结构,用于加速对表中数据的检索过程。索引通常由一列或多列的值构成,并包含指向存储...
如果设置为"rule",则不论表是否被分析,都会使用RBO,除非在SQL语句中使用提示(hint)强制使用CBO。 其次,检查索引列是否出现在查询的WHERE子句中。如果索引列不在WHERE条件中,或者使用了非等值比较(如LIKE、...
索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在案例精讲中,对表压缩、约束的使能与失能、表的层次结构查询、防止删除表及对象、提取创建外键约束的...
合理利用提示,可以在特定情况下优化性能,但也需注意,不当的使用提示可能会产生性能问题,甚至导致数据不一致。 这里提供的知识是基于黄玮编写的《Oracle高性能SQL引擎剖析:Oracle SQL优化与调优技术详解》一书...
例如,可以删除不必要的数据、索引和对象,以减少备份文件的大小。 总结 解决 Oracle 11g 数据库备份空间不足问题需要根据实际情况选择合适的方法。压缩备份文件、使用管道、分割备份、使用外部存储设备和优化...
`/*+Append*/`提示指示Oracle数据库使用追加模式执行插入操作,避免了行级锁定,加快了插入速度。此外,临时禁用表的日志记录(通过`ALTER TABLE ... NOLOGGING`),可以在大数据量的插入操作中显著降低日志写入的...