Oracle数据库复合索引的性能问题

数据库
在实践中ORACLE数据库复合索引设计不合理可能会引发性能问题。

在实践中ORACLE数据库复合索引设计不合理可能会引发性能问题。

通常对于复合索引,优先将选择性最高的字段放在第一位。

建立复合索引时,要充分考虑各字段的筛选度,将筛选性更好的字段排在前面。

筛选度可参考"count(distinct A)/count(*)"或在dba_tab_col_statistics视图查看num_distinct,唯一值越多,则筛选度就越高,也称为可选择性越高,反之亦然。

整改方式,请确认是否测试环境的表数据分布情况与生产相同或相似,如非数据原因造成的问题,建议调整索引字段1和字段2的顺序,将说明字段4放到说明字段3前。

在准备调整复合索引字段顺序前,有必要了解复合索引使用的一个重要原则:复合索引最左原则。

复合索引最左原则:即where条件只有使用到最左边索引列的时候,复合索引才可能被使用到。通常,设计复合索引时,我们需要综合表上数据访问特点、访问频率来设计复合索引中的字段顺序,以使一个索引尽量服务于更多的SQL访问请求。

所以,仅根据字段可选性的高低来调整字段顺序是不严谨的,还需要确认原有索引的使用情况,需确保调整后,不会有SQL无索引可用,或性能下降是可接受的。如不能确认,建议不做改动。如确有需要,就新建一个索引吧。

责任编辑:华轩 来源: 测试小号等闲之辈
相关推荐

2011-03-16 08:54:45

Oracle数据库索引

2023-11-22 15:34:41

oracleSQL数据库

2010-04-23 11:32:22

Oracle数据库

2010-06-17 12:59:07

Oracle

2021-04-09 21:07:07

Oracle数据库谓词

2011-05-18 09:39:19

Oracle数据库性能优化

2011-05-20 10:30:20

ORACLE数据库性能优化

2009-02-01 13:33:13

Oracle数据库配置

2010-05-10 15:50:39

Oracle数据库性能

2010-11-15 16:13:24

Oracle数据库性能

2010-05-07 17:39:02

Oracle数据库性能

2010-04-19 13:31:42

Oracle索引

2011-03-28 15:44:45

惠普数据库Oracle数据库

2010-05-10 18:54:12

Oracle数据库索引

2011-04-11 16:50:13

Oracle数据库索引

2010-04-07 17:45:22

Oracle位图索引

2010-04-26 14:24:58

Oracle数据库索引

2010-04-07 09:31:02

Oracle数据库

2010-04-09 15:08:17

Oracle 数据库性

2010-04-09 13:59:48

Oracle数据库索引
点赞
收藏

51CTO技术栈公众号