• Showing Page History #49706

ベンチマーク結果

 それではベンチマーク結果を見てみよう。sql-benchには9つのベンチマークが含まれているが、それらを起動してから実行完了するまでにかかった時間を比較したものが表4だ。

表4 インテル コンパイラー(ICC)版バイナリとGCC版バイナリのベンチマーク結果
ベンチマーク項目ICC版GCC版
alter-table18.3秒31.7秒
ATIS3.7秒3.3秒
big-tables3.0秒4.0秒
connect50.0秒50.7秒
create248秒249秒
insert648秒663秒
select44.7秒59.0秒
wisconsin4.0秒3.7秒

 また、GCC版の結果を1とした場合の相対的な実行結果を示したものが図1である。

 ベンチマーク結果でまず目を引くのが、alter-tableテストおよびselectテスト実行の結果である。インテル コンパイラー版バイナリはGCC版バイナリと比べ、alter-tableテストでは約6割、selectテストでは約8割ほどの時間でテストを完走できている。ATISおよびwisconsinテストではGCC版のほうがインテル コンパイラー版よりも若干速かったが、これらについてはそれぞれ0.4秒、0.3秒という僅差である。

 また、wisconsinベンチマークによって測定されたSQLコマンドごとのパフォーマンスをまとめたものが表5である。この表は、それぞれのSQLコマンドを一定回数実行するのにどれだけ時間がかかったか、というのを示しており、数値が小さいほどパフォーマンスが高い。この結果を見ると、インテル コンパイラー版バイナリはテーブルへの項目追加/削除といった操作が大幅に高速化されていることが分かるほか、データの並び替えやキャッシュされたテーブルのselect、キーの更新などもインテル コンパイラー版バイナリの方が高速、という結果となっている。

表5 SQLコマンドごとのパフォーマンス比較(抜粋)
操作所要時間(秒)
ICC版GCC版
alter_table_add7.313.7
alter_table_drop7.713.3
count3.08.7
insert_key137.3140.3
order_by_big9.010.7
order_by_big_key8.710.0
order_by_big_key_desc9.010.7
order_by_big_key_diff9.010.7
order_by_big_key_prefix8.39.3
prepared_select16.318.0
select_big8.79.7
select_cache22639.7
select_key30.327.0
select_key232.728.7
select_key2_return_key30.327.3
select_key2_return_prim31.728.0
select_key_prefix32.328.0
select_key_return_key29.026.3
update_of_key6.721.0
update_of_primary_key_many_keys42.037.0