白皮书 & 分析报告

pdf

Available in .pdf

数据库性能测试案例

Mary Finn
产品市场经理
InterSystems 公司

摘要

比较数据库产品性能最好的方式是使用一个真正适合你的一个应用程序真刀真枪地测试。这是评估 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 个人 - 小时的工作量)。

下表总结了测试结果:

Task

Elapsed Time

Relative Performance

Caché : 关系型数据库

关系型数据库

Caché

 

Load data into staging table

138 min.

6 min.

23 : 1

Load second staging table and filter data

245 min.

23 min.

10 : 1

Generate field order dimension table

168 min.

24 min.

7 : 1

Generate field order fact table

890 min.

233 min.

4 : 1

 

Total time to load and filter data

1441min.

286 min.

5 : 1

 

 

案例研究 #2

某医疗软件供应商进行了一个在 Caché 和某著名关系数据库之间的 SQL 响应时间的测试。使用的是历史病人的数据( 7 张表,超过 650 万条纪录),模拟负载 30 、 60 、 90 和 120 个并发用户的情况下运行 8 个查询。

下表给出了两个数据库的平均响应时间(毫秒计)。两者都很快,但是 Caché 平均快上 4 到 6 倍。另外,一张结果的图表显示 Caché 更容易升级。例如,当负载从 90 个用户扩展到 120 个用户的时候, Caché 的响应时间只增加了 84 毫秒,而关系数据库则增加了 231 毫秒,差了 2.7 倍之多。

 

# of concurrent users

Average Response Time

(over all eight queries)

Relative Performance

Caché : 关系型数据库

关系型数据库

Caché

 

30

375.125 ms

59.125 ms

6.3 : 1

60

637.25 ms

137.75 ms

4.6 : 1

90

915.625 ms

206.875 ms

4.2 : 1

120

1146.375 ms

290.125 ms

3.9 : 1

 

Response Times

 

 

案例研究 #3

某个顾问公司比较了 Caché 和某著名的关系数据库,来测量数据仓库情况下的性能。使用了 100 万条纪录的真实的订单处理数据的表,他测量了确认 / 载入的性能和查询响应时间。

即使 Caché 数据结构没有被优化,确认 / 载入 100 万条纪录也比关系数据库快 3 倍( 2681 秒比 8597 秒)。此外, Caché 数据库支需要 146MB 的磁盘空间而关系数据库需要 216 兆的磁盘空间。

SQL 查询响应测试的结果如下:

Query

Response Time

Relative Performance

Caché : 关系型数据库

关系型数据库

Caché

 

Large aggregation on the whole table with all dimensions

638 sec.

180 sec.

3.5 : 1

Aggregation on all dimensions with restrictions on 2 dimensions

3 sec.

<1 sec.

>3 : 1

Find unused Purpose codes across whole table

8 sec.

3 sec.

4 : 1

Find all records where one dimension is greater than a specified number

50 sec.

16 sec.

3.1 : 1

 

 

案例研究 #4

某全国性的电话公司,使用他们的在线电话号码本应用来测试性能,发现 Caché 比某著名关系数据库平均快 10 倍。

从文本文件载入关系数据库需要将近 10 个小时和 60GB 的磁盘空间。而 Caché 仅仅需要将近 45 分钟和 2GB 的磁盘空间。因为 Caché 数据库在磁盘空间的使用上极其有效,它哈能更好地使用缓冲存储器。结果,查询的响应时间 Caché 比关系数据库快很多:

Query

Response Time

Relative
Performance

Caché : 关系型数据库

关系型数据库

Caché

 

Search by name, street

.33 sec.

.07 sec.

4 : 1

Search by name

.46 sec.

.02 sec.

23 : 1

Search by name, street, zipcode

.76 sec.

.04 sec

19 : 1

Search by house number

.14 sec.

.02 sec.

7 : 1

Search by, name1, name2, street, zipcode

.01 sec.

.01 sec.

1 : 1

Search by county

.02 sec.

.01 sec.

2 : 1

 

Average for all queries

.287 sec.

.028 sec

10 : 1

两个数据库都使用了索引以提高查询性能。然而,更新关系数据库(必需重建索引)一定要脱机进行以避免重大的性能问题。应用程序世纪上被设计成使用两个关系数据库——当另一个被更新的时候一个活动着,逐日地交换他们的角色。与之形成对比的是,更新活动 Caché 数据库不会造成性能问题。

 

案例研究 # 5

某电讯业解决方案供应商被要求开发一个短消息系统( SMS )市场活动跟踪应用。应用程序需要从远端接受大量的数据,索引纪录然后把他们写到中央数据库的磁盘上。使用应用程序的原形,方案供应商比较了 Caché 和某著名的关系数据库。

在最初的测试,两个数据库使用同样的代码。系统上没有别的进程。结果如下:

 

Average records/second processed

Relative Performance
Caché : 关系型数据库

关系型数据库

Caché

 

 

Load, index, and write data

315

1700

5 : 1

基于这些结果,放弃了使用关系数据库部署应用的努力。当代码为 Caché 的多维数据结构优化以后应用程序的性能增长了 6 倍。在系统上使用多维输入和模拟进程负载,优化的基于 Caché 的应用达到了每秒处理 10600 条纪录得成绩。

 

结论

最真实地衡量数据库是它在真实世界中的应用程序的表现如何。这些案例研究呈现了 Caché 和著名的关系数据库之间的性能测试。这些测试是由独立的分析家和 InterSystems 的客户、潜在的客户进行的。结果显示 Caché 明显在 SQL 查询上比关系数据库要快 5 倍。另外还可以功过修改代码直接操作 Caché 多维数据结构获得性能额外的增加。

 

相关报告

更多 Caché 和关系数据库的比较请看:

你可以 www.InterSystems.cn 看到这些报告,或者发邮件给 info@InterSystems.cn 获得一份拷贝。 .

进行你自己的性能测试

InterSystems 经常帮助客户和潜在的客户进行性能测试。如果你希望自己对 Caché 的性能进行测试, InterSystems 可以为你提供技术支持和免费的临时的 Caché 许可证。更多信息请致电 021-56654986 。