推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

oracle索引类型有哪些 Oracle In Memory最佳实践(附PPT和视频回放)

   2023-08-13 网络整理佚名700
核心提示:2020数据技术嘉年华近50个PPT下载、视频回放已上传墨天轮平台,可在“数据和云”公众号回复关键词“”获得!功能,根据业务特点明确的选择候选表,可以在评估后删除一些纯报表查询使用的索引。不支持纯OLTP的数据类型,比如索引组织表,HASH集群以及行外LOB等。对于很少访问的历史数据,不需要通过额外的历史库或历史表去访问,而是通过原表不需要修改程序就可以直接访问到离线的只读数据。

近50个2020数据科技嘉年华PPT下载及视频播放已上传摩天论平台,在“数据与云”公众号回复关键词“”即可获取!

本文根据杨廷坤老师分享的主题《In Best 》整理。

杨廷坤:云和恩墨CTO,ACOUG核心专家,ACE,高级顾问。 ITPUB数据库管理版版主,人称“杨老”; 多年来一直从事技术研究和写作,被誉为“最好的百科全书”,在博客上发表了 3000 多篇文章。 与盖国强先生共同主编《数据库性能优化》、《DBA笔记》、《DBA笔记3》、《性能优化与诊断案例精选》。

个人博客:

本文从四个方面介绍In,首先介绍其基础架构,然后介绍其性能优势和特点,然后介绍其使用场景和最佳实践,最后介绍20c中的最新功能。

本次数据技术嘉年华大会,我给大家分享的主题是In的新特性。 In 功能是引入的三大新功能之一。 通过在内存中引入独立的列存储区域,可以极大地提高查询性能。

此次的主题主要从四个方面展开。 首先介绍了In的基础架构,以及采用什么样的架构来支持In内存区域的存储和查询访问。

在正式开始之前,先梳理一下一些容易混淆的概念,内存缓存组件太多了,并简单介绍一下它们的功能和区别。 DB Cache是​​数据块的缓存。 日常增删改查都需要先在该区域保存数据,而DB Cache根据使用情况的不同分为Keep和Three三个区域。 Cache是​​表的一个属性,可以控制读取表数据时,放到LRU链表的位置; Cache是​​11g引入的功能,可以直接缓存查询结果或者返回结果。 再次访问时,如果依赖对象没有被修改,则不能再执行查询或调用,而是直接返回Cache中缓存的结果; 针对18、19中非常频繁的表读写进行了功能优化,通过设置独立的内存区域来加速相应的访问; yes 独立的内存数据库用于超高速OLTP请求。 其独立部署支持的最高TPS记录已突破1亿; 最后一项是今天要介绍的关键选项。

In功能并不是对原有功能的替代,而是新功能的叠加,也就是说在保留DB Cache全部读写功能的基础上,额外增加了一个列存储区域。 对In的访问还提供了事务性,即对列存储区域的访问,同时也提供了ACID功能。 而且对于In的使用已经完全实现了CBO自动判断,证明这个功能是比较成熟的。

简要解释In如何提供事务一致性访问。 当DML修改DB Cache的数据块时,In区不会同步修改,而是通过标记对应行的方式通知In区有修改数据,同时将DML的修改同步到独立的In 的日志区域。 查询访问时,访问In区后,还需要访问日志区,修改其中的DML与列存读取的结果合并,从而提供一致的访问。

介绍完In的架构之后,我们再来看看In的性能优势和功能:

In的查询访问能力的提升主要来自于三个方面。 除了内存访问带来的数据扫描的性能提升外,还可以配合星型查询转换和布隆过滤,大幅提升表连接的性能。 此外,In 的聚合操作也有明显的性能提升。

除了加快表中列的访问速度外,还可以加速虚拟列或表达式计算。 有两种方法可以加速内存表达式的使用:用户定义虚拟列或自动检测。

由于系统中内存的容量始终是有限的,除了提供压缩算法来减少内存使用之外,还可以配合12c和ILM的新特性,自动完成内存中数据段的生命周期管理。

由于In的数据来源以及数据文件存储的行格式,在重启过程中需要将大量数据读入内存区域。 提供加速此过程的功能。 通过建立独立的In快速启动表空间,将列中存储的数据直接保存在表空间中的FILE LOB对象中,从而加快了In的数据加载过程。

不仅支持主库的In功能,还通过BY提供对DG库的In访问功能,从而充分利用DG的报表功能,横向扩展报表系统内存。

In带来的最大的好处就是性能的提升。 只需要配置内存范围,将表数据加载到内存区域,就可以实现查询性能数倍到数百倍的提升。 而且In的设置对应用程序是透明的,无需修改任何代码即可实现性能提升。

