パフォーマンス
![]()
従来のメモリデータベースの用途は、通信分野などにおいて単なる簡単なトランザクションを高速で処理するために主に使われてきましたが、最近においてはビリング、顧客管理など、複雑なアプリケーションにもメモリデータベースが適用されてきています。
一般的なメモリデータベースは、単純なクエリ処理の性能に重点をおいていますが、Altibaseは汎用のデータベースとして利用できることを目標に複雑なクエリ処理をサポートするだけでなく、その処理性能にも重点をおいてより優れたものとなるよう開発しています。複雑なSQLの処理性能に対するベンチマーキングツールとしてはTPC-Hがあります。Altibaseは、TPC-Hのベンチマーキング性能においても優れた結果を出しています。
TPC-H 性能グラフ

![]()
| NO. | Query 特徴 |
| Q 1 | 600万件に対する index scan, 8個の aggregation 演算(SUM, AVG, COUNT) を含む, 2 columns group by, 2 columns order by |
| Q 2 | 5 join(20万,1万,80万,25,5) in outer query, 4 join(80万,1万,25,5) in subquery, 4 columns order by, outer column reference (join predicate) |
| Q 3 | 3 join(15万,150万,600万), sum(expression), 3 columns group by, 2 columns order by, limit |
| Q 4 | count(*), 1 column group by, 1 column order by, exists subquery(600 万), outer column reference |
| Q 5 | 6 join(15万,150万,600万,1万,25,5), sum(expression), 1 column group by, 1 column order by |
| Q 6 | sum(expression), 600万件に対する index scan |
| Q 7 | inline view, 6 join(1万,600万,150万,15万,25,25), AND/ORが混合された predicates, 3 columns group by, 3 columns order by, SUM |
| Q 8 | 8 join(20万,1万,600万,150万,15万,25,25,5), inline view, 1 column group by, 1 column order by, aggregation |
| Q 9 | star query, 6 join(20万,1万,600万,80万,150万,25), inline view, 2 columns group by, 2 columns order by, like predicate |
| Q 10 | 4 join(15万,150万,600万,25), 7 column group by, 1 column order by, aggregation, limit |
| Q 11 | 3 join(80万,1万,25) in outer query, 3 join(80万,1万,25) in subquery, 1 column group by, having, 1 column order by, aggregation |
| Q 12 | 2 join(150万,600万), 1 column group by, 1 column order by, aggregation |
| Q 13 | left outer join(15万,150万), inline view, 1 column group by, 2 column order by, like predicate, aggregation |
| Q 14 | 2 join(600万,20万), aggregation, many expression in target |
| Q 15 | create view => inline view, subquery, 1 column order by, aggregation |
| Q 16 | 2 join(80万,20万), in predicates, like predicate, 3 columns group by, 4 columns order by, count(distinct), subquery |
| Q 17 | 2 join(600万, 20万), subquery(600万), outer column reference (join predicate), aggregation |
| Q 18 | 3 join(15万,150万,600万), subquery(600万), 5 columns group by, having, |
| Q 19 | 複雑な predicate 使用(多くの AND, OR演算者が使用、 in predicates), |
| Q 20 | 2 join, 多くの subquery, outer column reference, 1 column order by, ggregation |
| Q 21 | 4 join(1万,600万,150万,25), exists/not exists subquery(600万), |
| Q 22 | 複雑な predicate を使用(in predicate, substring, not exists subquery), 1 column group by, 1 column order by, aggregation |
データベースの基本演算に対する Altibase の性能は以下の表の通りです。
区分 |
Throughput (TPS) |
Select |
Minimum 6,000 ~ Maximum 20,000 |
Insert |
Minimum 5,000 ~ Maximum 11,000 |
Update |
Minimum 5,000 ~ Maximum 13,000 |
Delete |
Minimum 5,000 ~ Maximum 12,000 |
・性能測定装備 : Sun E3500 4CPU X 400MHz 1G Memory
・性能測定プログラムの作成方式 : Client-Server方式
・テーブルの領域: メインメモリ
クライアント数の増加によるAltibaseのLoad Scalabilityは、下の図表のように非常に優れていることを示しています。クライアント数が増えれば増えるほど、全体の処理量(throughpt)は一定に増加し、クライアント数がCPU数より2.5倍程度以上に増えると、徐々に非常に小さい幅で減少することが確認できます。