About me:Oracle ACE pro,optimistic,passionate and harmonious. Focus on ORACLE,MySQL and other database programming,peformance tuning,db design, j2ee,Linux/AIX,Architecture tech,etc
全部博文(169)
发布时间:2024-05-17 17:02:04
在ORACLE里,如果SQL里的表无法获得需要的信息来计算选择率,可能就会使用默认选择率,常发生在以下几种情况下:
1)表有统计信息,列未收集统计信息,无法使用动态采样
2)表有统计信息,但是使用绑定变量,绑定变量无peeking
3) 表有统计信息,但是对列使用了函数等复杂条件,无法准确估算对应条件的选择率
......【阅读全文】
发布时间:2024-05-13 17:31:18
本文主要研究下组合索引包含in条件(多个值),在单表查询,关联查询这两种SQL查询结果在ORACLE和MySQL里的区别。
ORACLE具有强大的优化器,一般来说,组合索引在ORACLE里不管是单表还是关联查询,都可以选择最佳执行计划,只要统计信息等
是准确的。
MySQL的优化器相对来说,要弱不少,很多功能不够健全,单表对于组合索引包含IN的处理貌似没有什么问题,但是JOIN情况下,
包含IN LIST组合索引的表是被驱动表,则问题比较严重,卖个关子,详细见本文MySQL部分讲述。......【阅读全文】
发布时间:2024-05-13 09:22:58
本文主要研究下组合索引包含in条件(多个值),在单表查询,关联查询这两种SQL查询结果在ORACLE和MySQL里的区别。
ORACLE具有最强大的优化器,一般来说,组合索引在ORACLE里不管是单表还是关联查询,都可以选择最佳执行计划,只要统计信息等
是准确的。
MySQL的优化器相对来说,要弱不少,很多功能不够健全,单表对于组合索引包含IN的处理貌似没有什么问题,但是JOIN情况下,
包含IN LIST组合索引的表是被驱动表,则问题比较严重,卖个关子,详细见本文MySQL部分讲述。
......【阅读全文】
发布时间:2024-05-08 09:12:57
本文主要讲解,如何建立高效的索引,减少io提高效率,建立组合索引要从哪些方面考虑,从索引访问的路径,访问规则以及索引io计算公式等方面分析。
索引访问过程三步骤:index access,index filter,backward to table(索引访问、索引过滤、回表),
索引访问过程中的选择率ix_sel:也叫effective index selectivity,
是真正用于index access的列的选择率,要遵循leftmost prefix访问规则,ix_sel决定索引访问的cost
索引访问过程中的ix_sel_with_filters:也叫effective table selectivity,
这是访问过程中不遵循leftmost prefix访问规则的列用于索引访问过滤。ix_sel_with_filters不用于计算索引访问的cost
ix_sel和ix_sel_with_filters共同决定了索引扫描最终返回的行数
backward to table回表过滤也有两种选择率:
1)effective......【阅读全文】
发布时间:2024-05-08 17:28:28
本文主要讲解,如何建立高效的索引,减少io提高效率,建立组合索引要从哪些方面考虑,从索引访问的路径,访问规则以及索引io计算公式等方面分析。
索引访问过程三步骤:index access,index filter,backward to table(索引访问、索引过滤、回表)
......【阅读全文】