既然In的性能优势如此突出,我们就来看看In的使用场景和最佳实践。

对于OLTP系统来说,In带来的优势主要体现在ETL抽取过程,或者OLTP系统中运行一些实时报表的场景; 对于OLAP系统来说,In可以给数据集市和查询表示层带来明显的好处。 性能提升,但由于其一次写入、一次读取的业务特性,并不是部署层的最佳应用场景。

简单总结一下,如果是OLAP系统,那么就是最好的应用场景。 配合分区和In压缩功能,使用In功能可以带来更好的效果。 同时,您可以考虑启用自动建议功能; 如果是纯OLTP系统,不建议使用。 其架构决定了DML不会有任何性能提升,并且会有少量的额外成本; 对于混合系统,可以考虑对其中的报表查询对象启用In功能,根据业务特点明确选择候选表。 评估后删除纯报告查询使用的一些索引。

In是一个独立的内存区域。 启用In功能需要为SGA和PGA配置额外的空间,需要注意调整临时空间的读写。 此外,In 不支持纯 OLTP 数据类型,例如索引组织表、HASH 簇和行外 LOB。

判断In是否有效、对象是否加载到内存区域、当前执行是否使用In扫描执行计划,都不是一件简单的事情。 提供了一系列的视图和统计指标,其中 和 是常用的视图,用于判断In区的分配情况和对象加载情况。 执行计划中的FULL信息并不意味着当前对应的执行计划必须使用In扫描,而仅仅意味着当前配置允许In执行计划发生。 如果确实要判断当前执行的语句是否使用了In,则需要配合会话级别统计IM扫描行的值。

In是OLAP的一个特性,所以采用Share架构。 除了一体机之外,普通RAC配置下,表数据分散到RAC的所有节点上。 您可以通过设置语句指定数据中断方法。

由于RAC中的表数据分散在各个节点的内存中,如果想在一个节点上查询访问所有节点的内存数据,就必须启用并行查询。 因此,与In函数直接相关的初始化参数有两个:和CY,前者必须设置为FALSE才能启用跨节点并行,后者建议设置为AUTO以启用自动并行访问。 您可以考虑在会话级别或语句级别手动指定并行度的方式来替换全局CY参数设置。 此外,还可以配合业务的精细化部署和接入。

In是付费选项,In使用的独立内存区域是使用该功能的额外成本。 需要注意的是,In 没有办法加速一些非数据访问功能。

以上介绍了In从12c到19c的一些功能和特性。 我们来看看20c/21c会带来哪些新功能。

In功能只需一个参数即可实现全自动管理,不再需要管理员手动指定表。 内置的自动算法会根据表的访问频繁程度自动决定将表加载或从IN内存中驱逐表,并自动压缩访问较少的数据。

在12c版本中,如果查询访问不包含在In设置中的列,则查询无法使用In执行计划,而只能选择传统的DB Cache访问方式。 在最新的20c中,列扫描和行扫描结合使用,可以更快地返回查询结果。

采用SIMD单指令多数据向量处理模式,可以在硬件层面加速表连接的处理,从而大大提高连接处理效率。

在18c中为外部表创建IN缓存,从而大大加快外部表数据的操作和分析过程。 对于多次访问或执行复杂分析操作的外部表,启用IN外部表功能可能会获得数百倍的性能提升。

19c中进一步增强了对外部数据的混合存储功能,允许分区表中的部分分区是数据库中的在线数据,部分分区由存储在外部文件系统中的外部数据组成。 这进一步完善了数据库的全生命周期管理功能。 对于很少访问的历史数据,不需要通过额外的历史库或历史表来访问,但离线只读数据可以直接通过原始表访问,无需修改程序。 不同类型的分区是分开处理的。 当一条SQL同时访问内部分区和外部分区时,执行计划会被拆分为两个UNION ALL分支,使用不同的执行计划来获取数据。

在最新的20c中,In对外部表和混合分区表的功能进一步增强。 在支持外部表In的基础上,混合分区表的表级和分区级都支持In属性,与分区无关。 内部或外部。

In功能不仅仅针对结构化数据,对于空间数据库、全文数据库,也可以利用In进行加速,从而获得数倍甚至更高的性能提升。

最后简单总结一下In的功能。 对于OLAP系统来说,In将为复杂查询带来巨大的性能提升。 对于DBA来说,合理利用分区和并行性保证统计信息准确,才能保证更好的In功能。 应用。 但对于纯OLTP系统来说,开启In仍然会带来额外的负担。 建议不要开启,或者压力测试评估后谨慎使用。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON