Oracle Database 18c 中的 In-Memory 技术详解

需积分: 9 1 下载量 185 浏览量 更新于2024-07-16 收藏 1.87MB PDF 举报
"Oracle Database 18c 中的 Oracle Database In-Memory 技术白皮书" Oracle Database In-Memory 是 Oracle Database 18c 的一项关键特性,它旨在显著提升数据库的分析性能,同时保持事务处理能力。此技术通过在内存中以列存储的方式保存数据,使得快速分析查询成为可能,而无需对现有行存储架构进行重大改变。 1. **In-Memory列存储** Oracle Database In-Memory 使用两种存储模式:行存储和列存储。行存储用于传统的事务处理,而列存储则针对分析查询进行了优化。In-Memory列存储能够高效处理大数据集的聚合、筛选和联接操作。 2. **动态大小调整和自动内存管理** Oracle Database In-Memory 自动管理内存,可以根据工作负载需求动态调整In-Memory区域的大小。这确保了内存资源的有效利用,同时避免了手动调整的复杂性。 3. **In-Memory压缩** 数据在内存中被压缩,以减少存储空间的需求,同时提高读取速度,因为压缩的数据在内存中传输和处理更快。 4. **In-Memory FastStart** 这一特性加速了数据库启动时In-Memory数据的加载,使得数据库可以更快地达到运行状态。 5. **In-Memory扫描和存储索引** 内存中的数据可以通过快速扫描访问,无需磁盘I/O。同时,In-Memory存储索引进一步加速了查询性能,尤其对于复杂的分析查询。 6. **SIMD向量处理** 利用Single Instruction Multiple Data (SIMD) 指令集,数据库可以并行处理列数据,大幅提高计算效率。 7. **In-Memory动态扫描和优化运算** 动态扫描允许查询直接在内存中执行,无需预先构建物化视图。优化运算则根据数据的内存布局智能地选择最佳执行路径。 8. **In-Memory虚拟列和表达式** 虚拟列可以根据计算表达式在内存中创建,无需物理存储,从而节省空间且提高了查询性能。 9. **自动检测的In-Memory表达式** 系统能够自动识别适合在内存中处理的表达式,进一步优化查询性能。 10. **In-Memory联接和联接组** 支持高效的内存内联接,联接组允许在内存中预先计算部分联接结果,减少了计算开销。 11. **In-Memory聚合** 在内存中执行聚合操作,如SUM、COUNT等,极大地加快了汇总数据的速度。 12. **DML和In-Memory列存储** 数据插入、更新和删除(DML)操作可以与In-Memory列存储协同工作,确保事务处理和分析查询的同步。 13. **批量数据加载和分区交换加载** 支持快速的批量数据加载和分区交换,使得数据更新和维护更高效。 14. **事务处理和RAC上的In-Memory列存储** 即使在Real Application Clusters (RAC) 环境下,In-Memory列存储也能确保高可用性和一致性。 15. **控制In-Memory列存储的内容和自动数据优化** 用户可以控制哪些表和分区被加载到In-Memory区域,自动数据优化(ADO)则可以根据使用情况自动调整内存资源。 16. **用户定义的ADO策略和自动In-Memory管理** 允许用户定义特定的优化策略,并自动应用以优化In-Memory列存储的行为。 17. **多租户环境和Active Data Guard** 在多租户容器数据库(CDB)中,每个租户都可以独立使用In-Memory特性;而在Active Data Guard环境中,可以实现主库的高性能分析,同时不影响备用库的保护功能。 18. **Exadata上的In-Memory列格式扩展** 在Exadata硬件平台上,In-Memory列存储可以扩展到闪存层,进一步提升性能。 19. **控制Oracle Database In-Memory的使用** 通过核心初始化参数和其他参数的设置,可以精细控制In-Memory特性的行为,以适应不同工作负载的需求。 综上,Oracle Database 18c 的In-Memory特性提供了一套全面的解决方案,旨在为混合工作负载环境提供卓越的性能,无论是在线事务处理(OLTP)还是在线分析处理(OLAP),都能得到显著的性能提升。