Oracle TimesTen In-Memory Database 11.2.2 版本从 2012 年发布至今已经有三年多的时间。新版本产品日趋稳定,并吸引越来越多的客户使用 TimesTen 并利用最新的内存数据库技术为应用提供更优质的服务。 TimesTen 最新的 TimesTen 发行版本 11.2.2.8.0 于 2015 年初发布,是一款面向所有支持平台的版本。这里将 TimesTen 11.2.2 版本的变化和新功能汇总,希望大家通过了解并使用新功能来更好的体验内存数据库技术。
自 11.2.2 版本开始,TimesTen 引入了新的内存分析功能来更好的服务于实时分析和报表应用对内存数据库的需求。
对于内存分析功能的增强主要表现在:
-- 提供针对内存分析的 SQL 优化器来支持和优化更多的数据仓库类聚合查询(例如星型连接)。
-- 支持丰富的数据分析查询功能:
AVG,
SUM, COUNT, MAX, MIN, DENSE_RANK, RANK, ROW_NUMBER, FIRST_VALUE and LAST_VALUE
OVER
PARTITION BY and OVER ORDER BY
多维度操作 :
Grouping 语法 : GROUP BY CUBE, GROUP BY ROLLUP, GROUP BY GROUPING SETS
Grouping 功能 : GROUP, GROUPING_ID, GROUP_ID
支持 WITH 语法
聚合表达式可使用 DISTINCT
NULLS
FIRST
或者 NULLS LAST )-- 支持列压缩技术。对于内存分析类型的表,可以通过压缩方式来存储更多的数据,进一步优化内存空间的使用。
-- Hash 索引的全面支持。我们知道, hash 索引是优化等值查询的首选索引类型。之前的版本( 11.2.2.5 ), hash 索引只支持创建在主键字段上。现在,可以创建任何单字段 hash 索引,甚至可以创建多字段 hash 索引。
-- 支持 Index Advisor 来帮助给出数据库查询语句基于索引的优化建议。
-- 优化数据加载效率。通过使用并行加载的方式,来极大缩短数据加载到 TimesTen 数据库所用的时间,例如使用 ttLoadFromOracle 内置工具进行并行加载,
-- ROracle 支持 TimesTen 。 ROracle 提供 R 和数据库之间的接口,使用 SQL 查询语言提供 R 统计编程环境下丰富的功能。 ROracle 使用 OCI 连接数据库,提供了比标准的 ODBC 更好的性能。
-- 提供多种工具支持数据源加载数据到 TimesTen 数据库。
全新的 ttImportFromOracle 工具不但可以帮助分析 Oracle 数据库需要加载的数据,而且会提供给出多种导入优化的指导建议。
Oracle GoldenGate 支持数据从 Oracle 数据库同步到 TimesTen 数据库。
Oracle TimesTen 始终致力于为 OLTP 应用提供实时事务处理的服务。因此,在 OLTP 方面也提供了一系列新的功能:
-- 全新的 B+Tree 索引技术。在 11.2.2.5 版本之后引入的全新 B+Tree 索引技术可以极大优化并发控制,提高事务处理能力,提供更高的高并发写入场景下的吞吐量,是当今多核计算机时代下高并发,大规模事务处理型应用的理想选择。测试表明,吞吐量的提升是之前 B-Tree 索引的五倍。新的数据库,可以通过配置 DSN 中数据库参数 RangeIndexType = 0 来启用 B+Tree 索引。
-- Hash 索引的全面支持。我们知道, hash 索引是优化等值查询的首选索引类型。之前的版本( 11.2.2.5 ), hash 索引只支持创建在主键字段上。现在,可以创建任何单字段 hash 索引,甚至可以创建多字段 hash 索引。
-- 优化 NUMA 架构下的数据库性能。当今的计算机时代,每个服务器都能装备大量 CPU 以及大容量物理内存 DRAM 。一般这类系统存在 Non Uniform Memory Access (NUMA) 内存延迟的情况,例如,当访问的内存不在本地处理器( socket )当中时。 TimesTen 作为内存数据库完全运行在物理内存 DRAM 中,对 NUMA 架构非常敏感,且受到的影响远大于基于磁盘的关系型数据库(数据访问在存储级优化)。因此, TimesTen 在每个版本都持续不断的优化 NUMA 系统的支持。 11.2.2 中对 NUMA 本地化和代码路径进行了一系列的改进和提高,可以在 Oracle T5-8 这台配置 128 核 和 1024 处理线程的服务器上完成每秒接近 6 千万查询,和 1 千万事务更新的能力。在 NUMA 架构下,建议通过实例绑定 socket 的方式来获得最佳的性能。
-- 并行复制功能。在 11.2.2 版本中,在部署了 HA 架构下,通过配置 ReplicationParallelism = n (n>1) 来充分利用高速网络带宽和服务器多核处理器实现并发复制功能。
由于确保了每个复制流维护操作和事务顺序(提交顺序),它也存在一个复制所能达到的最大吞吐量的限制。因此,在 11.2.2 版本中,还可以通过解除复制流中事务间操作和提交顺序的依赖,针对不需要严格提交顺序的应用场景,实现进一步实质性的性能提升。许多的 OLTP 应用具有彼此独立的事务处理,例如,你的账户扣除余额与扣除我的账户余额之间是独立的;你的移动设备的更新位置与我的设备的位置是独立的。 对于这样的应用程序,它通常是没有必要在使用复制的高可用性时,使用相同的提交顺序来应用这些事务。我们曾经看到过在放宽备用数据库提交顺序后,有接近 80% 的复制吞吐量的提升。为了放宽接收主机上的顺序,设置属性 ReplicationApplyOrdering 值为 2 。
11.2.2.8.0
发行版本中,用户可以通过启用并行线程来读取 TimesTen 数据库检查点文件来减少他们的数据库重新启动时间。对于检查点文件比较大的,并存储在固态或闪存情况下是非常有用的。并行检查点读功能,通过设置新的 CkptReadThreads 属性来启用。 CkptReadThreads 是一个第一连接属性,并应在加载数据库前预先设置。 CkptReadThreads 的默认值设置为 1 (通常用于硬盘存储)。当使用固态驱动器或闪存时,用户可以设置 CkptReadThreads 属性的值从 2 至 8 。采用最新 SSD 与 8 路并行检查点读线程,使用单个 SSD 设备或 PCIe 闪存卡,它可以达到 2 GB / 秒的读取速度。还可以通过使用双 SSD 设备 / 闪存卡(通过磁盘条带化)来实现 3.4 GB / 秒的持续读取速度。这意味着,一个大小为 1TB 的 TimesTen 数据库被加载到内存中大概仅仅需要 5 分钟。-- ttStats 实时监控和快照报表功能。一直以来,客户都希望获得类似 Oracle 数据库的 AWR 诊断报告功能。在 11.2.2 版本中, ttStats 内置工具提供了 HTML 格式的数据库诊断快照报表功能。该功能是基于 PL/SQL 的一个监控工具,通过命令行或 SQL Developer 界面操作来生成报表。可以用于实时监控,快照捕获和 HTML 报告等功能,帮助管理员快速了解从数据库层到具体 SQL 语句的性能情况。
-- Oracle Enterprise Manager 插件新版本 TimesTen Plug-in 12.1.0.3.0 。新版本为企业中的数据库管理员们带来很多新功能。除了数据库的性能和可用性监控,新的插件为管理员们提供管理和维护他们的 TimesTen 实例和数据库的能力,例如启动和停止 TimesTen 服务,装载数据库到内存和从内存中卸载数据库,调度备份和还原数据库。此外,用户可以监控数据库和复制活动,内存和磁盘的用量,工作负载性能统计,并确定运行时间最长,最常被执行的 SQL 语句。新的 TimesTen 插件是全球化的,其用户界面支持九种不同的语言(包括支持中文界面),提供与 Oracle Enterprise Manager 完全相同的语言。
以上这些是 11.2.2 的部分重要新功能介绍。如果希望了解更多详细的产品新功能介绍和功能增强,请参阅 产品发布说明书 。此外,新版的 快速入门手册 也为我们带来了全新版本的技术介绍,使得我们可以在很短的时间内,配置、搭建并感受到 TimesTen 内存数据库产品带来的全新体验。