oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
2015-03-03 11:48
856 查看
【本文转载自:http://blog.csdn.net/helloboat/article/details/42453889,对作者表示感谢。】
索引的选择性低,但数据的值分布差异很大时,仍然可以利用索引提高效率。
A、数据分布不均匀的特殊情况下,选择性不高的索引也要创建。
表ServiceInfo中数据量很大,假设有一百万行,其中有一个字段DisposalCourseFlag,取值范围为枚举值:[0,1,2,3,4,5,6,7]。
按照前面说的索引建立的规则,“选择性不高的字段不应该建立索引”,
该字段只有8种取值,索引值的重复率很高,索引选择性明显很低,因此不建索引。
然而,由于该字段上数据值的分布情况非常特殊,具体如下表:
而且,常用的查询中,查询DisposalCourseFlag<6 的情况既多又频繁,毫无疑问,如果能够建立索引,并且被应用,
那么将大大提高这种情况的查询效率。因此,我们需要在该字段上建立索引。
索引的选择性低,但数据的值分布差异很大时,仍然可以利用索引提高效率。
A、数据分布不均匀的特殊情况下,选择性不高的索引也要创建。
表ServiceInfo中数据量很大,假设有一百万行,其中有一个字段DisposalCourseFlag,取值范围为枚举值:[0,1,2,3,4,5,6,7]。
按照前面说的索引建立的规则,“选择性不高的字段不应该建立索引”,
该字段只有8种取值,索引值的重复率很高,索引选择性明显很低,因此不建索引。
然而,由于该字段上数据值的分布情况非常特殊,具体如下表:
取值范围 | 占总数据量的百分比 |
---|---|
1~5 | 1% |
6 | 98% |
7 | 1% |
那么将大大提高这种情况的查询效率。因此,我们需要在该字段上建立索引。
相关文章推荐
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- 解析Oracle数据扫描 Oracle SQL查询优化 提高局部范围数据扫描执行性能的原理
- Oracle中通过位图索引提高查询效率
- 【数据操作】优化SQL server性能 之 索引 (转上)
- Oracle模糊查询之(3.3从使用函数和sql语法角度来提高模糊查询效率 三)使用Oracle的instr函数与索引配合提高模糊查询的效率
- oracle 性能优化操作八: 利用HINT强制指定索引
- Oracle查询指定索引提高查询效率
- oracle 性能优化操作十五: 基于函数的索引要求等式匹配
- Oracle中通过位图索引提高查询效率
- 索引、物化视图-oracle 性能调优之 数据访问路径优化-by小雨
- oracle 性能优化操作十: 分解复杂查询,用常量代替变量
- 【数据操作】优化SQL server性能 之 索引
- Oracle查询指定索引提高查询效率
- (转)Oracle中通过位图索引提高查询效率
- oracle 性能优化操作十四: 使用基于函数的索引
- 优化SQL Server数据逻辑 提高查询性能
- Oracle 通过复合索引提高查询性能的一个真实客户例子
- oracle优化,hint的使用! (系统自动优化有时不是最好的,我们可以手动添加hint来提高查询效率
- 优化SQL Server数据逻辑 提高查询性能
- oracle 性能优化操作十六: 使用分区索引