聚合因子

当然在查询中有的不可避免要执行索引回表读,那么什么情况下索引回表读的效率更高呢

回表查询的效率和聚合因子有关

如果某个索引列的列值在表中是有序存放的如1 到10000,我们知道索引列的值在索引中是有序存放的,表和索引两者的排列顺序相似度很高

我们就说聚合因子比较低

如果某个索引列的值在表中是无序存放的,那么表和索引的排列顺序的相似度很低,我们就说聚合因子较高

也可以通过查询数据字典得知聚合因子

clustering_factor  : 官方解释 有多少临近的索引条目知道不同的数据块

通俗的讲索引块里有10个索引条目,如果聚合因子较低,那么这10个索引条目所指向的数据在同一个数据块中

如果聚合因子较高那么这10个索引条目所指向的数据在10个数据块中

那么怎样降低聚合因子呢,将经常查询的索引列尽量排列有序

时间: 2024-10-07 18:20:26

聚合因子的相关文章

oracle数据库优化之统计信息

1.统计信息简介 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.比如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于统计信息.CBO正是根据这些统计信息数据,计算出不同访问路径下,不同join 方式下,各种计划的成本,最后选择出成本最小的计划. 在CBO(基于代价的优化器模式)条件下,SQL语句的执行计划由统计信息来决定,若没有统计信息则会采取动态采样的方式决定执行计划!可以说统计信息关乎sql的执行计划是否正确,

PLSQL_性能优化系列15_Oracle Statistics统计信息

2014-12-18 BaoXinjian 一.摘要 Statistic 对Oracle 是非常重要的. 它会收集数据库中对象的详细信息,并存储在相应的数据字典里. 根据这些统计信息, optimizer 可以对每个SQL 去选择最好的执行计划. Statistic 对Oracle 是非常重要的,它会收集数据库中对象的详细信息,并存储在相应的数据字典里. 根据这些统计信息, optimizer 可以对每个SQL 去选择最好的执行计划. Oracle Statistic 的收集,可以使用analy

【转】DBMS_STATS.GATHER_TABLE_STATS详解 2012-04-22 09:20:10

[转]DBMS_STATS.GATHER_TABLE_STATS详解 2012-04-22 09:20:10 分类: Linux 由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要! 作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数.数据块数.行长等信息:列的分析--列值的重复数.列上的空值.数据在列上的分布情况:索引的分析-索引页块的数量.索引的深度.索引聚合因子)

经典10046剖析案例-3

执行计划+Hint+统计信息+并行+绑定变量+sql跟踪和10046事件+10053事件总结 执行计划 1.执行计划中的rows表示CBO从一个行源预期获取的记录数,这个行源可能是一个表,也可能是一个索引. 2.rows值对CBO做出正确的执行计划至关重要,如果CBO获取的rows值不准确(通常是没收集统计信息或统计信息过旧导致),在计算执行成本时就会出现偏差,从而制定出错误的执行计划. 3.收集统计信息 exec dbms_stats.gather_table_stats('username'

PLSQL_性能优化系列1_统计信息的概念和重要性(概念)

2014-12-18 Created By BaoXinjian 一.摘要 Statistic 对Oracle 是非常重要的. 它会收集数据库中对象的详细信息,并存储在相应的数据字典里. 根据这些统计信息, optimizer 可以对每个SQL 去选择最好的执行计划. Statistic 对Oracle 是非常重要的,它会收集数据库中对象的详细信息,并存储在相应的数据字典里. 根据这些统计信息, optimizer 可以对每个SQL 去选择最好的执行计划. Oracle Statistic 的收

Oracle等待事件db file parallel read

SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'db file parallel read'; EVENT# NAME PARAMETER1 PARAMETER2 PARAMETER3 ---------- ------------------------------ --------------- --------------- --------------- 12

DBMS_STATS.GATHER_TABLE_STATS详解

由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要! 作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数.数据块数.行长等信息:列的分析--列值的重复数.列上的空值.数据在列上的分布情况:索引的分析-索引页块的数量.索引的深度.索引聚合因子). DBMS_STATS.GATHER_TABLE_STATS的语法如下: DBMS_STATS.GATHER_TABLE_STA

支付条码跟不上时代,聚合支付码才是潮流

从"1.14"注销支付机构在商业银行的备付金账户,到现在两个月的时间里,有关部门没有再发布新的政策文件.长时间没有政策出台,对于不断被折腾的支付机构而言,反倒有些焦虑和不适应,心里默默念叨:"他们是不是又在憋什么大招?"实际上,这两个月的"政策空窗期",有关部门并非"无牌可打",只是这牌越打越纠结,越不知道该怎么打了.历经四年的监管整顿,有关部门也许是累了.想歇歇了,但刚刚"得势"的清算机构可不会这么想,尤

聚合索引(clustered index) / 非聚合索引(nonclustered index)

以下我面试经常问的2道题..尤其针对觉得自己SQL SERVER 还不错的同志.. 呵呵 很难有人答得好.. 各位在我收集每个人擅长的东西时,大部分都把SQL SERVER 标为Expert,看看是否答的上来.. 1. 什么是聚合索引(clustered index) / 什么是非聚合索引(nonclustered index)? 2. 聚合索引和非聚合索引有什么区别? 深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clust