比较数据库产品性能最好的方式是使用一个真正适合你的一个应用程序真刀真枪地测试。这是评估 Caché 后关系技术真实的测试,因为“标准”的事务处理基准方法假定限制了关系数据库的行和列的格式,它们不能正确地预知真正经常使用复杂的数据模型的应用程序的性能。
由于一些著名的数据库厂商约定的限制,只有很少使用 Oracle 和 Microsoft SQL Server 这样的关系数据库进行符合真实情况的性能测试的数据公开出来。进行这样测试的公司发现 Caché 要好于关系数据库,甚至在不改变应用程序代码而只是是用 SQL 的情况下也是如此。这种性能上的差别经常在应用程序利用了 Caché 的后关系技术优化发生
介绍
一些公司进行了这种 Caché 和其它数据库之间的真刀真枪的比较。本文介绍了由独立的分析家进行的性能测试结果以及由 InterSystems 的客户和潜在的客户进行的作为评估他们的数据库技术的进行测试的结果。因为关系数据库厂商的约定的限制,这些进行性能测试的公司名字被省略了,因为其中含有与 Caché 竞争的关系数据库的名字。
这些测试使用了真实世界里中真实的应用程序和真实的数据。结果是无可置疑的。使用 SQL 查询数据库, Caché 超过了 Oracle , SQL Server 和其它的关系数据库五倍以上。
这儿的大多数研究表明,用 SQL 作为查询语言是因为更容易拿 Caché 和其它关系数据库进行比较。在这些案例中, Caché 的优异的性能归功于它的多维架构,消除了需要在多个表间进行“ join ”的操作。然而, SQL 不是唯一查询 Caché 数据库的方法。当代码被优化过直接操作 Caché 的多为数据结构的时候 Caché 可以运行地更快。
案例研究 #1
某能源供应公司发现 Caché 比一个著名的关系数据库在他们的数据仓库 ETL ( Extract , Transform , Load )应用程序上快 5 倍。他们使用了应用程序的字段定制模型测试了两种数据库,处理 1300 多万条的纪录。两个数据库是用了同样的表定义和查询。然而,现存的字段定制模型严重依靠数据库特定的存储过程,于是他们的存储过程被用 Caché 的存储过程语言重新部署了一遍(这需要 40 个人 - 小时的工作量)。
下表总结了测试结果:
案例研究 #2
某医疗软件供应商进行了一个在 Caché 和某著名关系数据库之间的 SQL 响应时间的测试。使用的是历史病人的数据( 7 张表,超过 650 万条纪录),模拟负载 30 、 60 、 90 和 120 个并发用户的情况下运行 8 个查询。
下表给出了两个数据库的平均响应时间(毫秒计)。两者都很快,但是 Caché 平均快上 4 到 6 倍。另外,一张结果的图表显示 Caché 更容易升级。例如,当负载从 90 个用户扩展到 120 个用户的时候, Caché 的响应时间只增加了 84 毫秒,而关系数据库则增加了 231 毫秒,差了 2.7 倍之多。