特許第6898215号(P6898215)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許6898215データベース管理装置、データベース管理方法及びデータベース管理プログラム
<>
  • 特許6898215-データベース管理装置、データベース管理方法及びデータベース管理プログラム 図000002
  • 特許6898215-データベース管理装置、データベース管理方法及びデータベース管理プログラム 図000003
  • 特許6898215-データベース管理装置、データベース管理方法及びデータベース管理プログラム 図000004
  • 特許6898215-データベース管理装置、データベース管理方法及びデータベース管理プログラム 図000005
  • 特許6898215-データベース管理装置、データベース管理方法及びデータベース管理プログラム 図000006
  • 特許6898215-データベース管理装置、データベース管理方法及びデータベース管理プログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6898215
(24)【登録日】2021年6月14日
(45)【発行日】2021年7月7日
(54)【発明の名称】データベース管理装置、データベース管理方法及びデータベース管理プログラム
(51)【国際特許分類】
   G06F 16/245 20190101AFI20210628BHJP
   G06F 16/27 20190101ALI20210628BHJP
【FI】
   G06F16/245
   G06F16/27
【請求項の数】6
【全頁数】15
(21)【出願番号】特願2017-238546(P2017-238546)
(22)【出願日】2017年12月13日
(65)【公開番号】特開2019-106039(P2019-106039A)
(43)【公開日】2019年6月27日
【審査請求日】2019年12月6日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100124084
【弁理士】
【氏名又は名称】黒岩 久人
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】黒川 茂莉
【審査官】 北村 学
(56)【参考文献】
【文献】 米国特許出願公開第2007/0174292(US,A1)
【文献】 特開2016−091356(JP,A)
【文献】 特開平02−093836(JP,A)
【文献】 特開2006−343798(JP,A)
【文献】 大川昌弘、外2名,分散データベース環境における複製データの仮想化によるSQL処理の最適化手法,電子情報通信学会第18回データ工学ワークショップ論文集,電子情報通信学会データ工学研究専門委員会,2007年 6月 1日,1〜8
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
データベースを管理するデータベース管理装置であって、
複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとを記憶する記憶部と、
複数の前記データベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部と、
前記論理モデル及び前記物理モデルに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部と、
特定された前記副問合せに対応する物理的なビューを前記複数のデータベースのいずれかに作成した場合に当該ビューに対応する前記問合せ文を実行するときの、前記データベース管理装置と前記複数のデータベースとの間の通信量の予測値を、前記複数のデータベースのそれぞれに対して算出する算出部と、
前記算出部が算出した前記予測値が相対的に少なくなる前記データベースに、特定された前記副問合せに対応する物理的なビューを作成する作成部と、
前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデル及び前記物理モデルを更新する更新部と、
を備えるデータベース管理装置。
【請求項2】
前記複数のテーブルの利用状況に基づいて、複数の前記データベースのうち、現在格納されているデータベースとは異なるデータベースに移行するテーブルを移行対象テーブルとして特定し、特定された前記移行対象テーブルを移行先のデータベースに移行する移行制御部をさらに備え、
前記更新部は、前記物理モデルが示す前記移行対象テーブルの格納先を前記移行先のデータベースに更新し、
前記特定部は、前記移行制御部による前記移行対象テーブルの移行が完了し、前記物理モデルが示す前記移行対象テーブルの格納先が更新された後、取得された複数の前記問合せ文に基づいて、複数の前記データベースを参照する副問合せを特定する、
請求項1に記載のデータベース管理装置。
【請求項3】
前記算出部は、特定された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとを算出し、
前記作成部は、算出された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとに基づいて、前記ビューに置き換えることによって処理コストの低下量の期待値が大きい順に当該ビューを作成する、
請求項1又は2に記載のデータベース管理装置。
【請求項4】
前記算出部は、複数の前記問合せ文のそれぞれについて、前記副問合せに対応するビューを作成した前記データベースにおいて処理が行われる範囲を特定し、特定した範囲に対応するデータに基づいて、処理コストの予測値を算出し、当該処理コストの予測値に基づいて前記通信量の予測値を補正し、
前記作成部は、補正後の前記通信量の予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成する、
請求項1から3のいずれか1項に記載のデータベース管理装置。
【請求項5】
コンピュータが実行する、
複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得するステップと、
前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定するステップと、
特定された前記副問合せに対応する物理的なビューを前記複数のデータベースのいずれかに作成した場合に当該ビューに対応する前記問合せ文を実行するときの、前記コンピュータと前記複数のデータベースとの間の通信量の予測値を、前記複数のデータベースのそれぞれに対して算出するステップと、
算出された前記予測値が相対的に少なくなる前記データベースに、特定された前記副問合せに対応する物理的なビューを作成するステップと、
前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新するステップと、
を備えるデータベース管理方法。
【請求項6】
コンピュータを、
複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部、
前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部、
特定された前記副問合せに対応する物理的なビューを前記複数のデータベースのいずれかに作成した場合に当該ビューに対応する前記問合せ文を実行するときの、前記コンピュータと前記複数のデータベースとの間の通信量の予測値を、前記複数のデータベースのそれぞれに対して算出する算出部、
前記算出部が算出した前記予測値が相対的に少なくなる前記データベースに、特定された前記副問合せに対応する物理的なビューを作成する作成部、及び、
前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新する更新部、
として機能させるデータベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベース管理装置、データベース管理方法及びデータベース管理プログラムに関する。
【背景技術】
【0002】
従来、データ仮想化技術を用いることにより、複数のデータベースシステム(以下、データベースという。)を仮想的に統合したデータ統合環境を構築することが行われている。
【0003】
データ統合環境では、データベースに格納されているテーブルを示す情報であるスキーマ情報を物理モデルと論理モデルで表現する。物理モデルでは、テーブルの物理的な格納先を示すとともに、テーブルが格納されているデータベースに接続するための接続情報を保持する。論理モデルでは、一以上の物理モデル又は論理モデルに対応する仮想テーブルを構成する。クライアントは仮想テーブルを参照して問合せ文を実行することにより、テーブルが配置されているデータベースを意識することなく問合せ文を実行することができる。
【0004】
データ統合環境では、ユーザから受け付けた問合せ文を処理する処理装置が、問合せ文の実行時に必要となるテーブルをデータベースからネットワークを介して取得し、取得したテーブルを用いて問合せ文を実行する。したがって、データ統合環境における問合せ文の実行性能は、データ通信量に依存する。このため、データ通信量を減らすことにより、データ統合環境における問合せ文の実行性能を改善することができる。
【0005】
非特許文献1には、データ通信量を減らす方法として、問合せ文の実行時に、問合せ文に対応する処理を、当該問合せ文に対応するテーブルを格納するデータベース上で行う方法が開示されている。しかしながら、問合せ文が複数のデータベースのそれぞれに格納されているテーブルを参照する場合、非特許文献1に記載の方法では、データベースにおける処理が限定され、通信量を効率的に削減できないという問題がある。
【0006】
このような問題に対して、特許文献1では、問合せ文の実行時に、複数のデータベースのそれぞれに格納されているテーブルを参照する場合、データ量が小さいテーブルを一時的に一方のデータベースに移動した後、当該データベース上で、問合せ文に対応する処理を行う方法が開示されている。
【0007】
また、特許文献2では、大規模データの分散処理を管理するフレームワークであるHadoop(登録商標)とデータベースとの連携において、問合せ処理に係る中間生成物をHadoop上に生成しておき、当該中間生成物を用いることにより問合せ処理を効率化する方法が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2016−91356号公報
【特許文献2】特表2016−529586号公報
【非特許文献】
【0009】
【非特許文献1】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)
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1に記載の方法を用いることで、複数のデータベースのそれぞれに格納されているテーブルを参照する場合のデータ通信量を削減することができる。しかしながら、問合せ文が複数のデータベースのそれぞれに格納されているテーブルを参照する場合において、これらのテーブルが同程度のサイズであるとき、テーブルの移動を行うことにより、通信量が増えてしまうという問題が発生する。
【0011】
また、特許文献2に記載の方法を用いることにより、中間生成物を再生成するための処理量及び通信量を削減することができる。しかしながら、特許文献2に記載の方法は、Hadoop上に生成された中間生成物を用いているため、任意の複数のデータベースシステムに拡張できないという問題がある。
【0012】
そこで、本発明はこれらの点に鑑みてなされたものであり、複数のデータベースを使用する環境において、問合せ文の実行性能を向上させることができるデータベース管理装置、データベース管理方法及びデータベース管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の第1の態様に係るデータベース管理装置は、複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとを記憶する記憶部と、複数の前記データベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部と、前記論理モデル及び前記物理モデルに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部と、特定された前記副問合せに対応する物理的なビューを作成する作成部と、前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデル及び前記物理モデルを更新する更新部と、を備える。
【0014】
前記データベース管理装置は、前記複数のテーブルの利用状況に基づいて、複数の前記データベースのうち、現在格納されているデータベースとは異なるデータベースに移行するテーブルを移行対象テーブルとして特定し、特定された前記移行対象テーブルを移行先のデータベースに移行する移行制御部をさらに備え、前記更新部は、前記物理モデルが示す前記移行対象テーブルの格納先を前記移行先のデータベースに更新し、前記特定部は、前記移行制御部による前記移行対象テーブルの移行が完了し、前記物理モデルが示す前記移行対象テーブルの格納先が更新された後、取得された複数の前記問合せ文に基づいて、複数の前記データベースを参照する副問合せを特定してもよい。
【0015】
前記データベース管理装置は、特定された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとを算出する算出部をさらに備え、前記作成部は、算出された前記副問合せの処理コストと、当該副問合せを前記ビューに置き換えた場合の当該ビューの処理コストとに基づいて、前記ビューに置き換えることによって処理コストの低下量の期待値が大きい順に当該ビューを作成してもよい。
【0016】
前記算出部は、前記物理的なビューを前記複数のデータベースのいずれかに作成した場合に当該ビューに対応する前記問合せ文を実行するときの、前記データベース管理装置と前記複数のデータベースとの間の通信量の予測値を算出し、前記作成部は、算出された前記予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成してもよい。
前記算出部は、複数の前記問合せ文のそれぞれについて、前記副問合せに対応するビューを作成した前記データベースにおいて処理が行われる範囲を特定し、特定した範囲に対応するデータに基づいて、処理コストの予測値を算出し、当該処理コストの予測値に基づいて前記通信量の予測値を補正し、前記作成部は、補正後の前記通信量の予測値が相対的に少なくなる前記データベースに前記物理的なビューを作成してもよい。
【0017】
前記作成部は、前記データベース管理装置の記憶部に前記物理的なビューを作成してもよい。
【0018】
本発明の第2の態様に係るデータベース管理方法は、コンピュータが実行する、複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得するステップと、前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定するステップと、特定された前記副問合せに対応する物理的なビューを作成するステップと、前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新するステップと、を備える。
【0019】
本発明の第3の態様に係るデータベース管理プログラムは、コンピュータを、複数のデータベースの少なくともいずれかに対応する複数の問合せ文を取得する取得部、前記複数のデータベースのそれぞれに含まれている複数のテーブルのそれぞれの格納先を管理する物理モデルと、前記テーブルのビューを含む、ユーザが参照する仮想テーブルを管理する論理モデルとに基づいて、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数の前記データベースを参照する副問合せを特定する特定部、特定された前記副問合せに対応する物理的なビューを作成する作成部、及び、前記ビューが作成されると、作成された前記ビューを前記ユーザが参照可能に前記論理モデルを更新する更新部、として機能させる。
【発明の効果】
【0020】
本発明によれば、複数のデータベースを使用する環境において、問合せ文の実行性能を向上させることができるという効果を奏する。
【図面の簡単な説明】
【0021】
図1】第1実施形態に係る仮想データベースシステムの構成を示す図である。
図2】第1実施形態に係るデータベース管理装置の構成を示す図である。
図3】第1実施形態に係る問合せ文の一例を示す図である。
図4図3に示す問合せ文に対応する実行計画を示す図である。
図5】第1実施形態に係るマテリアライズドビューの作成に係る処理の流れを示すフローチャートである。
図6】第2実施形態に係るデータベース管理装置の構成を示す図である。
【発明を実施するための形態】
【0022】
<第1実施形態>
[仮想データベースシステムSの概要]
図1は、第1実施形態に係る仮想データベースシステムSの構成を示す図である。仮想データベースシステムSは、データベース11を物理的に格納する複数の記憶装置1と、データベース管理装置2と、ユーザ端末3とを備え、複数のデータベース11を仮想的に統合するシステムである。なお、図1において、ユーザ端末3は1台のみ示されているが、複数のユーザ端末3がデータベース管理装置2に接続されているものとする。
【0023】
データベース管理装置2は、データベース11に格納されているテーブルを示す情報であるスキーマ情報として、物理モデルと、論理モデルとを記憶している。物理モデルは、テーブルの物理的な格納場所を示すモデルである。論理モデルは、ユーザ端末3が参照可能な仮想的なテーブルを管理するモデルであり、仮想的なテーブルと、物理モデルが示すテーブルとの関連付けを行う。ここで、仮想的なテーブルには、データベース管理装置2が作成したビューが含まれる。データベース管理装置2は、ユーザ端末3から論理モデルに対応する問合せ文を取得すると、物理モデルを参照し、当該問合せ文に対応する1以上のデータベース11を特定する。
【0024】
データベース管理装置2は、特定したデータベース11からデータを取得して問合せ文に対応する演算を実行し、実行結果をユーザ端末3に出力する。これにより、ユーザは、データベース11の物理的な位置を意識することなく複数のデータベース11に格納されているデータを参照することができる。
【0025】
データベース管理装置2は、問合せ文に対応する複数のテーブルが同一のデータベース11に格納されている場合に、問合せ文の実行時のデータ通信量を減らすために、問合せ文に対応する処理を当該データベース11上で行わせる。また、データベース管理装置2は、問合せ文に対応する複数のテーブルが同一のデータベース11に格納されていない場合に、問合せ文に対応するテーブルをデータベース管理装置2が取得し、データベース管理装置2において問合せ文に対応する処理を行う。このため、問合せ文に対応するテーブルが同一のデータベース11に格納されていない場合には、データ通信量が増加し、問合せ文の実行性能が悪化するという問題が発生する。
【0026】
このような問題に対して、本実施形態に係るデータベース管理装置2は、ユーザ端末3から取得した複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数のデータベース11を参照する副問合せを特定する。そして、データベース管理装置2は、自身の記憶領域に、特定した副問合せに対応する物理的なビューであるマテリアライズドビューを作成する。データベース管理装置2は、作成されたマテリアライズドビューをユーザが参照可能に論理モデルを更新する。このようにすることで、データベース管理装置2は、任意の複数のデータベース11を使用する環境において、問合せ文の実行性能を向上させることができる。
続いて、データベース管理装置2の構成を説明する。
【0027】
[データベース管理装置2の構成]
図2は、第1実施形態に係るデータベース管理装置2の構成を示す図である。データベース管理装置2は、コンピュータであり、LAN(Local Area Network)等を介して、複数の記憶装置1と、ユーザ端末3とに通信可能に接続されている。
【0028】
データベース管理装置2は、図2に示すように、記憶部21と、制御部22とを備える。
記憶部21は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)等である。記憶部21は、データベース管理装置2を機能させるための各種プログラムを記憶する。例えば、記憶部21は、データベース管理装置2の制御部22を、後述する受付部221、実行部222、取得部223、特定部224、算出部225、作成部226及び更新部227として機能させるデータベース管理プログラムを記憶する。
【0029】
また、記憶部21は、データベース11に格納されているテーブルを示す情報であるスキーマ情報として、物理モデルPMと論理モデルLMとを記憶する。物理モデルPMは、複数のデータベース11に格納されている複数のテーブルの格納先を管理する。具体的には、物理モデルPMは、データベース11に格納されているテーブルを識別するテーブル名と、当該テーブルが格納されているデータベース11を識別するデータベース識別情報とを関連付けて記憶する。
【0030】
論理モデルLMは、ユーザが参照する仮想テーブルを管理する。論理モデルLMは、仮想テーブルを識別するテーブル名と、当該仮想テーブルの構成を示す情報とを関連付けて記憶する。ここで、仮想テーブルの構成を示す情報は、物理モデルPMが示すテーブル名、又は、データベース管理装置2や、ユーザ端末3のユーザによって作成されたビューである。ここで、ビューには、物理的なビューであるマテリアライズドビューだけではなく、副問合せの内容を記述した論理的なビューが含まれていてもよい。
【0031】
制御部22は、例えばCPU(Central Processing Unit)である。制御部22は、記憶部21に記憶されている各種プログラムを実行することにより、データベース管理装置2に係る機能を制御する。制御部22は、データベース管理プログラムを実行することにより、受付部221、実行部222、取得部223、特定部224、算出部225、作成部226及び更新部227として機能する。
【0032】
受付部221は、ユーザ端末3から複数のデータベース11の少なくともいずれかに対応する問合せ文を受け付ける。具体的には、受付部221は、ユーザ端末3から、複数の問合せ文として、SQL(Structured Query Language)で記述された命令文を受け付ける。
【0033】
実行部222は、受付部221により受け付けられた問合せ文に対応する処理を行う。まず、実行部222は、取得された問合せ文に対応する実行計画を示す実行計画情報を生成する。ここで、実行計画は木構造を有している。
【0034】
図3は、第1実施形態に係る問合せ文の一例を示す図である。図3では、(a)、(b)に示すように2つの問合せ文を示している。図4(a)、(b)は、図3(a)、(b)に示す問合せ文に対応する実行計画を示す図である。図4に示されるように、実行計画は木構造であることが確認できる。また、図4に示されるように、楕円内には、問合せ文によって実行される処理の種類が記載されている。また、処理の種類がテーブルのスキャンである場合には、処理の後にスキャン対象となるテーブル名(例えば、customerやorders)が示されている。なお、図4に示される実行計画では、テーブルから選択するカラムの指定や、テーブルから行を選択する条件といった処理の内容については記載を省略している。
【0035】
実行部222は、実行計画に基づいて、取得された問合せ文に対応する処理を行う。例えば、実行部222は、問合せ文に対応するテーブルが同一のデータベース11に格納されている場合に、問合せ文に対応する処理を当該データベース11上で行わせる。また、実行部222は、問合せ文に対応するテーブルが同一のデータベース11に格納されていない場合に、問合せ文に対応するテーブルをデータベース11から取得し、当該テーブルを用いて問合せ文に対応する処理を行う。
【0036】
また、実行部222は、問合せ文に対応するマテリアライズドビューが記憶部21に記憶されている場合に、当該マテリアライズドビューを参照してデータを取得し、当該データを用いて問合せ文に対応する処理を行う。
【0037】
実行部222は、問合せ文の実行結果をユーザ端末3に出力する。また、実行部222は、取得された問合せ文と、当該問合せ文に対応する実行計画と、当該問合せ文を受け付けた日時とを関連付けて記憶部21に記憶させる。
【0038】
取得部223は、複数のデータベース11の少なくともいずれかに対応する複数の問合せ文を取得する。具体的には、取得部223は、記憶部21に記憶されている複数の問合せ文と、当該問合せ文に関連付けられている実行計画とを所定時間(例えば1週間)おきに取得する。ここで、取得部223は、記憶部21に記憶されている複数の問合せ文のうち、現在時刻から所定期間以内に受付部221が受け付けた問合せ文を取得してもよい。このようにすることで、データベース管理装置2は、直近の問合せ文の使用傾向に対応してマテリアライズドビューを作成することができる。
【0039】
特定部224は、取得部223によって取得された複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せ文を特定する。例えば、特定部224は、複数の問合せ文とともに取得された複数の実行計画の少なくとも一部の実行計画に共通に含まれ、副問合せの構造を示す共通部分木を特定し、当該共通部分木に対応する副問合せを特定する。特定部224は、記憶部21に記憶されている論理モデルLM及び物理モデルPMに基づいて、特定された副問合せ文のうち、複数のデータベース11を参照する副問合せを特定する。
【0040】
算出部225は、特定された副問合せの処理コストと、当該副問合せをマテリアライズドビューに置き換えた場合の当該マテリアライズドビューの処理コストとを算出する。ここで、処理コストには、副問合せを実行する場合の計算コストと、通信ネットワーク等を介してデータを取得する時間を示す通信コストとが含まれる。例えば、算出部225は、特定された副問合せが参照するテーブルのレコード数に基づいて副問合せの計算コストを算出するとともに、当該副問合せの結果得られるレコード数又はデータ量に基づいて通信コストを算出する。そして、算出部225は、算出した計算コストと通信コストとに基づいて、副問合せの処理コストを算出する。
【0041】
同様に、算出部225は、副問合せをマテリアライズドビューに置き換えた場合における、当該マテリアライズドビューの処理コストを算出する。ここで、マテリアライズドビューは、テーブルを連結する処理が不要になることから、副問合せを実行する場合に比べて計算コストが著しく小さくなる。また、マテリアライズドビューを記憶部21に記憶された場合には、マテリアライズドビューに対応するデータを取得するときの通信コストが著しく小さくなる。
【0042】
また、算出部225は、取得部223によって取得された複数の問合せ文に含まれている副問合せの割合に基づいて、副問合せの実行頻度を特定する。そして、算出部225は、副問合せの実行頻度と、副問合せの処理コストと、当該副問合せに対応するマテリアライズドビューの処理コストとに基づいて、副問合せをマテリアライズドビューに置き換えることによる処理コストの低下量の期待値を算出する。ここで、期待値とは、副問合せの実行頻度に基づく確率を重みとして加味した処理コストの重み付き平均である。算出部225は、実行頻度が非定常的に変動する場合は、その変動を考慮して確率を変動させ、当該確率に基づいて期待値を算出しても構わない。
【0043】
作成部226は、特定部224により複数のデータベース11を参照すると特定された副問合せに対応するマテリアライズドビューを作成する。具体的には、作成部226は、算出された副問合せの処理コストと、当該副問合せをマテリアライズドビューに置き換えた場合の当該ビューの処理コストと、副問合せの実行頻度とに基づいて、マテリアライズドビューに置き換えることによって処理コストの低下量の期待値が大きい順にマテリアライズドビューを作成する。
【0044】
ここで、作成部226は、データベース管理装置2の記憶部21の記憶可能容量を特定する。そして、作成部226は、特定した記憶可能容量を超えない範囲で、マテリアライズドビューを記憶部21に作成する。このようにすることで、データベース管理装置2は、マテリアライズドビューを作成中に記憶部21の記憶可能容量が足りなくなることを防止することができる。
【0045】
なお、作成部226は、マテリアライズドビューをデータベース管理装置2の記憶部21に作成したが、これに限らない。算出部225は、マテリアライズドビューを複数のデータベース11のいずれかに作成した場合に当該ビューに対応する問合せ文を実行するときのデータベース管理装置2と複数のデータベース11との間の通信量の予測値を算出してもよい。ここで、通信量は、過去の通信の統計情報、例えばスループットの平均、又は信頼区間の上限値と下限値との間の情報に基づいて算出されるようにしてもよい。そして、作成部226は、算出された予測値が相対的に小さくなるデータベース11にマテリアライズドビューを作成してもよい。
【0046】
また、算出部225は、算出する予測値について、通信量だけではなく、処理コストを加味してもよい。例えば、算出部225は、複数の問合せ文のそれぞれについて、副問合せに対応するビューを作成したデータベース11において処理が行われる範囲を特定し、特定した範囲に対応するデータに基づいて処理コストの予測値を算出し、当該処理コストの予測値に基づいて通信量の予測値を補正してもよい。そして、作成部226は、補正後の通信量の予測値が相対的に小さくなるデータベース11にマテリアライズドビューを作成してもよい。
【0047】
例えば、マテリアライズドビューを複数のデータベース11のいずれかに作成した場合、計算コストが低減する場合がある。例えば、副問合せが入れ子構造になっており、かつ、マテリアライズドビューに対応する副問合せの親に、マテリアライズドビューを配置したデータベース内のテーブルとの結合処理に関する副問合せ(親副問合せ)がある場合、計算コストが低減する。また、この場合、データが当該親副問合せにより絞り込まれることにより、データベース管理装置2とマテリアライズドビューを配置したデータベースとの間の通信量がさらに小さくなる場合がある。
【0048】
上記のケースを考慮するために、算出部225は、各問合せについて、共通部分木から根の方向に遡って、共通部分木を内包するような部分木を逐次的に参照し、マテリアライズドビューを配置したデータベース内のテーブルのみで完結する範囲を探索する。そして、算出部225は、探索の結果、共通部分木を包含し、マテリアライズドビューを配置したデータベース内のテーブルのみで完結する部分木があれば、当該部分木のレコード数又はデータ量を参照して、処理コストの予測値を算出する。具体的には、算出部225は、まず、計算コストについて、予測値を計算する上で参照するレコード数を、当該部分木の各ノードのレコード数の総和に対して、共通部分木に対応するレコード数の和に関する部分をマテリアライズドビューから取得するレコード数に置き換えたレコード数の和によって代替する。続いて、算出部225は、通信コストについて、予測値を計算する上で参照するレコード数又はデータ量を、当該部分木に対応するレコード数又はデータ量によって代替する。
【0049】
ここで、作成部226は、データベース管理装置2の記憶部21の記憶可能容量を超えない範囲でマテリアライズドビューを記憶部21に作成した結果、記憶部21に作成できなかったマテリアライズドビューを、データベース11に作成するようにしてもよい。
【0050】
また、作成部226は、データベース管理装置2の記憶部21に自動的にマテリアライズドビューを作成することとしたが、これに限らない。作成部226は、マテリアライズドビューを作成するか否かの指示をユーザ端末3から受け付けてもよい。そして、作成部226は、マテリアライズドビューの作成を指示されたことに応じて、マテリアライズドビューを作成してもよい。また、作成部226は、データベース管理装置2の記憶部21と、データベース11とに同じマテリアライズドビューを作成してもよい。
【0051】
また、作成部226は、既に記憶部21に作成されているマテリアライズドビューの評価を行うようにしてもよい。そして、作成部226は、先入先出法、LRU(Least Recently Used)方式、又はLFU(Least Frequently Used)方式によりマテリアライズドビューを記憶部21から削除してもよい。また、作成部226は、処理コストの低下量の期待値が相対的に小さいマテリアライズドビューを記憶部21から削除してもよい。このようにすることで、データベース管理装置2は、処理コストの低下量の期待値が小さいマテリアライズドビューを記憶部21から削除し、記憶部21に、処理コストの低下量の期待値が大きいマテリアライズドビューを効率的に配置することができる。
【0052】
また、作成部226は、既に記憶部21に作成されているマテリアライズドビューを全て削除した後、処理コストの低下量の期待値が大きい順にマテリアライズドビューを作成してもよい。
【0053】
更新部227は、マテリアライズドビューが作成されると、作成されたマテリアライズドビューを実行部222及びユーザ端末3のユーザが参照可能に物理モデルPM及び論理モデルLMを更新する。また、更新部227は、マテリアライズドビューが作成されたことを示す情報と、当該マテリアライズドビューに対応する副問合せを示す情報とを関連付けてユーザ端末3に出力してもよい。これにより、ユーザ端末3のユーザは、当該副問合せを含む問合せ文を生成するときに、当該副問合せの代わりにマテリアライズドビューを指定して、実行部222における問合せ文の処理時間を短くすることができる。
【0054】
[マテリアライズドビューの作成に係る処理の流れ]
続いて、マテリアライズドビューの作成に係る処理の流れについて説明する。図5は、第1実施形態に係るマテリアライズドビューの作成に係る処理の流れを示すフローチャートである。
【0055】
まず、取得部223は、記憶部21に記憶されている、複数のデータベース11の少なくともいずれかに対応する複数の問合せ文と実行計画を取得する(S10)。
続いて、特定部224は、実行計画に基づいて、複数の問合せ文に共通に含まれる副問合せを特定する(S20)。
【0056】
続いて、算出部225は、特定された副問合せの処理コスト、及び当該副問合せをマテリアライズドビューに置き換えた場合の処理コストを算出する(S30)。
続いて、作成部226は、特定された副問合せのうち、マテリアライズドビューに置き換えることによって処理コストの低下量の期待値が大きい副問合せから順にマテリアライズドビューを作成する(S40)。
【0057】
続いて、作成部226は、データベース管理装置2の記憶部21に、次に作成する予定のマテリアライズドビューの記憶可能領域があるか否かを判定する(S50)。作成部226は、記憶可能領域があると判定すると、S40に処理を移し、次に作成する予定のマテリアライズドビューを作成する。また、作成部226は、記憶領域がないと判定すると、本フローチャートに係る処理を終了する。
【0058】
[第1実施形態における効果]
以上のとおり、第1実施形態に係るデータベース管理装置2は、複数のデータベース11の少なくともいずれかに対応する複数の問合せ文を取得し、当該複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せのうち、複数のデータベース11を参照する副問合せを特定する。そして、データベース管理装置2は、特定された副問合せに対応するマテリアライズドビューを作成し、当該マテリアライズドビューをユーザ端末3のユーザが参照可能に論理モデルLMを更新する。このようにすることで、データベース管理装置2は、複数のデータベース11が同時に参照されることを抑制し、任意の複数のデータベースを使用する環境において、問合せ文の実行性能を向上させることができる。
【0059】
<第2実施形態>
[データベース11の利用状況に基づいてテーブルを移行した後にマテリアライズドビューを作成する]
続いて、第2実施形態について説明する。第2実施形態に係る仮想データベースシステムSでは、データベース11の利用状況に基づいてテーブルを移行した後にマテリアライズドビューを作成する点で第1実施形態と異なる。以下に、第2実施形態に係る仮想データベースシステムSについて説明する。なお、第1実施形態と同じ部分については適宜説明を省略する。
【0060】
図6は、第2実施形態に係るデータベース管理装置2の構成を示す図である。図6に示されるように、データベース管理装置2の制御部22は、移行制御部228をさらに備える。
【0061】
移行制御部228は、所定時間おきに記憶部21に記憶されている複数の問合せ文と、当該問合せ文に対応する実行計画を取得する。そして、移行制御部228は、取得した複数の問合せ文及び実行計画に基づいて、複数のテーブルの利用状況を特定する。
【0062】
移行制御部228は、特定した複数のテーブルの利用状況に基づいて、複数のデータベース11のうち、現在格納されているデータベース11とは異なるデータベース11に移行するテーブルを移行対象テーブルとして特定する。
【0063】
移行制御部228は、特定された移行対象テーブルを移行先のデータベース11に移行する。具体的には、移行制御部228は、特定された移行対象テーブルを移行先のデータベース11に複製し、移行対象テーブルの複製が完了すると、移行元のデータベース11から、移行対象テーブルを消去する。
【0064】
更新部227は、移行制御部228による移行対象テーブルの移行が完了すると、データベース管理装置2の物理モデルが示す移行対象テーブルの格納先を移行先のデータベースに更新する。
【0065】
このようにすることで、データベース管理装置2は、テーブルの利用状況に基づいて、テーブルを適切なデータベースに配置することができる。これにより、データベース管理装置2が、問合せ文をデータベース11に実行させる機会が増加するので、問合せ文の実行時のデータ通信量を削減し、問合せ文の実行性能を向上させることができる。
【0066】
取得部223は、移行制御部228による移行対象テーブルの移行が完了し、更新部227により物理モデルが示す移行対象テーブルの格納先が更新された後、記憶部21から、複数の問合せ文及び実行計画を取得する。
【0067】
特定部224は、更新部227により物理モデルが示す移行対象テーブルの格納先が更新された後に取得された複数の問合せ文に基づいて、複数のデータベース11を参照する副問合せを特定する。
そして、作成部226は、特定部224により複数のデータベース11を参照すると特定された副問合せに対応するマテリアライズドビューを作成する。
【0068】
[第2実施形態における効果]
以上説明したように、第2実施形態に係るデータベース管理装置2は、複数のテーブルの利用状況に基づいて、複数のデータベース11のうち、現在格納されているデータベース11とは異なるデータベース11に移行するテーブルを移行対象テーブルとして特定し、特定された移行対象テーブルを移行先のデータベース11に移行する。そして、データベース管理装置2は、移行対象テーブルの移行が完了し、物理モデルが示す移行対象テーブルの格納先が更新された後、取得された複数の問合せ文に基づいて、複数のデータベース11を参照する副問合せを特定し、当該副問合せに対応するマテリアライズドビューを作成する。
【0069】
このようにすることで、データベース管理装置2は、移行対象テーブルの移行後に異なるデータベース11に格納されている複数のテーブルを参照する副問合せ文を含む問合せ文の実行性能を向上させることができる。
【0070】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上述の複数の実施形態を組み合わせてもよい。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0071】
例えば、上述の実施形態では、データベース管理装置2が、問合せ文の実行管理及び移行制御を行うこととしたが、これに限らない。例えば、データベース管理装置2とは異なる1以上のサーバが、問合せ文の実行管理及びテーブルの移行制御を行ってもよい。
【符号の説明】
【0072】
1・・・記憶装置、11・・・データベース、2・・・データベース管理装置、21・・・記憶部、22・・・制御部、221・・・受付部、222・・・実行部、223・・・取得部、224・・・特定部、225・・・算出部、226・・・作成部、227・・・更新部、228・・・移行制御部、3・・・ユーザ端末、S・・・仮想データベースシステム
図1
図2
図3
図4
図5
図6