(57)【要約】      （修正有）【課題】複数のデータベースを使用する環境において、問合せ文の実行性能を向上させる。【解決手段】データベース管理装置２は、複数のデータベース１１のそれぞれに含まれる複数のテーブルの格納先を管理する物理モデルと、テーブルのビューを含みユーザが参照する仮想テーブルを管理する論理モデルとを記憶し、複数のデータベース１１の少なくともいずれかに対応する複数の問合せ文を取得し、論理モデル及び物理モデルに基づいて、取得された複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数のデータベース１１を参照する副問合せを特定し、特定された副問合せに対応するマテリアライズドビューを作成し、作成されたマテリアライズドビューをユーザが参照可能に論理モデル及び物理モデルを更新する。【選択図】図１
2019106039.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとを記憶する記憶部と、
複数の前記データベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部と、
前記論理モデル及び前記物理モデルに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部と、
特定された前記副問合せに対応する物理的なビューを作成する作成部と、
前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデル及び前記物理モデルを更新する更新部と、
を備えるデータベース管理装置。
【請求項２】
前記複数のテーブルの利用状況に基づいて、複数の前記データベースのうち、現在格納されているデータベースとは異なるデータベースに移行するテーブルを移行対象テーブルとして特定し、特定された前記移行対象テーブルを移行先のデータベースに移行する移行制御部をさらに備え、
前記更新部は、前記物理モデルが示す前記移行対象テーブルの格納先を前記移行先のデータベースに更新し、
前記特定部は、前記移行制御部による前記移行対象テーブルの移行が完了し、前記物理モデルが示す前記移行対象テーブルの格納先が更新された後、取得された複数の前記問合せ文に基づいて、複数の前記データベースを参照する副問合せを特定する、
請求項１に記載のデータベース管理装置。
【請求項３】
特定された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとを算出する算出部をさらに備え、
前記作成部は、算出された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとに基づいて、前記ビューに置き換えることによって処理コストの低下量の期待値が大きい順に当該ビューを作成する、
請求項１又は２に記載のデータベース管理装置。
【請求項４】
前記算出部は、前記物理的なビューを前記複数のデータベースのいずれかに作成した場合に当該ビューに対応する前記問合せ文を実行するときの、前記データベース管理装置と前記複数のデータベースとの間の通信量の予測値を算出し、
前記作成部は、算出された前記予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成する、
請求項３に記載のデータベース管理装置。
【請求項５】
前記算出部は、複数の前記問合せ文のそれぞれについて、前記副問合せに対応するビューを作成した前記データベースにおいて処理が行われる範囲を特定し、特定した範囲に対応するデータに基づいて、処理コストの予測値を算出し、当該処理コストの予測値に基づいて前記通信量の予測値を補正し、
前記作成部は、補正後の前記通信量の予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成する、
請求項４に記載のデータベース管理装置。
【請求項６】
前記作成部は、前記データベース管理装置の記憶部に前記物理的なビューを作成する、
請求項１から５のいずれか１項に記載のデータベース管理装置。
【請求項７】
コンピュータが実行する、
複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得するステップと、
前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定するステップと、
特定された前記副問合せに対応する物理的なビューを作成するステップと、
前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新するステップと、
を備えるデータベース管理方法。
【請求項８】
コンピュータを、
複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部、
前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部、
特定された前記副問合せに対応する物理的なビューを作成する作成部、及び、
前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新する更新部、
として機能させるデータベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、データベース管理方法及びデータベース管理プログラムに関する。
【背景技術】
【０００２】
従来、データ仮想化技術を用いることにより、複数のデータベースシステム（以下、データベースという。）を仮想的に統合したデータ統合環境を構築することが行われている。
【０００３】
データ統合環境では、データベースに格納されているテーブルを示す情報であるスキーマ情報を物理モデルと論理モデルで表現する。物理モデルでは、テーブルの物理的な格納先を示すとともに、テーブルが格納されているデータベースに接続するための接続情報を保持する。論理モデルでは、一以上の物理モデル又は論理モデルに対応する仮想テーブルを構成する。クライアントは仮想テーブルを参照して問合せ文を実行することにより、テーブルが配置されているデータベースを意識することなく問合せ文を実行することができる。
【０００４】
データ統合環境では、ユーザから受け付けた問合せ文を処理する処理装置が、問合せ文の実行時に必要となるテーブルをデータベースからネットワークを介して取得し、取得したテーブルを用いて問合せ文を実行する。したがって、データ統合環境における問合せ文の実行性能は、データ通信量に依存する。このため、データ通信量を減らすことにより、データ統合環境における問合せ文の実行性能を改善することができる。
【０００５】
非特許文献１には、データ通信量を減らす方法として、問合せ文の実行時に、問合せ文に対応する処理を、当該問合せ文に対応するテーブルを格納するデータベース上で行う方法が開示されている。しかしながら、問合せ文が複数のデータベースのそれぞれに格納されているテーブルを参照する場合、非特許文献１に記載の方法では、データベースにおける処理が限定され、通信量を効率的に削減できないという問題がある。
【０００６】
このような問題に対して、特許文献１では、問合せ文の実行時に、複数のデータベースのそれぞれに格納されているテーブルを参照する場合、データ量が小さいテーブルを一時的に一方のデータベースに移動した後、当該データベース上で、問合せ文に対応する処理を行う方法が開示されている。
【０００７】
また、特許文献２では、大規模データの分散処理を管理するフレームワークであるＨａｄｏｏｐ（登録商標）とデータベースとの連携において、問合せ処理に係る中間生成物をＨａｄｏｏｐ上に生成しておき、当該中間生成物を用いることにより問合せ処理を効率化する方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１６−９１３５６号公報
【特許文献２】特表２０１６−５２９５８６号公報
【非特許文献】
【０００９】
【非特許文献１】Laura M. Haas，et al. “Optimizing Queries across Diverse Data Sources”, VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases, pp. 276-285 (1997)
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の方法を用いることで、複数のデータベースのそれぞれに格納されているテーブルを参照する場合のデータ通信量を削減することができる。しかしながら、問合せ文が複数のデータベースのそれぞれに格納されているテーブルを参照する場合において、これらのテーブルが同程度のサイズであるとき、テーブルの移動を行うことにより、通信量が増えてしまうという問題が発生する。
【００１１】
また、特許文献２に記載の方法を用いることにより、中間生成物を再生成するための処理量及び通信量を削減することができる。しかしながら、特許文献２に記載の方法は、Ｈａｄｏｏｐ上に生成された中間生成物を用いているため、任意の複数のデータベースシステムに拡張できないという問題がある。
【００１２】
そこで、本発明はこれらの点に鑑みてなされたものであり、複数のデータベースを使用する環境において、問合せ文の実行性能を向上させることができるデータベース管理装置、データベース管理方法及びデータベース管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の態様に係るデータベース管理装置は、複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとを記憶する記憶部と、複数の前記データベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部と、前記論理モデル及び前記物理モデルに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部と、特定された前記副問合せに対応する物理的なビューを作成する作成部と、前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデル及び前記物理モデルを更新する更新部と、を備える。
【００１４】
前記データベース管理装置は、前記複数のテーブルの利用状況に基づいて、複数の前記データベースのうち、現在格納されているデータベースとは異なるデータベースに移行するテーブルを移行対象テーブルとして特定し、特定された前記移行対象テーブルを移行先のデータベースに移行する移行制御部をさらに備え、前記更新部は、前記物理モデルが示す前記移行対象テーブルの格納先を前記移行先のデータベースに更新し、前記特定部は、前記移行制御部による前記移行対象テーブルの移行が完了し、前記物理モデルが示す前記移行対象テーブルの格納先が更新された後、取得された複数の前記問合せ文に基づいて、複数の前記データベースを参照する副問合せを特定してもよい。
【００１５】
前記データベース管理装置は、特定された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとを算出する算出部をさらに備え、前記作成部は、算出された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとに基づいて、前記ビューに置き換えることによって処理コストの低下量の期待値が大きい順に当該ビューを作成してもよい。
【００１６】
前記算出部は、前記物理的なビューを前記複数のデータベースのいずれかに作成した場合に当該ビューに対応する前記問合せ文を実行するときの、前記データベース管理装置と前記複数のデータベースとの間の通信量の予測値を算出し、前記作成部は、算出された前記予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成してもよい。
前記算出部は、複数の前記問合せ文のそれぞれについて、前記副問合せに対応するビューを作成した前記データベースにおいて処理が行われる範囲を特定し、特定した範囲に対応するデータに基づいて、処理コストの予測値を算出し、当該処理コストの予測値に基づいて前記通信量の予測値を補正し、前記作成部は、補正後の前記通信量の予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成してもよい。
【００１７】
前記作成部は、前記データベース管理装置の記憶部に前記物理的なビューを作成してもよい。
【００１８】
本発明の第２の態様に係るデータベース管理方法は、コンピュータが実行する、複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得するステップと、前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定するステップと、特定された前記副問合せに対応する物理的なビューを作成するステップと、前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新するステップと、を備える。
【００１９】
本発明の第３の態様に係るデータベース管理プログラムは、コンピュータを、複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部、前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部、特定された前記副問合せに対応する物理的なビューを作成する作成部、及び、前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新する更新部、として機能させる。
【発明の効果】
【００２０】
本発明によれば、複数のデータベースを使用する環境において、問合せ文の実行性能を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態に係る仮想データベースシステムの構成を示す図である。
【図２】第１実施形態に係るデータベース管理装置の構成を示す図である。
【図３】第１実施形態に係る問合せ文の一例を示す図である。
【図４】図３に示す問合せ文に対応する実行計画を示す図である。
【図５】第１実施形態に係るマテリアライズドビューの作成に係る処理の流れを示すフローチャートである。
【図６】第２実施形態に係るデータベース管理装置の構成を示す図である。
【発明を実施するための形態】
【００２２】
＜第１実施形態＞
［仮想データベースシステムＳの概要］
図１は、第１実施形態に係る仮想データベースシステムＳの構成を示す図である。仮想データベースシステムＳは、データベース１１を物理的に格納する複数の記憶装置１と、データベース管理装置２と、ユーザ端末３とを備え、複数のデータベース１１を仮想的に統合するシステムである。なお、図１において、ユーザ端末３は１台のみ示されているが、複数のユーザ端末３がデータベース管理装置２に接続されているものとする。
【００２３】
データベース管理装置２は、データベース１１に格納されているテーブルを示す情報であるスキーマ情報として、物理モデルと、論理モデルとを記憶している。物理モデルは、テーブルの物理的な格納場所を示すモデルである。論理モデルは、ユーザ端末３が参照可能な仮想的なテーブルを管理するモデルであり、仮想的なテーブルと、物理モデルが示すテーブルとの関連付けを行う。ここで、仮想的なテーブルには、データベース管理装置２が作成したビューが含まれる。データベース管理装置２は、ユーザ端末３から論理モデルに対応する問合せ文を取得すると、物理モデルを参照し、当該問合せ文に対応する１以上のデータベース１１を特定する。
【００２４】
データベース管理装置２は、特定したデータベース１１からデータを取得して問合せ文に対応する演算を実行し、実行結果をユーザ端末３に出力する。これにより、ユーザは、データベース１１の物理的な位置を意識することなく複数のデータベース１１に格納されているデータを参照することができる。
【００２５】
データベース管理装置２は、問合せ文に対応する複数のテーブルが同一のデータベース１１に格納されている場合に、問合せ文の実行時のデータ通信量を減らすために、問合せ文に対応する処理を当該データベース１１上で行わせる。また、データベース管理装置２は、問合せ文に対応する複数のテーブルが同一のデータベース１１に格納されていない場合に、問合せ文に対応するテーブルをデータベース管理装置２が取得し、データベース管理装置２において問合せ文に対応する処理を行う。このため、問合せ文に対応するテーブルが同一のデータベース１１に格納されていない場合には、データ通信量が増加し、問合せ文の実行性能が悪化するという問題が発生する。
【００２６】
このような問題に対して、本実施形態に係るデータベース管理装置２は、ユーザ端末３から取得した複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数のデータベース１１を参照する副問合せを特定する。そして、データベース管理装置２は、自身の記憶領域に、特定した副問合せに対応する物理的なビューであるマテリアライズドビューを作成する。データベース管理装置２は、作成されたマテリアライズドビューをユーザが参照可能に論理モデルを更新する。このようにすることで、データベース管理装置２は、任意の複数のデータベース１１を使用する環境において、問合せ文の実行性能を向上させることができる。
続いて、データベース管理装置２の構成を説明する。
【００２７】
［データベース管理装置２の構成］
図２は、第１実施形態に係るデータベース管理装置２の構成を示す図である。データベース管理装置２は、コンピュータであり、ＬＡＮ（Local Area Network）等を介して、複数の記憶装置１と、ユーザ端末３とに通信可能に接続されている。
【００２８】
データベース管理装置２は、図２に示すように、記憶部２１と、制御部２２とを備える。
記憶部２１は、例えば、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等である。記憶部２１は、データベース管理装置２を機能させるための各種プログラムを記憶する。例えば、記憶部２１は、データベース管理装置２の制御部２２を、後述する受付部２２１、実行部２２２、取得部２２３、特定部２２４、算出部２２５、作成部２２６及び更新部２２７として機能させるデータベース管理プログラムを記憶する。
【００２９】
また、記憶部２１は、データベース１１に格納されているテーブルを示す情報であるスキーマ情報として、物理モデルＰＭと論理モデルＬＭとを記憶する。物理モデルＰＭは、複数のデータベース１１に格納されている複数のテーブルの格納先を管理する。具体的には、物理モデルＰＭは、データベース１１に格納されているテーブルを識別するテーブル名と、当該テーブルが格納されているデータベース１１を識別するデータベース識別情報とを関連付けて記憶する。
【００３０】
論理モデルＬＭは、ユーザが参照する仮想テーブルを管理する。論理モデルＬＭは、仮想テーブルを識別するテーブル名と、当該仮想テーブルの構成を示す情報とを関連付けて記憶する。ここで、仮想テーブルの構成を示す情報は、物理モデルＰＭが示すテーブル名、又は、データベース管理装置２や、ユーザ端末３のユーザによって作成されたビューである。ここで、ビューには、物理的なビューであるマテリアライズドビューだけではなく、副問合せの内容を記述した論理的なビューが含まれていてもよい。
【００３１】
制御部２２は、例えばＣＰＵ（Central Processing Unit）である。制御部２２は、記憶部２１に記憶されている各種プログラムを実行することにより、データベース管理装置２に係る機能を制御する。制御部２２は、データベース管理プログラムを実行することにより、受付部２２１、実行部２２２、取得部２２３、特定部２２４、算出部２２５、作成部２２６及び更新部２２７として機能する。
【００３２】
受付部２２１は、ユーザ端末３から複数のデータベース１１の少なくともいずれかに対応する問合せ文を受け付ける。具体的には、受付部２２１は、ユーザ端末３から、複数の問合せ文として、ＳＱＬ（Structured Query Language）で記述された命令文を受け付ける。
【００３３】
実行部２２２は、受付部２２１により受け付けられた問合せ文に対応する処理を行う。まず、実行部２２２は、取得された問合せ文に対応する実行計画を示す実行計画情報を生成する。ここで、実行計画は木構造を有している。
【００３４】
図３は、第１実施形態に係る問合せ文の一例を示す図である。図３では、（ａ）、（ｂ）に示すように２つの問合せ文を示している。図４（ａ）、（ｂ）は、図３（ａ）、（ｂ）に示す問合せ文に対応する実行計画を示す図である。図４に示されるように、実行計画は木構造であることが確認できる。また、図４に示されるように、楕円内には、問合せ文によって実行される処理の種類が記載されている。また、処理の種類がテーブルのスキャンである場合には、処理の後にスキャン対象となるテーブル名（例えば、ｃｕｓｔｏｍｅｒやｏｒｄｅｒｓ）が示されている。なお、図４に示される実行計画では、テーブルから選択するカラムの指定や、テーブルから行を選択する条件といった処理の内容については記載を省略している。
【００３５】
実行部２２２は、実行計画に基づいて、取得された問合せ文に対応する処理を行う。例えば、実行部２２２は、問合せ文に対応するテーブルが同一のデータベース１１に格納されている場合に、問合せ文に対応する処理を当該データベース１１上で行わせる。また、実行部２２２は、問合せ文に対応するテーブルが同一のデータベース１１に格納されていない場合に、問合せ文に対応するテーブルをデータベース１１から取得し、当該テーブルを用いて問合せ文に対応する処理を行う。
【００３６】
また、実行部２２２は、問合せ文に対応するマテリアライズドビューが記憶部２１に記憶されている場合に、当該マテリアライズドビューを参照してデータを取得し、当該データを用いて問合せ文に対応する処理を行う。
【００３７】
実行部２２２は、問合せ文の実行結果をユーザ端末３に出力する。また、実行部２２２は、取得された問合せ文と、当該問合せ文に対応する実行計画と、当該問合せ文を受け付けた日時とを関連付けて記憶部２１に記憶させる。
【００３８】
取得部２２３は、複数のデータベース１１の少なくともいずれかに対応する複数の問合せ文を取得する。具体的には、取得部２２３は、記憶部２１に記憶されている複数の問合せ文と、当該問合せ文に関連付けられている実行計画とを所定時間（例えば１週間）おきに取得する。ここで、取得部２２３は、記憶部２１に記憶されている複数の問合せ文のうち、現在時刻から所定期間以内に受付部２２１が受け付けた問合せ文を取得してもよい。このようにすることで、データベース管理装置２は、直近の問合せ文の使用傾向に対応してマテリアライズドビューを作成することができる。
【００３９】
特定部２２４は、取得部２２３によって取得された複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せ文を特定する。例えば、特定部２２４は、複数の問合せ文とともに取得された複数の実行計画の少なくとも一部の実行計画に共通に含まれ、副問合せの構造を示す共通部分木を特定し、当該共通部分木に対応する副問合せを特定する。特定部２２４は、記憶部２１に記憶されている論理モデルＬＭ及び物理モデルＰＭに基づいて、特定された副問合せ文のうち、複数のデータベース１１を参照する副問合せを特定する。
【００４０】
算出部２２５は、特定された副問合せの処理コストと、当該副問合せをマテリアライズドビューに置き換えた場合の当該マテリアライズドビューの処理コストとを算出する。ここで、処理コストには、副問合せを実行する場合の計算コストと、通信ネットワーク等を介してデータを取得する時間を示す通信コストとが含まれる。例えば、算出部２２５は、特定された副問合せが参照するテーブルのレコード数に基づいて副問合せの計算コストを算出するとともに、当該副問合せの結果得られるレコード数又はデータ量に基づいて通信コストを算出する。そして、算出部２２５は、算出した計算コストと通信コストとに基づいて、副問合せの処理コストを算出する。
【００４１】
同様に、算出部２２５は、副問合せをマテリアライズドビューに置き換えた場合における、当該マテリアライズドビューの処理コストを算出する。ここで、マテリアライズドビューは、テーブルを連結する処理が不要になることから、副問合せを実行する場合に比べて計算コストが著しく小さくなる。また、マテリアライズドビューを記憶部２１に記憶された場合には、マテリアライズドビューに対応するデータを取得するときの通信コストが著しく小さくなる。
【００４２】
また、算出部２２５は、取得部２２３によって取得された複数の問合せ文に含まれている副問合せの割合に基づいて、副問合せの実行頻度を特定する。そして、算出部２２５は、副問合せの実行頻度と、副問合せの処理コストと、当該副問合せに対応するマテリアライズドビューの処理コストとに基づいて、副問合せをマテリアライズドビューに置き換えることによる処理コストの低下量の期待値を算出する。ここで、期待値とは、副問合せの実行頻度に基づく確率を重みとして加味した処理コストの重み付き平均である。算出部２２５は、実行頻度が非定常的に変動する場合は、その変動を考慮して確率を変動させ、当該確率に基づいて期待値を算出しても構わない。
【００４３】
作成部２２６は、特定部２２４により複数のデータベース１１を参照すると特定された副問合せに対応するマテリアライズドビューを作成する。具体的には、作成部２２６は、算出された副問合せの処理コストと、当該副問合せをマテリアライズドビューに置き換えた場合の当該ビューの処理コストと、副問合せの実行頻度とに基づいて、マテリアライズドビューに置き換えることによって処理コストの低下量の期待値が大きい順にマテリアライズドビューを作成する。
【００４４】
ここで、作成部２２６は、データベース管理装置２の記憶部２１の記憶可能容量を特定する。そして、作成部２２６は、特定した記憶可能容量を超えない範囲で、マテリアライズドビューを記憶部２１に作成する。このようにすることで、データベース管理装置２は、マテリアライズドビューを作成中に記憶部２１の記憶可能容量が足りなくなることを防止することができる。
【００４５】
なお、作成部２２６は、マテリアライズドビューをデータベース管理装置２の記憶部２１に作成したが、これに限らない。算出部２２５は、マテリアライズドビューを複数のデータベース１１のいずれかに作成した場合に当該ビューに対応する問合せ文を実行するときのデータベース管理装置２と複数のデータベース１１との間の通信量の予測値を算出してもよい。ここで、通信量は、過去の通信の統計情報、例えばスループットの平均、又は信頼区間の上限値と下限値との間の情報に基づいて算出されるようにしてもよい。そして、作成部２２６は、算出された予測値が相対的に小さくなるデータベース１１にマテリアライズドビューを作成してもよい。
【００４６】
また、算出部２２５は、算出する予測値について、通信量だけではなく、処理コストを加味してもよい。例えば、算出部２２５は、複数の問合せ文のそれぞれについて、副問合せに対応するビューを作成したデータベース１１において処理が行われる範囲を特定し、特定した範囲に対応するデータに基づいて処理コストの予測値を算出し、当該処理コストの予測値に基づいて通信量の予測値を補正してもよい。そして、作成部２２６は、補正後の通信量の予測値が相対的に小さくなるデータベース１１にマテリアライズドビューを作成してもよい。
【００４７】
例えば、マテリアライズドビューを複数のデータベース１１のいずれかに作成した場合、計算コストが低減する場合がある。例えば、副問合せが入れ子構造になっており、かつ、マテリアライズドビューに対応する副問合せの親に、マテリアライズドビューを配置したデータベース内のテーブルとの結合処理に関する副問合せ（親副問合せ）がある場合、計算コストが低減する。また、この場合、データが当該親副問合せにより絞り込まれることにより、データベース管理装置２とマテリアライズドビューを配置したデータベースとの間の通信量がさらに小さくなる場合がある。
【００４８】
上記のケースを考慮するために、算出部２２５は、各問合せについて、共通部分木から根の方向に遡って、共通部分木を内包するような部分木を逐次的に参照し、マテリアライズドビューを配置したデータベース内のテーブルのみで完結する範囲を探索する。そして、算出部２２５は、探索の結果、共通部分木を包含し、マテリアライズドビューを配置したデータベース内のテーブルのみで完結する部分木があれば、当該部分木のレコード数又はデータ量を参照して、処理コストの予測値を算出する。具体的には、算出部２２５は、まず、計算コストについて、予測値を計算する上で参照するレコード数を、当該部分木の各ノードのレコード数の総和に対して、共通部分木に対応するレコード数の和に関する部分をマテリアライズドビューから取得するレコード数に置き換えたレコード数の和によって代替する。続いて、算出部２２５は、通信コストについて、予測値を計算する上で参照するレコード数又はデータ量を、当該部分木に対応するレコード数又はデータ量によって代替する。
【００４９】
ここで、作成部２２６は、データベース管理装置２の記憶部２１の記憶可能容量を超えない範囲でマテリアライズドビューを記憶部２１に作成した結果、記憶部２１に作成できなかったマテリアライズドビューを、データベース１１に作成するようにしてもよい。
【００５０】
また、作成部２２６は、データベース管理装置２の記憶部２１に自動的にマテリアライズドビューを作成することとしたが、これに限らない。作成部２２６は、マテリアライズドビューを作成するか否かの指示をユーザ端末３から受け付けてもよい。そして、作成部２２６は、マテリアライズドビューの作成を指示されたことに応じて、マテリアライズドビューを作成してもよい。また、作成部２２６は、データベース管理装置２の記憶部２１と、データベース１１とに同じマテリアライズドビューを作成してもよい。
【００５１】
また、作成部２２６は、既に記憶部２１に作成されているマテリアライズドビューの評価を行うようにしてもよい。そして、作成部２２６は、先入先出法、ＬＲＵ（Least Recently Used）方式、又はＬＦＵ（Least Frequently Used）方式によりマテリアライズドビューを記憶部２１から削除してもよい。また、作成部２２６は、処理コストの低下量の期待値が相対的に小さいマテリアライズドビューを記憶部２１から削除してもよい。このようにすることで、データベース管理装置２は、処理コストの低下量の期待値が小さいマテリアライズドビューを記憶部２１から削除し、記憶部２１に、処理コストの低下量の期待値が大きいマテリアライズドビューを効率的に配置することができる。
【００５２】
また、作成部２２６は、既に記憶部２１に作成されているマテリアライズドビューを全て削除した後、処理コストの低下量の期待値が大きい順にマテリアライズドビューを作成してもよい。
【００５３】
更新部２２７は、マテリアライズドビューが作成されると、作成されたマテリアライズドビューを実行部２２２及びユーザ端末３のユーザが参照可能に物理モデルＰＭ及び論理モデルＬＭを更新する。また、更新部２２７は、マテリアライズドビューが作成されたことを示す情報と、当該マテリアライズドビューに対応する副問合せを示す情報とを関連付けてユーザ端末３に出力してもよい。これにより、ユーザ端末３のユーザは、当該副問合せを含む問合せ文を生成するときに、当該副問合せの代わりにマテリアライズドビューを指定して、実行部２２２における問合せ文の処理時間を短くすることができる。
【００５４】
［マテリアライズドビューの作成に係る処理の流れ］
続いて、マテリアライズドビューの作成に係る処理の流れについて説明する。図５は、第１実施形態に係るマテリアライズドビューの作成に係る処理の流れを示すフローチャートである。
【００５５】
まず、取得部２２３は、記憶部２１に記憶されている、複数のデータベース１１の少なくともいずれかに対応する複数の問合せ文と実行計画を取得する（Ｓ１０）。
続いて、特定部２２４は、実行計画に基づいて、複数の問合せ文に共通に含まれる副問合せを特定する（Ｓ２０）。
【００５６】
続いて、算出部２２５は、特定された副問合せの処理コスト、及び当該副問合せをマテリアライズドビューに置き換えた場合の処理コストを算出する（Ｓ３０）。
続いて、作成部２２６は、特定された副問合せのうち、マテリアライズドビューに置き換えることによって処理コストの低下量の期待値が大きい副問合せから順にマテリアライズドビューを作成する（Ｓ４０）。
【００５７】
続いて、作成部２２６は、データベース管理装置２の記憶部２１に、次に作成する予定のマテリアライズドビューの記憶可能領域があるか否かを判定する（Ｓ５０）。作成部２２６は、記憶可能領域があると判定すると、Ｓ４０に処理を移し、次に作成する予定のマテリアライズドビューを作成する。また、作成部２２６は、記憶領域がないと判定すると、本フローチャートに係る処理を終了する。
【００５８】
［第１実施形態における効果］
以上のとおり、第１実施形態に係るデータベース管理装置２は、複数のデータベース１１の少なくともいずれかに対応する複数の問合せ文を取得し、当該複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数のデータベース１１を参照する副問合せを特定する。そして、データベース管理装置２は、特定された副問合せに対応するマテリアライズドビューを作成し、当該マテリアライズドビューをユーザ端末３のユーザが参照可能に論理モデルＬＭを更新する。このようにすることで、データベース管理装置２は、複数のデータベース１１が同時に参照されることを抑制し、任意の複数のデータベースを使用する環境において、問合せ文の実行性能を向上させることができる。
【００５９】
＜第２実施形態＞
［データベース１１の利用状況に基づいてテーブルを移行した後にマテリアライズドビューを作成する］
続いて、第２実施形態について説明する。第２実施形態に係る仮想データベースシステムＳでは、データベース１１の利用状況に基づいてテーブルを移行した後にマテリアライズドビューを作成する点で第１実施形態と異なる。以下に、第２実施形態に係る仮想データベースシステムＳについて説明する。なお、第１実施形態と同じ部分については適宜説明を省略する。
【００６０】
図６は、第２実施形態に係るデータベース管理装置２の構成を示す図である。図６に示されるように、データベース管理装置２の制御部２２は、移行制御部２２８をさらに備える。
【００６１】
移行制御部２２８は、所定時間おきに記憶部２１に記憶されている複数の問合せ文と、当該問合せ文に対応する実行計画を取得する。そして、移行制御部２２８は、取得した複数の問合せ文及び実行計画に基づいて、複数のテーブルの利用状況を特定する。
【００６２】
移行制御部２２８は、特定した複数のテーブルの利用状況に基づいて、複数のデータベース１１のうち、現在格納されているデータベース１１とは異なるデータベース１１に移行するテーブルを移行対象テーブルとして特定する。
【００６３】
移行制御部２２８は、特定された移行対象テーブルを移行先のデータベース１１に移行する。具体的には、移行制御部２２８は、特定された移行対象テーブルを移行先のデータベース１１に複製し、移行対象テーブルの複製が完了すると、移行元のデータベース１１から、移行対象テーブルを消去する。
【００６４】
更新部２２７は、移行制御部２２８による移行対象テーブルの移行が完了すると、データベース管理装置２の物理モデルが示す移行対象テーブルの格納先を移行先のデータベースに更新する。
【００６５】
このようにすることで、データベース管理装置２は、テーブルの利用状況に基づいて、テーブルを適切なデータベースに配置することができる。これにより、データベース管理装置２が、問合せ文をデータベース１１に実行させる機会が増加するので、問合せ文の実行時のデータ通信量を削減し、問合せ文の実行性能を向上させることができる。
【００６６】
取得部２２３は、移行制御部２２８による移行対象テーブルの移行が完了し、更新部２２７により物理モデルが示す移行対象テーブルの格納先が更新された後、記憶部２１から、複数の問合せ文及び実行計画を取得する。
【００６７】
特定部２２４は、更新部２２７により物理モデルが示す移行対象テーブルの格納先が更新された後に取得された複数の問合せ文に基づいて、複数のデータベース１１を参照する副問合せを特定する。
そして、作成部２２６は、特定部２２４により複数のデータベース１１を参照すると特定された副問合せに対応するマテリアライズドビューを作成する。
【００６８】
［第２実施形態における効果］
以上説明したように、第２実施形態に係るデータベース管理装置２は、複数のテーブルの利用状況に基づいて、複数のデータベース１１のうち、現在格納されているデータベース１１とは異なるデータベース１１に移行するテーブルを移行対象テーブルとして特定し、特定された移行対象テーブルを移行先のデータベース１１に移行する。そして、データベース管理装置２は、移行対象テーブルの移行が完了し、物理モデルが示す移行対象テーブルの格納先が更新された後、取得された複数の問合せ文に基づいて、複数のデータベース１１を参照する副問合せを特定し、当該副問合せに対応するマテリアライズドビューを作成する。
【００６９】
このようにすることで、データベース管理装置２は、移行対象テーブルの移行後に異なるデータベース１１に格納されている複数のテーブルを参照する副問合せ文を含む問合せ文の実行性能を向上させることができる。
【００７０】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上述の複数の実施形態を組み合わせてもよい。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００７１】
例えば、上述の実施形態では、データベース管理装置２が、問合せ文の実行管理及び移行制御を行うこととしたが、これに限らない。例えば、データベース管理装置２とは異なる１以上のサーバが、問合せ文の実行管理及びテーブルの移行制御を行ってもよい。
【符号の説明】
【００７２】
１・・・記憶装置、１１・・・データベース、２・・・データベース管理装置、２１・・・記憶部、２２・・・制御部、２２１・・・受付部、２２２・・・実行部、２２３・・・取得部、２２４・・・特定部、２２５・・・算出部、２２６・・・作成部、２２７・・・更新部、２２８・・・移行制御部、３・・・ユーザ端末、Ｓ・・・仮想データベースシステム
【図１】
2019106039.tif 000003
【図２】
2019106039.tif 000004
【図３】
2019106039.tif 000005
【図４】
2019106039.tif 000006
【図５】
2019106039.tif 000007
【図６】
2019106039.tif 000008