JP6020448B2 - データベース性能予測装置及びデータベース予測方法 - Google Patents

データベース性能予測装置及びデータベース予測方法 Download PDF

Info

Publication number
JP6020448B2
JP6020448B2 JP2013519351A JP2013519351A JP6020448B2 JP 6020448 B2 JP6020448 B2 JP 6020448B2 JP 2013519351 A JP2013519351 A JP 2013519351A JP 2013519351 A JP2013519351 A JP 2013519351A JP 6020448 B2 JP6020448 B2 JP 6020448B2
Authority
JP
Japan
Prior art keywords
block
time
average
entry
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013519351A
Other languages
English (en)
Other versions
JPWO2012169102A1 (ja
Inventor
盛朗 佐々木
盛朗 佐々木
吉洋 服部
吉洋 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2012169102A1 publication Critical patent/JPWO2012169102A1/ja
Application granted granted Critical
Publication of JP6020448B2 publication Critical patent/JP6020448B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、インデックスブロックが付与されたデータベース性能の予測技術に関する。
ツリー型のインデックスとして、Bツリーインデックスが広く用いられている。下記非特許文献1には、Bツリーを用いた検索、及び、Bツリーへのデータの挿入と削除のアルゴリズムが記載されている。また、下記非特許文献2には、広く用いられている関係データベースのORACLE(登録商標)におけるBツリーの説明が記載されている。
図10には、下記非特許文献2の図5から図7を参考にしたBツリーインデックスの構成例が示される。ORACLE(登録商標)では、或る単位(例えば8KB)で記憶領域が管理され、この単位がブロックと呼ばれる。ブロックには、データブロック、リーフブロック、ブランチブロックの三種類が含まれる。データブロックには、データ行全体が格納される。インデックスは、リーフブロック及びブランチブロックに格納される。よって、リーフブロック及びブランチブロックはインデックスブロックとも呼ばれる。リーフブロックは、インデックスブロックの中の最下層のブロックである。ブランチブロックは、リーフブロック又は他のブランチブロックへのリンクを持つブロックである。
リーフブロックとブランチブロックには、インデックスとなる少なくとも1つのエントリが格納される。最上位のブランチブロックは特にルートブロックと呼ばれる場合がある。各エントリは、検索対象となる列の値(以降キーと呼ぶ)及び識別子(ID)をそれぞれ含む。識別子は、データ行又は他のブロックを特定するためのデータである。リーフブロックのエントリに含まれる識別子は、データブロックのいずれか1つのデータ行を特定し、ブランチブロックのエントリに含まれる識別子は、他のブランチブロックのいずれか1つ又はリーフブロックのいずれか1つを特定する。よって、検索条件を満たすキーを持つリーフブロックを特定するためには、サーチャは、ブランチブロック中のキーをその検索条件のデータと順次比較し、識別子を用いてブランチブロックをたどっていく。
Bツリーは、低速なハードディスクから高速なメモリへとブロックをコピーするのがボトルネックになることを暗黙に想定して、設計されている。下記非特許文献1の「Balancing」のセクションには、ブロックを読むことはディスクアクセスを伴うため、Bツリーの高さを低く保つことが重要であると記載されている。実際、多くのブロックがハードディスクに記録され、一部のブロックのみがメモリ上にキャッシュされる状況では、ほとんどの場合、ブロックはディスクから読まれる。
この場合、性能のボトルネックはディスクアクセスとなる。メモリ上のデータへのアクセスのレイテンシとメモリ上のデータのデータ転送速度(帯域)は、ディスクに関するそれらよりも大幅に優れているからである。そこで、各ブロックのサイズをディスクI/Oの単位に合わせることにより、ディスクアクセスの最小化が図られている。
また、下記非特許文献5から7では、Bツリー等のデータの物理配置の案が提案されている。下記非特許文献5では、参照間隔が5分以下であればハードディスクではなくメモリにデータを置くことが有効であること(5分ルール)、10バイトをメモリに置くことで毎秒1命令を削減できるのであればメモリを余分に利用したとしても有効であることが提案されている。
上記5分ルールについて更に説明する。5分ルールとは、以下の条件式が満たされるか否かが、データをメモリに置くことに対して採算が取れるか否かの分岐点であり、参照間隔Rが5分の場合に当該条件式が満たされるというものである。
(A/R)−(M*B)=0
B<Bmax、A=2000、M=0.005、B=1333
ここで、Rは参照間隔、Mはメモリのバイト単価、Aはディスクの帯域単価、Bはデータサイズ、Bmaxはディスクのブロックサイズを示す。
下記非特許文献6では、非特許文献1の10年後の環境においては、ランダムにアクセスされるブロックは5分以下、シーケンシャルにアクセスされるブロックは1分以下の参照間隔であれば、ブロックをハードディスクではなくメモリに置くことが有効である旨、記載されている。更に、下記非特許文献6によれば、ディスクの帯域及びレイテンシでモデル化されたブロックアクセスにかかる時間と、ブロックにアクセスすることで検索対象を絞り込める度合いから、適切なBツリーのブロックサイズが求められている。
下記非特許文献7では、下記非特許文献1の20年後の環境においては、メモリとフラッシュメモリの間に上記5分ルールが成り立つことが記載されている。また、ディスクに置かれたデータをフラッシュメモリに格納するのが有効となる参照間隔が2時間であることも記載されている。下記非特許文献7によれば、Bツリーのブロックサイズに関して、ディスクは512KB、フラッシュメモリは2KBにすることが有効であるとの結果が得られている。
このようなデータベース性能を向上させ得る技術として、ORACLE(登録商標)のオプティマイザが存在する。下記非特許文献8では、CBO(Cost Base Optimizer)において、SQL文に対応する最適な実行計画を作成するために利用されるオペレーションコストCOSTが以下の式で算出されることが記載されている。
Figure 0006020448
CPU_COSTはオペレーションに必要なCPU(Central Processing Unit)サイクル数に比例する値であり、IO_COSTはオペレーションによって読み込まれるブロック数に比例する値である。SREADTIMは、単一ブロックのディスクからのランダムリードの平均レスポンス時間(msec)、CPUSPEEDは1秒当たりの平均サイクル数(MHz)である。
下記非特許文献9では、挿入操作においてアクセスされるブロック数を挿入操作にかかるコストとして次のように計算することが記載されている(pp.20参照)。
insertion cost = search cost + rewrite data block + rewrite index block + split rewrite = (3 + 1) + 1 + 1 + 2 = 8 (blocks)
下記非特許文献9によれば、ユーザは、「split rewrite」の数として適切な値を入力する必要があり、Bツリーの高さを3と仮定することにより、「search cost」に3が設定されている。一方、アクセスにかかる時間は一定であると仮定して、この時間は次のように算出される(pp. 371参照)。
Block access cost = disk access time to a block from a random starting location = average disk seek time + average rotational delay + block transfer
下記特許文献1では、データベース管理システムに関してアクセス経路を選択する際に、隣接ブロックにアクセスする度合を考慮することが提案されている。下記特許文献1における手法は、ディスクの隣接するブロックにアクセスする時間と、隣接しないブロックにアクセスする時間、各行の処理にかかる時間、アクセスするブロック数、隣接しないブロックへのアクセス数から、大まかな実行時間の予測値を算出する。
特開平2−54347号公報
Comer, D., "Ubiquitous B-Tree", ACM Computing Surveys, vol.11, no.2, p.121-137, June 1979 "Oracle Database概要", 10g リリース2, 部品番号:B19215-02, 2006年3月(図5-7), http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19215-02.pdf Drepper, U., "What Every Programmer Should Know about Memory", Red Hat Inc., November 21, 2007, http://people.redhat.com/drepper/cpumemory.pdf Mohan, C., "Implications of Storage Class Memories (SCM) on Software Architectures", 13th International Workshop on High Performance Transaction Systems (HPTS), October 2009, http://www.hpts.ws/session2/mohan.pdf Gray, J. and Putzolu, G. F., "The 5 Minute Rule For Trading Memory for Disc Accesses and The 10 Byte Rule for Trading Memory for CPU Time", Proceedings of SIGMOD 87, pp. 395 - 398, June 1987. Gray, J. and Graefe, G., "The Five-Minute Rule Ten Years Later, and Other Computer Storage Rules of Thumb", SIGMOD Record 26, 4, September 1997. Graefe, G., "The Five-Minute Rule Twenty Years Later, and How Flash Memory Changes the Rules", Proceedings of the Third International Workshop on Data Management on New Hardware, June 2007. 小田 圭二, "門外不出のOracle現場ワザ", 第4章 Oracleデータベースの頭脳 「オプティマイザ」徹底研究, http://www.oracle.com/technology/global/jp/pub/jp/db_magazine/mongai/chapter4_2.html#part2 Sam S. Lightstone, Toby J. Teorey, Tom Nadeau., "Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more (The Morgan Kaufmann Series in Data Management Systems)", Morgan Kaufmann; 4th Revised edition, 2007.
上述のように、データベースシステムを実現している各種ハードウェア資源の仕様を考慮して、データベースの性能を向上させるための様々な手法が提案されている。例えば、上述の非特許文献5から7において、ハードディスクのような2次記憶(補助記憶)へのアクセスがボトルネックとなる問題を解決するために、データの物理的配置の最適化が提案されている。
ところが、近年、メモリの低価格化と大容量化に伴い、Bツリーの多くのブロックをメモリに格納することができるようになった。この状況では、ディスクアクセスはデータベース性能のボトルネックにはならない。更に、2次記憶としてのディスクの代わりに、フラッシュメモリを用いることも一般的になってきた。
上記非特許文献3及び4では、記憶媒体であるキャッシュ、メモリ、フラッシュ及びディスクに関する仕様として、レイテンシ、帯域及び価格が記載されている(図11参照)。例えば、上記非特許文献3によれば、或るCPUのL2キャッシュのデータにアクセスすると、14サイクル以下の遅延が発生する。この遅延は、2.5から3.0(GHz)のCPUでは、概ね0.005(us)に相当する。なお、図11におけるフラッシュのレイテンシは、リードレイテンシである。
このように、データベースシステムを実現し得るハードウェア環境は多様化している。従って、データベースシステムを実現している環境に応じた適切な手法を選択しなければ、性能向上を果たすことはできない。従って、データベース操作に係る時間のようなデータベース性能を予測することは大変重要である。この点に関し、例えば、上述の特許文献1、非特許文献8及び9では、最適な実行計画を生成するために、操作コストや処理時間が予測されている。
しかしながら、これら予測手法は精度が低いという問題がある。これら予測手法は、例えば、インデックスブロックの構成態様、インデックスブロックへの操作手法、各操作を形成する詳細処理、インデックスブロックの物理配置等を考慮していないからである。構成態様としては、例えば、各ブロックにおいてエントリがソートされた状態で格納される態様、当該エントリがソートされていない状態で格納される態様が存在する。更に、操作手法としては、例えば、各ブロックの検索において、先頭のエントリから順に検索する手法、二分探索法により検索する手法が存在する。また、他の操作手法として、例えば、エントリの挿入において、空き領域の先頭に挿入する手法、ソートされたエントリ中の適切な位置に挿入する手法が存在する。詳細処理としては、例えば、エントリ挿入時におけるブロック分割処理がある。物理配置とは、対象ブロックが格納されている位置(記憶媒体)である。
このような各要因は、インデックスブロックが付与されたデータベース性能の予測精度に大きく影響を与える。
本発明の目的は、ツリー構造を持つインデックスが付与されたデータベースに対する操作にかかる時間を高精度で予測する技術を提供することにある。
本発明の各態様では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第1の態様は、ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測装置に関する。第1の態様に係るデータベース性能予測装置は、当該インデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得するデータ取得手段と、上記少なくとも2つの構成態様に関連する少なくとも2つの検索手法に対応し、かつ、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いた、少なくとも2種の計算手法を持ち、データ取得手段により取得された構成態様データに応じて少なくとも2種の計算手法を切り換えて実行することにより算出される、ブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として、取得する検索時間算出手段と、少なくとも2つの構成態様に関連する少なくとも2つのエントリ挿入手法に対応した少なくとも2種の計算手法であって、前記レイテンシ(L)及び前記エントリ処理時間(a)を用いた計算手法、及び、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いた計算手法を含む少なくとも2種の計算手法を持ち、データ取得手段により取得された構成態様データに応じて少なくとも2種の計算手法を切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を取得する挿入時間算出手段と、平均ブランチブロック高さ(h)と子ブロック検索時間(d)とを掛け合わせることにより、インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、リーフブロック走査時間(s)とライト比率(w)とを用いて、インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、エントリ挿入時間(i)とライト比率(w)とを用いて、インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、このように算出された各平均時間の合計を、インデックスブロックへの1操作当たりの平均処理時間として推定する処理時間推定手段と、を備える。
第2の態様は、ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測装置に関する。第2の態様に係るデータベース性能予測装置は、インデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)及び平均ブランチブロック高さ(h)を取得し、第2記憶媒体に関する第2レイテンシ、第1記憶媒体にインデックスブロックの対象部分が格納されておらず第2記憶媒体から対象部分を転送する必要のある確率を示すキャッシュミス率、及び、第2記憶媒体から第1記憶媒体へのブロック当たりのデータ転送時間を取得する第1データ取得手段と、第1記憶媒体に格納されるブロックから子ブロックを特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得する第2データ取得手段と、第2レイテンシに、第2記憶媒体から第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出する付加時間算出手段と、1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)及び1次エントリ挿入時間(i)に付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出する個別時間算出手段と、2次子ブロック検索時間(d')と平均ブランチブロック高さ(h)とを掛け合わせることにより、インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、2次リーフブロック走査時間(s')とライト比率(w)とを用いて、インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、2次エントリ挿入時間(i')とライト比率(w)とを用いて、インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、算出された各平均時間の合計を、インデックスブロックへの1操作当たりの平均処理時間として推定する処理時間推定手段と、を備える。
第3の態様は、ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測方法に関する。第3の態様に係るデータベース性能予測方法は、コンピュータが、インデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得し、少なくとも2つの構成態様に関連する少なくとも2つの検索手法に対応し、かつ、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いた、少なくとも2種の計算手法を、構成態様データに応じて切り換えて実行することにより算出される、ブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として、取得し、少なくとも2つの構成態様に関連する少なくとも2つのエントリ挿入手法に対応した少なくとも2種の計算手法であって、レイテンシ(L)及びエントリ処理時間(a)を用いた計算手法、及び、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いた計算手法を含む少なくとも2種の計算手法を、構成態様データに応じて切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を取得し、平均ブランチブロック高さ(h)と子ブロック検索時間(d)とを掛け合わせることにより、インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、リーフブロック走査時間(s)とライト比率(w)とを用いて、インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、エントリ挿入時間(i)とライト比率(w)とを用いて、インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、算出された各平均時間の合計を、インデックスブロックへの1操作当たりの平均処理時間として推定する、ことを含む。
第4の態様は、ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測方法に関する。第4の態様に係るデータベース性能予測方法は、コンピュータが、インデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)及び平均ブランチブロック高さ(h)を取得し、第2記憶媒体に関する第2レイテンシ、第1記憶媒体にインデックスブロックの対象部分が格納されておらず第2記憶媒体から対象部分を転送する必要のある確率を示すキャッシュミス率、及び、第2記憶媒体から第1記憶媒体へのブロック当たりのデータ転送時間を取得し、第1記憶媒体に格納されるブロックから子ブロックを特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得し、第2レイテンシに、第2記憶媒体から第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出し、1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)及び1次エントリ挿入時間(i)に付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出し、2次子ブロック検索時間(d')と平均ブランチブロック高さ(h)とを掛け合わせることにより、インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、2次リーフブロック走査時間(s')とライト比率(w)とを用いて、インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、2次エントリ挿入時間(i')とライト比率(w)とを用いて、インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、算出された各平均時間の合計を、インデックスブロックへの1操作当たりの平均処理時間として推定する、ことを含む。
なお、本発明の他の態様としては、上記各態様の構成をコンピュータに実現させるコンピュータプログラムであってもよいし、このようなコンピュータプログラムを格納するコンピュータ読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
上記各態様によれば、ツリー構造を持つインデックスが付与されたデータベースに対する操作にかかる時間を高精度で予測する技術を提供することができる。
図1は、第1実施形態におけるデータベース性能予測装置の構成例を概念的に示す図である。 図2は、第1実施形態におけるデータベース性能予測装置の動作例をデータの流れと共に示す図である。 図3は、第2実施形態におけるデータベース性能予測装置の構成例を概念的に示す図である。 図4は、第2実施形態におけるデータベース性能予測装置の動作例をデータの流れと共に示す図である。 図5は、第3実施形態におけるデータベース性能予測装置の構成例を概念的に示す図である。 図6は、第3実施形態におけるデータベース性能予測装置の動作例をデータの流れと共に示す図である。 図7は、第4実施形態におけるデータベース性能予測装置の構成例を概念的に示す図である。 図8は、第4実施形態におけるデータベース性能予測装置の動作例をデータの流れと共に示す図である。 図9は、第5実施形態におけるデータベース性能予測装置の動作例をデータの流れと共に示す図である。 図10は、Bツリーインデックスの構成例を示す図である。 図11は、各記憶媒体の仕様の例を示す図である。
以下、本発明の実施の形態について説明する。なお、以下に挙げる各実施形態はそれぞれ例示であり、本発明は以下の各実施形態の構成に限定されない。
[第1実施形態]
以下、本発明の第1実施形態としてのデータベース性能予測装置について説明する。第1実施形態におけるデータベース性能予測装置は、データベース性能として、ツリー構造を持つインデックスが付与されたデータベースに対する操作にかかる時間を評価(予測)する。本実施形態では、予測対象のデータベースに付与されるインデックスはツリー構造に格納されるものであればよく、Bツリーと呼ばれる技術に限定されない。
〔装置構成〕
図1は、第1実施形態におけるデータベース性能予測装置の構成例を概念的に示す図である。データベース性能予測装置(以降、単に、予測装置と表記する)10は、図1に示すように、ハードウェア構成として、CPU1、メモリ2、入出力インタフェース(I/F)3等を有する。メモリ2は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク、可搬型記憶媒体等である。入出力I/F3は、他の装置と通信を行う通信装置等と接続される。入出力I/F3は、表示装置や入力装置等のようなユーザインタフェース装置と接続されてもよい。なお、本実施形態は、予測装置10のハードウェア構成を限定しない。
予測装置10は、ツリー構造のインデックスブロックを含むデータベースの性能予測として、当該インデックスブロックへの1操作当たりの平均処理時間を推定する。予測装置10の予測対象である当該データベースは、予測装置10上で実現されてもよいし、他のコンピュータ上で実現されてもよい。
予測対象のデータベースは、例えば、図10で示した例のような構成を持つ。以降、インデックスエントリの識別子によりリンクされた各インデックスブロックにおいて、そのインデックスエントリを含むブランチブロックを親ブロックと表記し、そのインデックスエントリの識別子で特定されるリーフブロック又は他のブランチブロックを子ブロックと表記する場合もある。
第1実施形態における予測装置10は、図1に示されるように、データ取得部11、検索時間算出部15、挿入時間算出部16、処理時間推定部18等を有する。これら各処理部は、メモリ2に格納されるプログラムがCPU1により実行されることにより実現される。当該プログラムは、例えば、CD(Compact Disc)、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力I/F3を介してインストールされ、メモリ2に格納される。
データ取得部11は、予測対象のデータベースのインデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得する。
構成態様データは、少なくとも2つの構成態様のうち、予測対象のインデックスブロックで採用されている構成態様を特定するためのデータである。ここで、構成態様とは、ブロック内のエントリがソートされているか否か、ブロック内のエントリの検索手法及び操作手法など、予測対象のインデックスブロックで採用され得る形態を意味する。
第1実施形態では、2つの構成態様がサポートされる。具体的には、第1の構成態様は、ブロック内のエントリがソートされておらず、先頭のエントリから順に検索する手法(以降、全部検索手法と表記する)が検索手法として採用され、空き領域の先頭に挿入する手法がエントリ挿入手法として採用される形態を示す。第2の構成態様は、ブロック内のエントリがソートされており、二分探索法により検索する手法(以降、二分探索手法と表記する)が検索手法として採用され、ソートされたエントリ中の適切な位置に挿入する手法がエントリ挿入手法として採用される形態を示す。なお、本実施形態は、サポートすべき構成態様をこのような2つの構成態様に限定せず、その他の検索手法及びその他のエントリ挿入手法を加えて、3つ以上の構成態様がサポートされてもよい。
データ取得部11は、入出力I/F3に接続されるユーザインタフェース装置を用いてユーザが入力することにより、上述のような各情報を取得する。この場合、データ取得部11は、各情報を入力する画面を表示装置(図示せず)に表示させ、この画面に入力されたデータを上述の各情報として取得する。また、データ取得部11は、各情報を他の装置から通信を介して取得してもよいし、各情報を格納する可搬型記憶媒体から取得してもよい。
検索時間算出部15は、データ取得部11により取得された、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いて、子ブロック検索時間(d)及びリーフブロック走査時間(s)を算出する。子ブロック検索時間(d)は、或るブランチブロックから或る子ブロック(一段下位のブロック)を特定するのにかかる平均時間を示す。リーフブロック走査時間(s)は、リーフブロック内で対象エントリを特定するのにかかる平均時間を示す。検索時間算出部15は、ブランチブロック内又はリーフブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として算出する。
検索時間算出部15は、上記少なくとも2つの構成態様が示す少なくとも2つの検索手法に対応し、かつ、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いた少なくとも2種の計算手法を持つ。例えば、検索時間算出部15は、全部検索手法及び二分探索手法の各々に対応する2種の計算手法を持つ。
検索時間算出部15は、データ取得部11により取得された構成態様データに応じて少なくとも2種の計算手法を切り換えて実行することによりブロック内で対象エントリを特定するのにかかる平均時間を算出する。検索時間算出部15は、この算出された平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として取得する。
検索時間算出部15が持つ少なくとも2種の計算手法の例を以下に挙げる。第1の構成態様(全部検索手法)に対応する計算手法の例が以下の(式1)であり、第2の構成態様(二分探索手法)に対応する計算手法の例が以下の(式2)である。以下の式における「*」は乗算を示す。
d=L+a*m、s=L+a*m (式1)
d=(L+a)*logm、s=(L+a)*logm (式2)
全部検索手法に対応する計算では、各ブロックにおいて全エントリが検索されると仮定し、(式1)に示されるように、レイテンシ(L)に、エントリ処理時間(a)とブロック当たりの平均エントリ数(m)とを掛け合わせた値が加算される。一方、二分探索手法に対応する計算では、一回の比較でレイテンシ(L)とエントリ処理時間(a)がかかると仮定し、(式2)に示されるように、レイテンシ(L)とエントリ処理時間(a)とを足し合わせた値に、ブロック当たりの平均エントリ数(m)に関し二分探索を行った際の平均比較回数が掛け合わされる。
なお、上記(式1)の第2項(a*m)は、対象のエントリが特定されるまでに参照されるエントリ数の精度を上げるための所定の係数(α)を更に掛け合わせた項(α*a*m)とすることもできる。
挿入時間算出部16は、上記少なくとも2つの構成態様が示す少なくとも2つのエントリ挿入処理に対応した少なくとも2種の計算手法を、データ取得部11により取得された構成態様データに応じて切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を算出する。挿入時間算出部16は、少なくとも2種の計算手法として、レイテンシ(L)及びエントリ処理時間(a)を用いた計算手法、及び、レイテンシ(L)、エントリ処理時間(a)及びブロック当たりの平均エントリ数(m)を用いた計算手法を持つ。
挿入時間算出部16が持つ少なくとも2種の計算手法の例を以下に挙げる。第1の構成態様に対応する計算手法の例が以下の(式3)であり、第2の構成態様に対応する計算手法の例が以下の(式4)である。
i=L+a (式3)
i=(L+a)*logm+a*m (式4)
第1の構成態様に対応する計算では、空き領域の先頭に1つのエントリが挿入されるため、空きレイテンシ(L)及びエントリ処理時間(a)が合算される。一方、第2の構成態様に対応する計算では、エントリの挿入箇所を特定するのにかかる時間と、エントリを挿入するために既に格納されているエントリの順番を移動させるのにかかる時間とが合算される。具体的には、(式4)の前半の項が前者の時間を示し、後半の項が後者の時間を示す。(式4)の例によれば、(式4)の前半の項は、(式2)と同じになっている。また、エントリの順番を移動させるのにかかる時間(後半の項)は、移動させる必要のある平均エントリ数(m/2)に、1つのエントリの移動時間(2*a)が掛け合わされることにより算出される(a*m)。1つのエントリの移動時間は、そのエントリを読む時間(a)とそのエントリを移動後の位置に書く時間(a)とを含む。
なお、上記(式4)の第2項(a*m)は、移動させる必要のある平均エントリ数の精度を上げるための所定の係数(α)を更に掛け合わせたものとすることもできる(α*a*m)。
処理時間推定部18は、検索時間算出部15により算出された子ブロック検索時間(d)及びリーフブロック走査時間(s)、挿入時間算出部16により算出されたエントリ挿入時間(i)、データ取得部11により取得された情報を用いて、インデックスブロックへの1操作当たりの平均処理時間(t)を算出する。処理時間推定部18は、この算出された時間を当該データベースに対する操作にかかる時間として推定する。なお、推定する時間において、データブロックへの操作にかかる時間が考慮されていないのは、データブロックへの操作にかかる時間がデータベース全体の性能に与える影響が、インデックスブロックへの操作に比較して小さいからである。即ち、データブロックへの操作(処理)よりもインデックスブロックへの操作のほうが実行される頻度が多いからである。
処理時間推定部18は、インデックスブロックへの1操作を形成する詳細処理毎に、その処理にかかる平均時間をそれぞれ算出し、各平均時間を合算することにより、インデックスブロックへの1操作当たりの平均処理時間(t)を算出する。具体的には、処理時間推定部18は、インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間(以降、リーフブロック特定時間と表記する)、インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間(以降、エントリ特定時間と表記する)、インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間(以降、エントリ挿入時間と表記する)を算出する。
例えば、処理時間推定部18は、以下の(式5)を用いて、最終的な平均処理時間(t)を算出する。
t=h*d+(1−w)*s+w*i (式5)
(式5)に示されるように、処理時間推定部18は、平均ブランチブロック高さ(h)と子ブロック検索時間(d)とを掛け合わせることにより、当該リーフブロック特定時間を算出する(式5の第1項)。処理時間推定部18は、リーフブロック走査時間(s)とライト比率(w)とを用いて、当該エントリ特定時間を算出する(式5の第2項)。処理時間推定部18は、エントリ挿入時間(i)とライト比率(w)とを用いて、当該エントリ挿入時間を算出する(式5の第3項)。
〔動作例〕
図2は、第1実施形態における予測装置10の動作例をデータの流れと共に示す図である。予測装置10では、まず、データ取得部11が、構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ処理時間(a)、レイテンシ(L)、平均ブランチブロック高さ(h)及びライト比率(w)を取得する(S1)。
次に、検索時間算出部15及び挿入時間算出部16が、ブロック当たりの平均エントリ数(m)、エントリ処理時間(a)及びレイテンシ(L)を用いて、構成態様データに対応する計算を行う(S2)。これにより、子ブロック検索時間(d)、リーフブロック走査時間(s)及びエントリ挿入時間(i)が算出される(S2−1、S2−2、S2−3)。処理(S2−1)、(S2−2)及び(S2−3)は並列に実行されてもよいし、所定の順番でシーケンシャルに実行されてもよい。
最終的に、処理時間推定部18が、処理(S2)で算出された、子ブロック検索時間(d)、リーフブロック走査時間(s)及びエントリ挿入時間(i)と共に、データ取得部11により取得された平均ブランチブロック高さ(h)及びライト比率(w)を用いて、平均処理時間(t)を算出する(S3)。
〔第1実施形態の作用及び効果〕
上述のように、第1実施形態における予測装置10では、データ取得部11により取得された情報に基づいて、インデックスブロックに対する各種詳細処理にかかる各時間が検索時間算出部15及び挿入時間算出部16によりそれぞれ算出される。具体的には、或るブランチブロックから或る子ブロック(一段下位のブロック)を特定するのにかかる平均時間(子ブロック検索時間(d))、リーフブロック内で対象エントリを特定するのにかかる平均時間(リーフブロック走査時間(s))及び、リーフブロックに対象エントリを挿入するのにかかる平均時間(エントリ挿入時間(i))が算出される。
このとき、子ブロック検索時間(d)、リーフブロック走査時間(s)及びエントリ挿入時間(i)を算出する手法は、予測対象のインデックスブロックに採用されている構成態様を示す構成態様データに応じて切り替えられる。具体的には、全部検索手法が採用されるインデックスブロックに対しては、全部検索手法での処理内容が反映された計算が実行され、二分探索手法が採用されるインデックスブロックに対しては、二分探索手法での処理内容が反映された計算が実行される。同様に、エントリ挿入時間を得るために、インデックスブロックに採用されているエントリ挿入手法での処理内容が反映された計算が実行される。
即ち、第1実施形態では、インデックスブロックの構成態様、インデックスブロックへの操作手法が反映された状態で、インデックスブロックへの1操作当たりの平均処理時間(t)が算出される。従って、第1実施形態によれば、ツリー構造を持つインデックスが付与されたデータベースに対する操作にかかる時間を高精度で予測することができる。
[第2実施形態]
以下、第2実施形態における予測装置10について、第1実施形態と異なる内容を中心に説明する。第2実施形態における予測装置10は、エントリ挿入時におけるブロック分割処理にかかる時間を更に考慮して、ツリー構造を持つインデックスが付与されたデータベースに対する操作にかかる時間を予測する。なお、以下の説明では、第1実施形態と同じ内容については適宜省略される。
〔装置構成〕
図3は、第2実施形態における予測装置10の構成例を概念的に示す図である。第2実施形態における予測装置10は、第1実施形態の構成に加えて、分割時間算出部21を更に有する。分割時間算出部21についても、メモリ2に格納されるプログラムがCPU1により実行されることにより実現される。
データ取得部11は、第1実施形態で挙げた情報に加えて、各ブロックの最大エントリ数(k)及びインデックスブロックへの1操作当たりのブロック分割数(j)を更に取得する。また、第2実施形態におけるデータ取得部11は、取得された各ブロックの最大エントリ数(k)を用いた計算により、ブロック当たりの平均エントリ数(m)を取得する。具体的には、データ取得部11は、各ブロックの最大エントリ数(k)にブロック当たりの所定使用率を掛け合わせることにより算出する。この所定使用率は、予めデータ取得部11が保持していればよく、例えば、0.75に設定される。
分割時間算出部21は、データ取得部11により取得された、レイテンシ(L)、エントリ処理時間(a)及び各ブロックの最大エントリ数(k)を用いて、1回のブロック分割処理にかかる平均時間を示す分割処理単位時間(c)を算出する。分割時間算出部21は、データ取得部11により取得された構成態様データに応じて少なくとも2種の計算手法を切り換えて実行することにより、当該分割処理単位時間(c)を算出する。
分割時間算出部21は、上記少なくとも2つの構成態様が示す少なくとも2つのブロック分割手法の各々に対応し、かつ、レイテンシ(L)、エントリ処理時間(a)及び各ブロックの最大エントリ数(k)を用いた少なくとも2種の計算手法を持つ。本実施形態における分割時間算出部21は、ブロック内のエントリがソートされているか否かに応じて異なる2つのブロック分割手法の各々に対応する2種の計算手法を持つ。
分割時間算出部21が持つ少なくとも2種の計算手法の例を以下に挙げる。第1の構成態様に対応する計算手法の例が以下の(式6)であり、第2の構成態様に対応する計算手法の例が以下の(式7)である。
c=(L+1.5*a)*k (式6)
c=a*k+2L (式7)
第1の構成態様では、ブロック内のエントリ数が最大エントリ数となっている場合にブロック分割処理が行われ、ブロック分割処理は、移動させるエントリを特定するために全部のエントリを参照し、半数のエントリを移動させると仮定する。即ち、この仮定では、分割対象のブロック内では、半数のエントリには参照のみが行われ、残りの半数のエントリには参照及び書き込みが行われる。よって、第1の構成態様が示すブロック分割処理では、1エントリに対する処理として、1.5倍のエントリ処理時間(a)と1つのレイテンシ(L)とがかかる。1エントリに対する処理当たり1つのレイテンシ(L)がかかるとの考えは、移動させるエントリと参照のみのエントリとの割合が平均で同じになり、かつ、移動で1つのレイテンシ(L)、参照で1つのレイテンシ(L)が必要となるとの考えに基づく。最終的に、最大エントリ数分のエントリに対して上記1エントリ当たりの処理時間がかかるため、第1の構成態様に対応する計算式は、(式6)のようになる。
なお、上記(式6)は、ブロック分割処理の実行条件を、最大エントリ数に対するブロック内エントリ数の割合が所定割合βを超える場合とし、各ブロックの最大エントリ数(k)にβが掛け合わされた式((L+1.5*a)*k*β)とすることもできる。更に、移動されるエントリ数の割合を代えることにより1.5を他の数値に代えてもよい。
一方、第2の構成態様では、ブロック内のエントリ数が最大エントリ数となっている場合にブロック分割処理が行われ、ブロック内のエントリはソートされているため、ブロック分割処理は、中央以降に位置するエントリを一括で他のブロックに移動させると仮定する。よって、中央のエントリへのアクセスに1つのレイテンシ(L)がかかり、最初の書き込み(移動)のアクセスに1つのレイテンシ(L)がかかるため、1回のブロック分割処理には2Lかかる。更に、半数のエントリに対して参照及び書き込み(移動)が行われるため、ブロック分割処理における1エントリに対する処理として1エントリ処理時間(a)(=(1/2)*2*a)かかる。結果、第2の構成態様に対応する計算式は、(式7)のようになる。
(式7)についても同様に、移動されるエントリ数の割合を代えることにより、第2項の数値「2」を代えてもよいし、第1項に所定係数を掛け合わせてもよい。第1項に掛け合わせる所定係数は、例えば、ブロック分割処理の実行条件を、最大エントリ数に対するブロック内エントリ数の割合が所定割合βを超える場合とし、この所定割合βと移動されるエントリ数の割合とを加味した値に決定される。
処理時間推定部18は、データ取得部11により取得されたブロック分割数(j)を分割時間算出部21で算出された分割処理単位時間(c)に掛け合わせることにより、インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を更に算出し、このブロック分割処理にかかる平均時間を第1実施形態で述べた他の平均時間の合計に更に加えることにより、インデックスブロックへの1操作当たりの平均処理時間を算出する。
例えば、処理時間推定部18は、以下の(式8)を用いて、最終的な平均処理時間(t)を算出する。以下の(式8)では、最後の項が、インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間に相当する。
t=h*d+(1−w)*s+w*i+c*j (式8)
〔動作例〕
図4は、第2実施形態における予測装置10の動作例をデータの流れと共に示す図である。予測装置10では、まず、データ取得部11が、第1実施形態で挙げた各情報に加えて、各ブロックの最大エントリ数(k)及び1操作当たりのブロック分割数(j)を更に取得する(S1)。第2実施形態では、データ取得部11は、各ブロックの最大エントリ数(k)を用いて、ブロック当たりの平均エントリ数(m)を算出する(S1−1)。
第2実施形態では、図2に示される第1実施形態の動作例における処理(S2)において、分割時間算出部21が、エントリ処理時間(a)、レイテンシ(L)及び各ブロックの最大エントリ数(k)を用いて、構成態様データに対応する計算を行う(S2−4)。これにより、子ブロック検索時間(d)、リーフブロック走査時間(s)及びエントリ挿入時間(i)に加えて、分割処理単位時間(c)が更に算出される。
処理時間推定部18は、第1実施形態で算出される値に、分割処理単位時間(c)と1操作当たりのブロック分割数(j)とを掛け合わせた値を加算することにより、平均処理時間(t)を算出する(S3)。
〔第2実施形態における作用及び効果〕
上述のように、第2実施形態における予測装置10では、1回のブロック分割処理にかかる平均時間を示す分割処理単位時間(c)が分割時間算出部21により算出され、この分割処理単位時間(c)と1操作当たりのブロック分割数(j)とが掛け合わされることにより1操作当たりのブロック分割処理にかかる平均時間が算出される。そして、第1実施形態で述べた、リーフブロック特定時間、エントリ特定時間及びエントリ挿入時間の合計に更にそのブロック分割処理にかかる平均時間が合算されることにより、最終的な平均処理時間(t)が算出される。
このように、第2実施形態では、インデックスブロックへの操作の詳細処理としてのブロック分割処理をも反映させた状態で、インデックスブロックへの1操作当たりの平均処理時間(t)が算出される。従って、第2実施形態によれば、ツリー構造を持つインデックスが付与されたデータベースに対する操作にかかる時間を第1実施形態よりもより高精度で予測することができる。
更に、第2実施形態では、分割処理単位時間(c)を算出する手法が、ブロック分割処理の内容に影響を与えるインデックスブロックの構成態様に応じて切り替えられる。結果、インデックスブロックに採用されているブロック分割処理手法での処理内容が反映された計算が実行されることにより、分割処理単位時間(c)が算出される。よって、第2実施形態によれば、インデックスブロックの構成態様を考慮することにより、高精度の分割処理単位時間(c)を得ることができる。
[第3実施形態]
以下、第3実施形態における予測装置10について、第1実施形態及び第2実施形態と異なる内容を中心に説明する。第3実施形態における予測装置10は、インデックスブロックの物理配置を更に考慮して、データベースに対する操作にかかる時間を予測する。なお、以下の説明では、第1実施形態及び第2実施形態と同じ内容については適宜省略される。
〔装置構成〕
図5は、第3実施形態における予測装置10の構成例を概念的に示す図である。第3実施形態における予測装置10は、第2実施形態の構成に加えて、付加時間算出部31を更に有する。付加時間算出部31についても、メモリ2に格納されるプログラムがCPU1により実行されることにより実現される。
データ取得部11は、第1実施形態で挙げた情報に加えて、第1記憶媒体にインデックスブロックの対象部分が格納されておらず第2記憶媒体から対象部分を転送する必要のある確率を示すキャッシュミス率(1−H)、及び、第2記憶媒体から第1記憶媒体へのブロック当たりのデータ転送時間(u)を更に取得する。また、データ取得部11は、第1実施形態で挙げたレイテンシ(L)として、第1記憶媒体に関する第1レイテンシ(L)及び第2記憶媒体に関する第2レイテンシ(L')を取得する。なお、データ取得部11は、第1記憶媒体にインデックスブロックの対象部分が格納されており第2記憶媒体から対象部分を転送する必要のない確率を示すキャッシュヒット率(H)を取得し、このキャッシュヒット率(H)からキャッシュミス率(1−H)を算出するようにしてもよい。
ここで、第1記憶媒体とは、第2記憶媒体よりも高速な記憶媒体であり、第2記憶媒体に格納されるインデックスブロックの一部を格納する記憶媒体を意味する。例えば、図11の例によれば、第1記憶媒体がメモリ(DIMM DDR3)であり、第2記憶媒体がディスク(SATA)である。なお、第1記憶媒体はキャッシュ(L2)であってもよいし、第2記憶媒体はフラッシュメモリであってもよい。また、第1記憶媒体は、メインメモリ、主記憶、一次記憶などと呼ばれ、第2記憶媒体は、補助記憶、二次記憶などと呼ばれる。本実施形態は、第1記憶媒体及び第2記憶媒体の具体的実現形態を限定しない。
付加時間算出部31は、第1記憶媒体に対象のインデックスブロックが格納されておらず、第2記憶媒体から第1記憶媒体にその対象のインデックスブロックを転送し格納するのにかかる時間(以降、キャッシュミス時間と表記する)を算出し、このキャッシュミス時間にキャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出する。本実施形態では、キャッシュミス時間は、第2記憶媒体にアクセスするのにかかる第2レイテンシ(L')に、第2記憶媒体から第1記憶媒体に対象のインデックスブロックを転送するのにかかるデータ転送時間(u)を加算することにより算出される。
検索時間算出部15は、第1実施形態で述べた手法により算出された子ブロック検索時間(d)及びリーフブロック走査時間(s)に、付加時間算出部31により算出された付加時間(u)を加算することにより、第3実施形態における子ブロック検索時間(d')及びリーフブロック走査時間(s')を算出する。例えば、検索時間算出部15は、次の(式9)を用いて、子ブロック検索時間(d')及びリーフブロック走査時間(s')を算出する。
d'=d+(L'+u)*(1−H)、s'=s+(L'+u)*(1−H) (式9)
挿入時間算出部16は、第1実施形態で述べた手法により算出されたエントリ挿入時間(i)に、付加時間算出部31により算出された付加時間(u)を加算することにより、第3実施形態におけるエントリ挿入時間(i')を算出する。例えば、挿入時間算出部16は、次の(式10)を用いて、エントリ挿入時間(i')を算出する。
i'=i+(L'+u)*(1−H) (式10)
分割時間算出部21は、第2実施形態で述べた手法により算出された分割処理単位時間(c)に、付加時間算出部31により算出された付加時間(u)を加算することにより、第3実施形態における分割処理単位時間(c')を算出する。例えば、分割時間算出部21は、次の(式11)を用いて、分割処理単位時間(c)を算出する。
c'=c+(L'+u)*(1−H) (式11)
処理時間推定部18は、このように算出された、子ブロック検索時間(d')、リーフブロック走査時間(s')、エントリ挿入時間(i')、分割処理単位時間(c')を第2実施形態と同様の方法で利用することにより、インデックスブロックへの1操作当たりの平均処理時間(t)を算出する。具体的には、処理時間推定部18は、次の(式12)を用いて、当該平均処理時間(t)を算出する。
t=h*d'+(1−w)*s'+w*i'+c'*j (式12)
図6は、第3実施形態における予測装置10の動作例をデータの流れと共に示す図である。予測装置10では、まず、データ取得部11が、第2実施形態で挙げた各情報に加えて、ブロック当たりのデータ転送時間(u)及びキャッシュミス率(1−H)を取得する。また、第3実施形態では、第1実施形態におけるレイテンシ(L)として、第1レイテンシ(L)と第2レイテンシ(L')とが取得される。
第3実施形態では、図4に示される第2実施形態の動作例における処理(S2)において、付加時間算出部31が、第2レイテンシ(L')、ブロック当たりのデータ転送時間(u)及びキャッシュミス率(1−H)を用いて、キャッシュミスに関する付加時間を算出する(S2−5)。
次に、第3実施形態では、検索時間算出部15、挿入時間算出部16及び分割時間算出部21が、子ブロック検索時間(d)、リーフブロック走査時間(s)、エントリ挿入時間(i)及び分割処理単位時間(c)に上記付加時間をそれぞれ加算する(S3)。処理時間推定部18は、この付加時間が加算された子ブロック検索時間(d')、リーフブロック走査時間(s')、エントリ挿入時間(i')及び分割処理単位時間(c')を用いて、平均処理時間(t)を算出する(S4)。
〔第3実施形態における作用及び効果〕
このように、第3実施形態では、キャッシュミス時特有の処理時間が付加時間(u)として算出され、この付加時間を含む形で、各種処理にかかる時間(子ブロック検索時間(d')、リーフブロック走査時間(s')、エントリ挿入時間(i')、分割処理単位時間(c'))がそれぞれ算出される。
よって、第3実施形態によれば、キャッシュヒット時及びキャッシュミス時の各処理の内容を反映させた状態で最終的な平均処理時間(t)を算出することができる。即ち、第3実施形態によれば、インデックスブロックの物理配置をも考慮して、データベースに対する操作にかかる時間を、第1実施形態及び第2実施形態よりもより高精度に予測することができる。
[第4実施形態]
以下、第4実施形態における予測装置10について、第1実施形態から第3実施形態と異なる内容を中心に説明する。第4実施形態は、第3実施形態とは異なる構成において、インデックスブロックの物理配置を考慮してデータベースに対する操作にかかる時間を予測する。なお、以下の説明では、第1実施形態から第3実施形態と同じ内容については適宜省略される。
〔装置構成〕
図7は、第4実施形態における予測装置10の構成例を概念的に示す図である。第4実施形態における予測装置10は、データ取得部41、個別時間算出部42、付加時間算出部43及び処理時間推定部44等を有する。これら各処理部は、メモリ2に格納されるプログラムがCPU1により実行されることにより実現される。
データ取得部41は、予測対象のデータベースのインデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)、平均ブランチブロック高さ(h)、第2記憶媒体に関する第2レイテンシ(L')、第1記憶媒体にインデックスブロックの対象部分が格納されておらず第2記憶媒体から対象部分を転送する必要のある確率を示すキャッシュミス率(1−H)、及び、第2記憶媒体から第1記憶媒体へのブロック当たりのデータ転送時間(u)を取得する。ここで、ライト比率(w)、平均ブランチブロック高さ(h)、第2レイテンシ(L')、キャッシュミス率(1−H)、及びデータ転送時間(u)は、第1実施形態及び第3実施形態におけるものと同意である。
更に、データ取得部41は、第1記憶媒体に格納されるブランチブロックから子ブロック(他のブランチブロック又はリーフブロック)を特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得する。
データ取得部41は、入出力I/F3に接続されるユーザインタフェース装置を用いてユーザが入力することにより、上述のような各情報を取得する。この場合、データ取得部41は、各情報を入力する画面を表示装置(図示せず)に表示させ、この画面に入力されたデータを上述の各情報として取得する。また、データ取得部41は、各情報を他の装置から通信を介して取得してもよいし、各情報を格納する可搬型記憶媒体から取得してもよい。また、データ取得部41は、第1実施形態と同様の手法で算出された子ブロック検索時間(d)及びリーフブロック走査時間(s)並びにエントリ挿入時間(i)を1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)及び1次エントリ挿入時間(i)として取得してもよい。
付加時間算出部43は、第3実施形態と同様の手法により、キャッシュミスに関する付加時間を算出する。
個別時間算出部42は、1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)及び1次エントリ挿入時間(i)に、付加時間算出部43により算出された付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出する。個別時間算出部42におけるこの計算は、第3実施形態における(式9)及び(式10)と同様である。
処理時間推定部44は、個別時間算出部42により算出された、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')、データ取得部41により取得された各情報を用いて、インデックスブロックへの1操作当たりの平均処理時間(t)を算出する。具体的には、処理時間推定部44は、次の(式13)を用いて、当該平均処理時間(t)を算出する。
t=h*d'+(1−w)*s'+w*i' (式13)
上記(式13)における第1項(h*d')は、インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を示す。その第2項((1−w)*s')は、インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を示す。その第3項(w*i')は、インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を示す。
図8は、第4実施形態における予測装置10の動作例をデータの流れと共に示す図である。予測装置10では、まず、データ取得部41が、第2記憶媒体に関する第2レイテンシ(L')、ブロック当たりのデータ転送時間(u)、キャッシュミス率(1−H)、平均ブランチブロック高さ(h)、ライト比率(w)を取得する(S1)。データ取得部41は、更に、1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)及び1次エントリ挿入時間(i)を取得する(S1)。
次に、付加時間算出部43が、第3実施形態と同様に、付加時間を算出する(S2)。
続いて、個別時間算出部42は、データ取得部11により取得された、1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)及び1次エントリ挿入時間(i)に、付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出する(S3)。
最終的に、処理時間推定部44は、個別時間算出部42により算出された、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')と、データ取得部41により取得された平均ブランチブロック高さ(h)及びライト比率(w)とを用いて、平均処理時間(t)を算出する(S4)。
〔第4実施形態の作用及び効果〕
このように第4実施形態では、キャッシュミス時特有の処理時間が付加時間(u)として算出され、この付加時間を含む形で、各種処理にかかる時間(2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')、2次エントリ挿入時間(i'))がそれぞれ算出される。また、第4実施形態では、これら各種処理にかかる時間を算出する上で利用される1次子ブロック検索時間(d)、1次リーフブロック走査時間(s)、1次エントリ挿入時間(i)は、第1実施形態の手法の他、様々な手法で取得され得る。
第4実施形態によれば、キャッシュヒット時及びキャッシュミス時の各処理の内容を反映させた状態で最終的な平均処理時間(t)を算出することができるため、データベースに対する操作にかかる時間を高精度に推定することができる。
[第5実施形態]
以下、第5実施形態における予測装置10について、第4実施形態と異なる内容を中心に説明する。第5実施形態は、第4実施形態の構成に加えて、エントリ挿入時におけるブロック分割処理にかかる時間を算出する構成を更に有する。なお、以下の説明では、他の実施形態と同じ内容については適宜省略される。
〔装置構成〕
第5実施形態における予測装置10は、第4実施形態と同様の構成を有する(図7参照)。
データ取得部41は、インデックスブロックへの1操作当たりのブロック分割数(j)、1回のブロック分割処理にかかる平均時間を示す1次分割処理単位時間(c)を更に取得する。これら各情報についても、第4実施形態と同様に、様々な手法により取得される。1次分割処理単位時間(c)は、第2実施形態と同様の手法により算出されてもよい(上記(式6)及び(式7)参照)。
個別時間算出部42は、第4実施形態での処理に加えて、2次分割処理単位時間(c')を更に算出する。2次分割処理単位時間(c')は、1次分割処理単位時間(c)に付加時間を加算することにより算出される。
処理時間推定部44は、第4実施形態での処理に加えて、インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を更に算出する。この平均時間は、個別時間算出部42により算出された2次分割処理単位時間(c')にインデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより算出される。処理時間推定部44は、ブロック分割処理にかかる平均時間を他の平均時間の合計に更に加えることにより、インデックスブロックへの1操作当たりの平均処理時間を推定する。具体的には、処理時間推定部44は、上記(式12)を用いて、当該平均処理時間(t)を算出する。
〔動作例〕
図9は、第5実施形態における予測装置10の動作例をデータの流れと共に示す図である。第5実施形態では、データ取得部41が、第4実施形態で挙げた情報に加えて、1次分割処理単位時間(c)及び1操作当たりのブロック分割数(j)を更に取得する(S1)。
付加時間算出部43により付加時間が算出された(S2)後、付加時間算出部43が、第4実施形態での算出処理に加えて、1次分割処理単位時間(c)に付加時間を加算することにより、2次分割処理単位時間(c')を更に算出する(S3)。
処理時間推定部44は、第4実施形態で用いた情報に加えて、第2次分割処理単位時間(c')及び1操作当たりのブロック分割数(j)を更に用いて、平均処理時間(t)を算出する(S4)。
〔第5実施形態における作用及び効果〕
このように、第5実施形態では、付加時間を含む形で、1回のブロック分割処理にかかる平均時間が算出され、この算出結果に応じて、インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間が算出される。第5実施形態では、第4実施形態における構成に加えてこの算出結果を用いることによりインデックスブロックへの1操作当たりの平均処理時間(t)が算出される。
従って、第5実施形態によれば、データの物理配置のみならず、ブロック分割処理をも反映させた状態で、最終的な平均処理時間(t)を算出することができるため、データベースに対する操作にかかる時間を高精度に推定することができる。
[変形例]
上述の各実施形態では、データ取得部11及び41は、ライト比率(w)を取得しているが、全操作に対する検索比率(r)を取得して、この検索比率(r)を用いてライト比率(w)を算出するようにしてもよい(1−r)。また、ライト比率(w)及び検索比率(r)がそれぞれ取得され、取得された検索比率(r)が上記(式5)、(式8)、(式12)及び(式13)における(1−w)として利用されてもよい。
また、上述の各実施形態におけるデータ取得部11及び41は、ブロック当たりの平均サイズを示すブロックサイズ(b)、エントリ当たりのサイズを示すエントリサイズ(e)及び記憶媒体からのデータ転送速度を示す帯域(B)を更に取得するようにしてもよい。この場合、データ取得部11及び41は、取得されたブロックサイズ(b)をエントリサイズ(e)で除算することにより、各ブロックの最大エントリ数(k)を算出し、かつ、エントリサイズ(e)を帯域(B)で除算することにより、エントリ処理時間(a)を算出するようにしてもよい。この場合、エントリ処理時間(a)は、1つのエントリデータの転送時間として算出される。これは、エントリ処理において、データの転送にかかる時間がデータの操作にかかる時間よりも大勢を占めることの想定に基づく。
また、上述の各実施形態におけるデータ取得部11及び41は、インデックスブロックにおける総エントリ数(n)を更に取得し、この総エントリ数(n)とブロック当たりの平均エントリ数(m)とを用いた下記(式14)を計算することにより、平均ブランチブロック高さ(h)を算出するようにしてもよい。
Figure 0006020448
(式14)
また、上述の各実施形態におけるデータ取得部11及び41は、インデックスブロックへの1操作当たりのブロック分割数(j)を、インデックスブロックにおける総エントリ数(n)、ブロック当たりの平均エントリ数(m)及びライト比率(w)を用いた下記(式15)により算出するようにしてもよい。
j={(n−m)/(m−1)}*(w/n) (式15)
(式15)は、以下のように導くことができる。対象インデックスブロックにおける全てのブロック分割回数をj'と置くと、この全ブロック分割回数j'は、ブロック内のエントリ数とブランチブロックの高さから、以下の式のように示される。以下の式は、次のような考え方を反映している。即ち、総エントリ数nがmh+1に等しく、全てのブロック数は(1+m+m+・・・+m)であり、全ブロック分割回数j'は、ブロック数よりも1小さい。
Figure 0006020448
Figure 0006020448
1操作当たりのブロック分割数(j)は、全ブロック分割回数j'を処理数で割れば得られる。処理数は、総エントリ数(n)をライト比率(w)で割った値である。このように、上記(式15)が導かれる。
なお、上述の実施形態において第2記憶媒体をハードディスクであると想定し、第2レイテンシ(L')は、平均シークタイムと平均回転待ち時間との和に設定してもよい。
上記の各実施形態及び各変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。
(付記1)ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測装置において、
前記インデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、該インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得するデータ取得手段と、
前記少なくとも2つの構成態様に関連する少なくとも2つの検索手法に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた、少なくとも2種の計算手法を持ち、前記データ取得手段により取得された構成態様データに応じて該少なくとも2種の計算手法を切り換えて実行することにより算出される、ブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として、取得する検索時間算出手段と、
前記少なくとも2つの構成態様に関連する少なくとも2つのエントリ挿入手法に対応した少なくとも2種の計算手法であって、前記レイテンシ(L)及び前記エントリ処理時間(a)を用いた計算手法、及び、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた計算手法を含む該少なくとも2種の計算手法を持ち、前記データ取得手段により取得された構成態様データに応じて該少なくとも2種の計算手法を切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を取得する挿入時間算出手段と、
前記平均ブランチブロック高さ(h)と前記子ブロック検索時間(d)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、前記リーフブロック走査時間(s)と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、前記エントリ挿入時間(i)と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、該算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する処理時間推定手段と、
を備えるデータベース性能予測装置。
(付記2)前記検索時間算出手段が持つ前記少なくとも2種の計算手法は、
前記レイテンシ(L)に、前記エントリ処理時間(a)と前記ブロック当たりの平均エントリ数(m)とを掛け合わせた値を加算する手法と、
前記レイテンシ(L)と前記エントリ処理時間(a)とを足し合わせた値に、前記ブロック当たりの平均エントリ数(m)に関し二分探索を行った際の平均比較回数を掛け合わせる手法と、を含み、
前記挿入時間算出手段が持つ前記少なくとも2種の計算手法は、
前記レイテンシ(L)及び前記エントリ処理時間(a)を足し合わせる手法と、
前記検索時間算出手段により算出される前記ブロック内で対象エントリを特定するのにかかる平均時間に、前記エントリ処理時間(a)と前記ブロック当たりの平均エントリ数(m)とを掛け合わせた値を加算する手法と、
を含む付記1に記載のデータベース性能予測装置。
(付記3)前記データ取得手段は、各ブロックの最大エントリ数(k)及び前記インデックスブロックへの1操作当たりのブロック分割数(j)を更に取得し、該各ブロックの最大エントリ数(k)にブロック当たりの所定使用率を掛け合わせることにより前記ブロック当たりの平均エントリ数(m)を取得し、
前記データベース性能予測装置は、
前記少なくとも2つの構成態様に関連する少なくとも2つのブロック分割手法の各々に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記各ブロックの最大エントリ数(k)を用いた、少なくとも2種の計算手法を持ち、前記データ取得手段により取得された構成態様データに応じて該少なくとも2種の計算手法を切り換えて実行することにより、1回のブロック分割処理にかかる平均時間を示す分割処理単位時間(c)を取得する分割時間算出手段、を更に備え、
前記処理時間推定手段は、前記分割処理単位時間(c)に前記インデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を更に算出し、該平均時間を他の平均時間の合計に更に加えることにより、前記インデックスブロックへの1操作当たりの平均処理時間を推定する、
付記1又は2に記載のデータベース性能予測装置。
(付記4)前記分割時間算出手段が持つ前記少なくとも2種の計算手法は、
前記レイテンシ(L)、前記エントリ処理時間(a)及び前記各ブロックの最大エントリ数(k)を用いた下記2つの式の計算を含む、
付記3に記載のデータベース性能予測装置。
c=(L+1.5*a)*k
c=a*k+2*L
(付記5)前記データ取得手段は、第1記憶媒体に関する第1レイテンシ、第2記憶媒体に関する第2レイテンシ、該第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を更に取得し、
前記データベース性能予測装置は、
前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出する付加時間算出手段、
を更に備え、
前記検索時間算出手段は、前記子ブロック検索時間(d)及び前記リーフブロック走査時間(s)に、前記付加時間を含め、
前記挿入時間算出手段は、前記エントリ挿入時間(i)に、前記付加時間を含め、
前記分割時間算出手段は、前記分割処理単位時間(c)に、前記付加時間を含める、
付記3又は4に記載のデータベース性能予測装置。
(付記6)ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測装置において、
前記インデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)及び平均ブランチブロック高さ(h)を取得し、第2記憶媒体に関する第2レイテンシ、第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を取得する第1データ取得手段と、
前記第1記憶媒体に格納されるブロックから子ブロックを特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、前記第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、前記第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得する第2データ取得手段と、
前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出する付加時間算出手段と、
前記1次子ブロック検索時間(d)、前記1次リーフブロック走査時間(s)及び前記1次エントリ挿入時間(i)に前記付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出する個別時間算出手段と、
前記2次子ブロック検索時間(d')と前記平均ブランチブロック高さ(h)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、前記2次リーフブロック走査時間(s')と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、前記2次エントリ挿入時間(i')と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、該算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する処理時間推定手段と、
を備えるデータベース性能予測装置。
(付記7)前記第1データ取得手段は、前記インデックスブロックへの1操作当たりのブロック分割数(j)を更に取得し、
前記第2データ取得手段は、1回のブロック分割処理にかかる平均時間を示す1次分割処理単位時間(c)を更に取得し、
前記個別時間算出手段は、前記1次分割処理単位時間(c)に前記付加時間を加算することにより、2次分割処理単位時間(c')を算出し、
前記処理時間推定手段は、前記2次分割処理単位時間(c')に前記インデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を更に算出し、該平均時間を他の平均時間の合計に更に加えることにより、前記インデックスブロックへの1操作当たりの平均処理時間を推定する、
付記6に記載のデータベース性能予測装置。
(付記8)前記データ取得手段は、前記インデックスブロックにおける総エントリ数(n)を更に取得し、前記インデックスブロックへの1操作当たりのブロック分割数(j)を該総エントリ数(n)、前記ブロック当たりの平均エントリ数(m)及び前記ライト比率(w)を用いた下記式により取得する分割数算出手段を含む、
付記3から5及び7のいずれか1つに記載のデータベース性能予測装置。
j={(n−m)/(m−1)}*(w/n)
(付記9)前記データ取得手段は、ブロック当たりの平均サイズを示すブロックサイズ(b)、エントリ当たりのサイズを示すエントリサイズ(e)及び前記記憶媒体からのデータ転送速度を示す帯域(B)を更に取得し、該ブロックサイズ(b)を該エントリサイズ(e)で除算することにより前記各ブロックの最大エントリ数(k)を取得し、該エントリサイズ(e)を該帯域(B)で除算することにより前記エントリ処理時間(a)を取得する付記3から5、7及び8のいずれか1つに記載のデータベース性能予測装置。
(付記10)前記データ取得手段は、前記インデックスブロックにおける総エントリ数(n)を更に取得し、前記ブロック当たりの平均エントリ数(m)及び該総エントリ数(n)を用いた下記式を計算することにより、前記平均ブランチブロック高さ(h)を取得する付記1から9のいずれか1つに記載のデータベース性能予測装置。
h=logn/m
(付記11)ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測方法において、
コンピュータが、
前記インデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、該インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得し、
前記少なくとも2つの構成態様に関連する少なくとも2つの検索手法に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた、少なくとも2種の計算手法を、前記構成態様データに応じて切り換えて実行することにより算出される、ブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として、取得し、
前記少なくとも2つの構成態様に関連する少なくとも2つのエントリ挿入手法に対応した少なくとも2種の計算手法であって、前記レイテンシ(L)及び前記エントリ処理時間(a)を用いた計算手法、及び、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた計算手法を含む該少なくとも2種の計算手法を、前記構成態様データに応じて切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を取得し、
前記平均ブランチブロック高さ(h)と前記子ブロック検索時間(d)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、
前記リーフブロック走査時間(s)と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、
前記エントリ挿入時間(i)と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、
算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する、
ことを含むデータベース性能予測方法。
(付記12)前記少なくとも2つの検索手法に対応する前記少なくとも2種の計算手法は、
前記レイテンシ(L)に、前記エントリ処理時間(a)と前記ブロック当たりの平均エントリ数(m)とを掛け合わせた値を加算する手法と、
前記レイテンシ(L)と前記エントリ処理時間(a)とを足し合わせた値に、前記ブロック当たりの平均エントリ数(m)に関し二分探索を行った際の平均比較回数を掛け合わせる手法と、を含み、
前記少なくとも2つのエントリ挿入手法に対応する前記少なくとも2種の計算手法は、
前記レイテンシ(L)及び前記エントリ処理時間(a)を足し合わせる手法と、
前記検索時間算出手段により算出される前記ブロック内で対象エントリを特定するのにかかる平均時間に、前記エントリ処理時間(a)と前記ブロック当たりの平均エントリ数(m)とを掛け合わせた値を加算する手法と、
を含む付記11に記載のデータベース性能予測方法。
(付記13)前記コンピュータが、
各ブロックの最大エントリ数(k)及び前記インデックスブロックへの1操作当たりのブロック分割数(j)を更に取得し、該各ブロックの最大エントリ数(k)にブロック当たりの所定使用率を掛け合わせることにより前記ブロック当たりの平均エントリ数(m)を取得し、
前記少なくとも2つの構成態様に関連する少なくとも2つのブロック分割手法の各々に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記各ブロックの最大エントリ数(k)を用いた、少なくとも2種の計算手法を、前記データ取得手段により取得された構成態様データに応じて切り換えて実行することにより、1回のブロック分割処理にかかる平均時間を示す分割処理単位時間(c)を取得し、
前記分割処理単位時間(c)に前記インデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を算出する、
ことを更に含み、
前記1操作当たりの平均処理時間の推定は、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を他の平均時間の合計に更に加えることにより、前記インデックスブロックへの1操作当たりの平均処理時間を推定する、
付記11又は12に記載のデータベース性能予測方法。
(付記14)前記少なくとも2つのブロック分割手法に対応する前記少なくとも2種の計算手法は、
前記レイテンシ(L)、前記エントリ処理時間(a)及び前記各ブロックの最大エントリ数(k)を用いた下記2つの式の計算を含む、
付記13に記載のデータベース性能予測方法。
c=(L+1.5*a)*k
c=a*k+2*L
(付記15)前記コンピュータが、
第1記憶媒体に関する第1レイテンシ、第2記憶媒体に関する第2レイテンシ、該第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を取得し、
前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出し、
前記子ブロック検索時間(d)、前記リーフブロック走査時間(s)、前記エントリ挿入時間(i)及び前記分割処理単位時間(c)に、前記付加時間をそれぞれ含める、
ことを更に含む付記13又は14に記載のデータベース性能予測方法。
(付記16)ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測方法において、
コンピュータが、
前記インデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)及び平均ブランチブロック高さ(h)を取得し、
第2記憶媒体に関する第2レイテンシ、第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を取得し、
前記第1記憶媒体に格納されるブロックから子ブロックを特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、前記第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、前記第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得し、
前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出し、
前記1次子ブロック検索時間(d)、前記1次リーフブロック走査時間(s)及び前記1次エントリ挿入時間(i)に前記付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出し、
前記2次子ブロック検索時間(d')と前記平均ブランチブロック高さ(h)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、
前記2次リーフブロック走査時間(s')と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、
前記2次エントリ挿入時間(i')と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、
前記算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する、
ことを含むデータベース性能予測方法。
(付記17)前記コンピュータが、
前記インデックスブロックへの1操作当たりのブロック分割数(j)を取得し、
1回のブロック分割処理にかかる平均時間を示す1次分割処理単位時間(c)を取得し、
前記1次分割処理単位時間(c)に前記付加時間を加算することにより、2次分割処理単位時間(c')を算出し、
前記2次分割処理単位時間(c')に前記インデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を算出する、
ことを更に含み、
前記1操作当たりの平均処理時間の推定は、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を他の平均時間の合計に更に加えることにより、前記インデックスブロックへの1操作当たりの平均処理時間を推定する、
付記16に記載のデータベース性能予測方法。
(付記18)前記コンピュータが、
前記インデックスブロックにおける総エントリ数(n)を取得し、
前記インデックスブロックへの1操作当たりのブロック分割数(j)を該総エントリ数(n)、前記ブロック当たりの平均エントリ数(m)及び前記ライト比率(w)を用いた下記式により取得する、
ことを更に含む付記13から15及び17のいずれか1つに記載のデータベース性能予測方法。
j={(n−m)/(m−1)}*(w/n)
(付記19)前記コンピュータが、
ブロック当たりの平均サイズを示すブロックサイズ(b)、エントリ当たりのサイズを示すエントリサイズ(e)及び前記記憶媒体からのデータ転送速度を示す帯域(B)を取得し、
前記ブロックサイズ(b)を前記エントリサイズ(e)で除算することにより前記各ブロックの最大エントリ数(k)を算出し、
前記エントリサイズ(e)を前記帯域(B)で除算することにより前記エントリ処理時間(a)を算出する、
ことを更に含む付記13から15、17及び18のいずれか1つに記載のデータベース性能予測方法。
(付記20)前記コンピュータが、
前記インデックスブロックにおける総エントリ数(n)を取得し、
前記ブロック当たりの平均エントリ数(m)及び前記総エントリ数(n)を用いた下記式を計算することにより、前記平均ブランチブロック高さ(h)を算出する、
ことを更に含む付記11から19のいずれか1つに記載のデータベース性能予測方法。
h=logn/m
この出願は、2011年6月8日に出願された日本出願特願2011−127930号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (11)

  1. ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測装置において、
    前記インデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、該インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得するデータ取得手段と、
    前記少なくとも2つの構成態様に関連する少なくとも2つの検索手法に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた、少なくとも2種の計算手法を持ち、前記データ取得手段により取得された構成態様データに応じて該少なくとも2種の計算手法を切り換えて実行することにより算出される、ブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として、取得する検索時間算出手段と、
    前記少なくとも2つの構成態様に関連する少なくとも2つのエントリ挿入手法に対応した少なくとも2種の計算手法であって、前記レイテンシ(L)及び前記エントリ処理時間(a)を用いた計算手法、及び、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた計算手法を含む該少なくとも2種の計算手法を持ち、前記データ取得手段により取得された構成態様データに応じて該少なくとも2種の計算手法を切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を取得する挿入時間算出手段と、
    前記平均ブランチブロック高さ(h)と前記子ブロック検索時間(d)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、前記リーフブロック走査時間(s)と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、前記エントリ挿入時間(i)と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、該算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する処理時間推定手段と、
    を備えるデータベース性能予測装置。
  2. 前記検索時間算出手段が持つ前記少なくとも2種の計算手法は、
    前記レイテンシ(L)に、前記エントリ処理時間(a)と前記ブロック当たりの平均エントリ数(m)とを掛け合わせた値を加算する手法と、
    前記レイテンシ(L)と前記エントリ処理時間(a)とを足し合わせた値に、前記ブロック当たりの平均エントリ数(m)に関し二分探索を行った際の平均比較回数を掛け合わせる手法と、を含み、
    前記挿入時間算出手段が持つ前記少なくとも2種の計算手法は、
    前記レイテンシ(L)及び前記エントリ処理時間(a)を足し合わせる手法と、
    前記検索時間算出手段により算出される前記ブロック内で対象エントリを特定するのにかかる平均時間に、前記エントリ処理時間(a)と前記ブロック当たりの平均エントリ数(m)とを掛け合わせた値を加算する手法と、
    を含む請求項1に記載のデータベース性能予測装置。
  3. 前記データ取得手段は、各ブロックの最大エントリ数(k)及び前記インデックスブロックへの1操作当たりのブロック分割数(j)を更に取得し、該各ブロックの最大エントリ数(k)にブロック当たりの所定使用率を掛け合わせることにより前記ブロック当たりの平均エントリ数(m)を取得し、
    前記データベース性能予測装置は、
    前記少なくとも2つの構成態様に関連する少なくとも2つのブロック分割手法の各々に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記各ブロックの最大エントリ数(k)を用いた、少なくとも2種の計算手法を持ち、前記データ取得手段により取得された構成態様データに応じて該少なくとも2種の計算手法を切り換えて実行することにより、1回のブロック分割処理にかかる平均時間を示す分割処理単位時間(c)を取得する分割時間算出手段、を更に備え、
    前記処理時間推定手段は、前記分割処理単位時間(c)に前記インデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を更に算出し、該平均時間を他の平均時間の合計に更に加えることにより、前記インデックスブロックへの1操作当たりの平均処理時間を推定する、
    請求項1又は2に記載のデータベース性能予測装置。
  4. 前記分割時間算出手段が持つ前記少なくとも2種の計算手法は、
    前記レイテンシ(L)、前記エントリ処理時間(a)及び前記各ブロックの最大エントリ数(k)を用いた下記2つの式の計算を含む、
    請求項3に記載のデータベース性能予測装置。
    c=(L+1.5*a)*k
    c=a*k+2*L
  5. 前記データ取得手段は、第1記憶媒体に関する第1レイテンシ、第2記憶媒体に関する第2レイテンシ、該第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を更に取得し、
    前記データベース性能予測装置は、
    前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出する付加時間算出手段、
    を更に備え、
    前記検索時間算出手段は、前記子ブロック検索時間(d)及び前記リーフブロック走査時間(s)に、前記付加時間を含め、
    前記挿入時間算出手段は、前記エントリ挿入時間(i)に、前記付加時間を含め、
    前記分割時間算出手段は、前記分割処理単位時間(c)に、前記付加時間を含める、
    請求項3又は4に記載のデータベース性能予測装置。
  6. ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測装置において、
    前記インデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)及び平均ブランチブロック高さ(h)を取得し、第2記憶媒体に関する第2レイテンシ、第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を取得する第1データ取得手段と、
    前記第1記憶媒体に格納されるブロックから子ブロックを特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、前記第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、前記第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得する第2データ取得手段と、
    前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出する付加時間算出手段と、
    前記1次子ブロック検索時間(d)、前記1次リーフブロック走査時間(s)及び前記1次エントリ挿入時間(i)に前記付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出する個別時間算出手段と、
    前記2次子ブロック検索時間(d')と前記平均ブランチブロック高さ(h)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、前記2次リーフブロック走査時間(s')と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、前記2次エントリ挿入時間(i')と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、該算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する処理時間推定手段と、
    を備えるデータベース性能予測装置。
  7. 前記第1データ取得手段は、前記インデックスブロックへの1操作当たりのブロック分割数(j)を更に取得し、
    前記第2データ取得手段は、1回のブロック分割処理にかかる平均時間を示す1次分割処理単位時間(c)を更に取得し、
    前記個別時間算出手段は、前記1次分割処理単位時間(c)に前記付加時間を加算することにより、2次分割処理単位時間(c')を算出し、
    前記処理時間推定手段は、前記2次分割処理単位時間(c')に前記インデックスブロックへの1操作当たりのブロック分割数(j)を掛け合わせることにより、前記インデックスブロックへの1操作当たりのブロック分割処理にかかる平均時間を更に算出し、該平均時間を他の平均時間の合計に更に加えることにより、前記インデックスブロックへの1操作当たりの平均処理時間を推定する、
    請求項6に記載のデータベース性能予測装置。
  8. 前記データ取得手段は、前記インデックスブロックにおける総エントリ数(n)を更に取得し、前記インデックスブロックへの1操作当たりのブロック分割数(j)を該総エントリ数(n)、前記ブロック当たりの平均エントリ数(m)及び前記ライト比率(w)を用いた下記式により取得する分割数算出手段を含む、
    請求項3から5のいずれか1項に記載のデータベース性能予測装置。
    j={(n−m)/(m−1)}*(w/n)
  9. ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測方法において、
    コンピュータが、
    前記インデックスブロックに関し、少なくとも2つの構成態様のいずれか1つを示す構成態様データ、ブロック当たりの平均エントリ数(m)、エントリ当たりの平均処理時間を示すエントリ処理時間(a)、全操作に対する挿入操作の割合を示すライト比率(w)、該インデックスブロックが格納される記憶媒体に関するレイテンシ(L)、及び、平均ブランチブロック高さ(h)を取得し、
    前記少なくとも2つの構成態様に関連する少なくとも2つの検索手法に対応し、かつ、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた、少なくとも2種の計算手法を、前記構成態様データに応じて切り換えて実行することにより算出される、ブロック内で対象エントリを特定するのにかかる平均時間を、子ブロック検索時間(d)及びリーフブロック走査時間(s)として、取得し、
    前記少なくとも2つの構成態様に関連する少なくとも2つのエントリ挿入手法に対応した少なくとも2種の計算手法であって、前記レイテンシ(L)及び前記エントリ処理時間(a)を用いた計算手法、及び、前記レイテンシ(L)、前記エントリ処理時間(a)及び前記ブロック当たりの平均エントリ数(m)を用いた計算手法を含む該少なくとも2種の計算手法を、前記構成態様データに応じて切り換えて実行することにより、リーフブロックに対象エントリを挿入するのにかかる平均時間を示すエントリ挿入時間(i)を取得し、
    前記平均ブランチブロック高さ(h)と前記子ブロック検索時間(d)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、
    前記リーフブロック走査時間(s)と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、
    前記エントリ挿入時間(i)と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、
    算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する、
    ことを含むデータベース性能予測方法。
  10. ツリー構造のインデックスブロックを含むデータベースのためのデータベース性能予測方法において、
    コンピュータが、
    前記インデックスブロックに関し、全操作に対する挿入操作の割合を示すライト比率(w)及び平均ブランチブロック高さ(h)を取得し、
    第2記憶媒体に関する第2レイテンシ、第1記憶媒体に前記インデックスブロックの対象部分が格納されておらず該第2記憶媒体から該対象部分を転送する必要のある確率を示すキャッシュミス率、及び、該第2記憶媒体から該第1記憶媒体へのブロック当たりのデータ転送時間を取得し、
    前記第1記憶媒体に格納されるブロックから子ブロックを特定するのにかかる平均時間を示す1次子ブロック検索時間(d)、前記第1記憶媒体に格納されるリーフブロック内で対象エントリを特定するのにかかる平均時間を示す1次リーフブロック走査時間(s)、前記第1記憶媒体に格納されるリーフブロックに対象エントリを挿入するのにかかる平均時間を示す1次エントリ挿入時間(i)を取得し、
    前記第2レイテンシに、前記第2記憶媒体から前記第1記憶媒体へのブロック当たりのデータ転送時間を加算した値に、前記キャッシュミス率を掛け合わせることにより、キャッシュミスに関する付加時間を算出し、
    前記1次子ブロック検索時間(d)、前記1次リーフブロック走査時間(s)及び前記1次エントリ挿入時間(i)に前記付加時間をそれぞれ加算することにより、2次子ブロック検索時間(d')、2次リーフブロック走査時間(s')及び2次エントリ挿入時間(i')を算出し、
    前記2次子ブロック検索時間(d')と前記平均ブランチブロック高さ(h)とを掛け合わせることにより、前記インデックスブロックへの1操作当たりの対象リーフブロックを特定するのにかかる平均時間を算出し、
    前記2次リーフブロック走査時間(s')と前記ライト比率(w)とを用いて、前記インデックスブロックに対する1操作当たりの特定されたリーフブロック内で対象エントリを検索するのにかかる平均時間を算出し、
    前記2次エントリ挿入時間(i')と前記ライト比率(w)とを用いて、前記インデックスブロックへの1操作当たりの特定されたリーフブロック内で対象エントリを挿入するのにかかる平均時間を算出し、
    前記算出された各平均時間の合計を、前記インデックスブロックへの1操作当たりの平均処理時間として推定する、
    ことを含むデータベース性能予測方法。
  11. 前記第1データ取得手段は、前記インデックスブロックにおける総エントリ数(n)を更に取得し、前記インデックスブロックへの1操作当たりのブロック分割数(j)を該総エントリ数(n)、前記ブロック当たりの平均エントリ数(m)及び前記ライト比率(w)を用いた下記式により取得する分割数算出手段を含む、
    請求項7に記載のデータベース性能予測装置。
    j={(n−m)/(m−1)}*(w/n)
JP2013519351A 2011-06-08 2012-04-10 データベース性能予測装置及びデータベース予測方法 Expired - Fee Related JP6020448B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011127930 2011-06-08
JP2011127930 2011-06-08
PCT/JP2012/002489 WO2012169102A1 (ja) 2011-06-08 2012-04-10 データベース性能予測装置及びデータベース予測方法

Publications (2)

Publication Number Publication Date
JPWO2012169102A1 JPWO2012169102A1 (ja) 2015-02-23
JP6020448B2 true JP6020448B2 (ja) 2016-11-02

Family

ID=47295695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013519351A Expired - Fee Related JP6020448B2 (ja) 2011-06-08 2012-04-10 データベース性能予測装置及びデータベース予測方法

Country Status (3)

Country Link
US (1) US9336254B2 (ja)
JP (1) JP6020448B2 (ja)
WO (1) WO2012169102A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US9191457B2 (en) * 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US20170192688A1 (en) * 2015-12-30 2017-07-06 International Business Machines Corporation Lazy deletion of vaults in packed slice storage (pss) and zone slice storage (zss)
US10664473B2 (en) * 2017-01-30 2020-05-26 International Business Machines Corporation Database optimization based on forecasting hardware statistics using data mining techniques
US10963483B2 (en) * 2017-04-26 2021-03-30 Oracle International Corporation Sequential storage volume replication based on comparison of write session identifiers
US10983909B2 (en) * 2019-01-18 2021-04-20 Vmware, Inc. Trading off cache space and write amplification for Bε-trees
US11669570B2 (en) * 2019-10-31 2023-06-06 EMC IP Holding Company LLC Amortized execution of updates to a hardened hash table

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63220323A (ja) * 1987-03-10 1988-09-13 Fujitsu Ltd エンドユ−ザ言語内部処理論理出力処理方式
US5043872A (en) 1988-07-15 1991-08-27 International Business Machines Corporation Access path optimization using degrees of clustering
JPH032938A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd データベース処理方法
CA2124094C (en) 1994-05-20 1999-07-20 K. Bernhard Schiefer Method and apparatus for optimizing data retrieval using index scanning
JP3073889B2 (ja) * 1994-07-15 2000-08-07 三菱電機株式会社 データ転送方法
US5875445A (en) * 1997-05-29 1999-02-23 Oracle Corporation Performance-related estimation using pseudo-ranked trees
US20080005086A1 (en) * 2006-05-17 2008-01-03 Moore James F Certificate-based search
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
JP5088668B2 (ja) 2007-03-08 2012-12-05 日本電気株式会社 計算機負荷見積システム、計算機負荷見積方法、計算機負荷見積プログラム
US8954967B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Adaptive parallel data processing

Also Published As

Publication number Publication date
US20140114951A1 (en) 2014-04-24
JPWO2012169102A1 (ja) 2015-02-23
US9336254B2 (en) 2016-05-10
WO2012169102A1 (ja) 2012-12-13

Similar Documents

Publication Publication Date Title
JP6020448B2 (ja) データベース性能予測装置及びデータベース予測方法
US9996564B2 (en) Managing database object placement on multiple storage devices
Plattner A course in in-memory data management
Subedi et al. Stacker: an autonomic data movement engine for extreme-scale data staging-based in-situ workflows
US8566308B2 (en) Intelligent adaptive index density in a database management system
Canim et al. An object placement advisor for DB2 using solid state storage
CN110362566B (zh) 分层htap数据库的混合数据布局中的数据布置
Herodotou et al. Automating distributed tiered storage management in cluster computing
Herodotou AutoCache: Employing machine learning to automate caching in distributed file systems
Li et al. ASLM: Adaptive single layer model for learned index
Mukherjee Synthesis of non-replicated dynamic fragment allocation algorithm in distributed database systems
Pan et al. predis: Penalty and locality aware memory allocation in redis
Pan et al. Penalty-and locality-aware memory allocation in Redis using enhanced AET
Fevgas et al. LB-Grid: An SSD efficient grid file
JP6394231B2 (ja) データ配置制御プログラム、データ配置制御装置およびデータ配置制御方法
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
Wu et al. A data management method for databases using hybrid storage systems
JPWO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
Tinnefeld et al. Cache-conscious data placement in an in-memory key-value store
Menon et al. Logstore: A workload-aware, adaptable key-value store on hybrid storage systems
Zhu et al. An access prefetching strategy for accessing small files based on swift
Esteves et al. Palpatine: mining frequent sequences for data prefetching in NoSQL distributed key-value stores
Niu et al. FlashWalker: An in-storage accelerator for graph random walks
Maharjan et al. From LeanStore to LearnedStore: Using a Learned Index to Improve Database Index Search
Cheng et al. Take Out the {TraChe}: Maximizing (Tra) nsactional Ca (che) Hit Rate

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160919

R150 Certificate of patent or registration of utility model

Ref document number: 6020448

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees