TOP比較データ> DBT-3のクエリー




OSS評価手法
オープンソースソフトウェアの性能・信頼性評価手法

第7回:大規模データベースにおけるPostgreSQLの性能評価
著者:SRA  松田 亮一   2005/6/27
前のページ  1  2   3  4  次のページ
DBT-3のクエリー

   実行するクエリーについてもTPC-Hの仕様で規定されており、DBT-3は基本的に準拠している。クエリーには、22個の意志決定支援のための情報を検索するクエリーと、2個のシステム運用中のデータ増減をシミュレートするためのクエリーがある。

   DBT-3では22個の検索クエリーが非常に特徴的であり、インデックスが使えない全行検索となるような複雑なSELECT文で構成されている。それぞれのクエリーには、Q1〜Q22という番号が付けられており、その中のひとつ(Q7)を以下に示す。

Q7のクエリー
select supp_nation, cust_nation, l_year, sum(volume) as revenue from (
   select n1.n_name as supp_nation, n2.n_name as cust_nation,
   extract(year from l_shipdate) as l_year,
   l_extendedprice * (1 - l_discount) as volume
   from supplier, lineitem, orders, customer, nation n1, nation n2
   where s_suppkey = l_suppkey and o_orderkey = l_orderkey
   and c_custkey = o_custkey and s_nationkey = n1.n_nationkey
   and c_nationkey = n2.n_nationkey
   and ((n1.n_name = 'JAPAN' and n2.n_name = 'VIETNAM')
     or (n1.n_name = 'VIETNAM' and n2.n_name = 'JAPAN'))
   and l_shipdate between date '1995-01-01' and date '1996-12-31'
) as shipping
group by supp_nation, cust_nation, l_year
order by supp_nation, cust_nation, l_year;

   2個のシステム運用中のデータ増減をシミュレートするSQLは、リフレッシュクエリーと呼ばれ、RF1〜RF2という番号が付けられている。表2に実行するSQLを示す。

RF1 insert into lineitem …; Inesrt into orders …;
RF2 delete from lineitem …; delete from orders …;

表2:リフレッシュクエリー

   意志決定支援システムでは、同時に複数のユーザが検索するようなWebアプリケーションとは異なり、意志決定に携わる極少数のユーザが利用するのが一般的である。DBT-3では同時に実行するユーザ数をストリーム数と呼び、DBT-3の実行時に指定できる。


DBT-3の測定内容

   DBT-3を実行すると、データベース投入用のテキストファイルを作成した後に、次の3つのテストを連続実行する。

  1. ロードテスト
  2. パワーテスト
  3. スループットテスト

   ロードテストは、あらかじめ作成しておいたテキストファイルのデータを、データベースにロードした時間を測定する。パワーテストは、22+2個のクエリーについて、ストリーム数を1として実行した時間を測定する。スループットテストは、22+2個にクエリーについて、指定のストリーム数で実行した時間を測定する。

   実行した結果は図2に示すようなHTMLのレポートとして出力できる。

DBT-3実行結果のレポート
図2:DBT-3実行結果のレポート
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ここまでに説明したDBT-3の概要と、実際のインストール方法および実行方法の詳細については、報告書のDB層6章の6.1〜6.3を参照のこと。

前のページ  1  2   3  4  次のページ


株式会社SRA 松田 亮一
著者プロフィール
株式会社SRA  松田 亮一
Smalltakerを目指すべく中途入社。現在はPostgreSQL+Javaに関するサポート/コンサル/セミナー講師などを業務としている。また、The Seasar Projectコミッタ、Jun for Java Projectコミッタとして、OSS活動を行っている。


INDEX
第7回:大規模データベースにおけるPostgreSQLの性能評価
  はじめに
DBT-3のクエリー
  DBT-3を実行した結果
  pgbenchを使った運用性能の測定