(57)【要約】【課題】データベースに対応する問合せをユーザに自発的に改善させる。【解決手段】データベース管理装置１は、データベースに対応する複数の問合せ文を取得する取得部１２１と、取得された複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部１２２と、特定された副問合せの計算コストを算出する算出部１２３と、算出された計算コストを示す情報を出力する出力部１２４とを備える。算出部１２３は、特定された副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとを算出し、出力部１２４は、算出された副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとに基づいて、ビューに置き換えることによって計算コストが低下する副問合せを示す情報を出力する。【選択図】図２
2019040409.tif 000002
【特許請求の範囲】
【請求項１】
データベースに対応する複数の問合せ文を取得する取得部と、
取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部と、
特定された前記副問合せの計算コストを算出する算出部と、
算出された前記計算コストを示す情報を出力する出力部と、
を備えるデータベース管理装置。
【請求項２】
前記算出部は、特定された前記副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとを算出し、
前記出力部は、算出された前記副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとに基づいて、前記ビューに置き換えることによって計算コストの低下量の期待値が増加する前記副問合せを示す情報を出力する、
請求項１に記載のデータベース管理装置。
【請求項３】
前記出力部は、前記ビューに置き換えることによる前記計算コストの低下量の期待値が大きい順に前記副問合せを示す情報を出力する、
請求項２に記載のデータベース管理装置。
【請求項４】
前記出力部は、前記副問合せを前記ビューに置き換え、前記副問合せに対応するデータをキャッシュした場合に消費する記憶領域の量を示す資源コストが所定の制約を満たすように前記副問合せを前記ビューに置き換えることによって計算コストの低下量の期待値が増加する前記副問合せを示す情報を出力する、
請求項２又は３に記載のデータベース管理装置。
【請求項５】
前記計算コストの低下量の期待値が増加する前記副問合せに対応するビューを作成する作成部をさらに備える、
請求項２から４のいずれか１項に記載のデータベース管理装置。
【請求項６】
前記作成部は、前記計算コストの低下量の期待値が増加する前記副問合せに対応するビューを作成するか否かの指示をユーザ端末から受け付け、当該ビューを作成する指示を受け付けたことに応じて、当該ビューを作成する、
請求項５に記載のデータベース管理装置。
【請求項７】
前記作成部は、前記ビューを作成する指示を前記ユーザ端末から受け付けると、当該ビューに対応するキャッシュを生成するか否かの指示を前記ユーザ端末からさらに受け付け、当該キャッシュを生成する指示を受け付けたことに応じて、当該キャッシュを生成する、
請求項６に記載のデータベース管理装置。
【請求項８】
前記ユーザ端末から前記問合せ文を取得する第２取得部と、
前記第２取得部が取得した前記問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する実行部をさらに備える、
請求項６又は７に記載のデータベース管理装置。
【請求項９】
前記実行部は、前記副問合せを前記ビューに置き換える指示を前記ユーザ端末から受け付けたことに応じて、当該副問合せを当該ビューに置き換えて前記問合せ文を実行する、
請求項８に記載のデータベース管理装置。
【請求項１０】
前記取得部は、前記複数の問合せ文のそれぞれに対応する処理を木構造で示す実行計画を取得し、
前記特定部は、取得された前記実行計画の少なくとも一部の実行計画に共通に含まれる部分木を特定し、当該部分木に対応する前記副問合せを特定する、
請求項１から９のいずれか１項に記載のデータベース管理装置。
【請求項１１】
コンピュータが実行する、
データベースに対応する複数の問合せ文を取得するステップと、
取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定するステップと、
特定された前記副問合せの計算コストを算出するステップと、
算出された前記計算コストを示す情報を出力するステップと、
を備えるデータベース管理方法。
【請求項１２】
コンピュータを、
データベースに対応する複数の問合せ文を取得する取得部、
取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部、
特定された前記副問合せの計算コストを算出する算出部、及び、
算出された前記計算コストを示す情報を出力する出力部、
として機能させるデータベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、データベース管理方法、及びデータベース管理プログラムに関する。
【背景技術】
【０００２】
従来、データベースに対応する複数の問合せを最適化することが行われている。複数の問合せを最適化する方法としては、複数の問合せにおいて共通する処理の中間結果を共有する方法が挙げられる（例えば、特許文献１及び非特許文献１参照）。中間結果を最適化することにより、計算コストを削減することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１６−５２９５８６号公報
【非特許文献】
【０００４】
【非特許文献１】Murat Ali Bayir， Ismail H. Toroslu, Ahmet Cosar, “Genetic algorithm for the multiple-query optimization problem”, IEEE Transactions on Systems, Man and Cybernetics Part C: Applications and Reviews 37, 147-153
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の問合せの最適化では、自動的に複数の問合せ間で共通の中間結果が共有されるので、共有する中間結果をユーザが定義する必要がない。このため、どのように中間結果を共有すると最適化されるかをユーザが認識しないことがある。この場合、ユーザは、自身が作成した問合せの中のどの部分が冗長であり、計算コストが高いのか認識することができず、自発的に問合せを改善することが難しくなるという問題が発生する。
【０００６】
例えば、特許文献１は、Ｈａｄｏｏｐ（登録商標）やリレーショナルデータベースシステムといった複数のデータベースシステムにおいて、Ｈａｄｏｏｐ上の中間生成物を用いて、どのデータベースシステムにどのデータを物理的に配置するかを問合せ処理効率の観点で制約付き最適化する技術を開示している。この場合、Ｈａｄｏｏｐ上の中間生成物を用いているため、任意のデータベースシステムに拡張することはできない。
【０００７】
また、計算コストが高い処理は、記述量が多くなる場合が多い。例えば、複数の問合せにおいて共通する処理に対応する記述を変更する場合に、当該記述の量が多いときには、ユーザが修正する範囲が大きくなり、ユーザの修正作業が煩雑になるという問題がある。そこで、ユーザに問合せ文の計算コストを把握させ、自発的に問合せを改善できるようにすることが求められている。
【０００８】
そこで、本発明はこれらの点に鑑みてなされたものであり、データベースに対応する問合せをユーザに自発的に改善させることができるデータベース管理装置、データベース管理方法、及びデータベース管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係るデータベース管理装置は、データベースに対応する複数の問合せ文を取得する取得部と、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部と、特定された前記副問合せの計算コストを算出する算出部と、算出された前記計算コストを示す情報を出力する出力部と、を備える。
【００１０】
前記算出部は、特定された前記副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとを算出し、前記出力部は、算出された前記副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとに基づいて、前記ビューに置き換えることによって計算コストの低下量の期待値が増加する前記副問合せを示す情報を出力してもよい。
【００１１】
前記出力部は、前記ビューに置き換えることによる前記計算コストの低下量の期待値が大きい順に前記副問合せを示す情報を出力してもよい。
前記出力部は、前記副問合せを前記ビューに置き換え、前記副問合せに対応するデータをキャッシュした場合に消費する記憶領域の量を示す資源コストが所定の制約を満たすように前記副問合せを前記ビューに置き換えることによって計算コストの低下量の期待値が増加する前記副問合せを示す情報を出力してもよい。
前記計算コストの低下量の期待値が増加する前記副問合せに対応するビューを作成する作成部をさらに備えてもよい。
【００１２】
前記作成部は、前記計算コストの低下量の期待値が増加する前記副問合せに対応するビューを作成するか否かの指示をユーザ端末から受け付け、当該ビューを作成する指示を受け付けたことに応じて、当該ビューを作成してもよい。
【００１３】
前記作成部は、前記ビューを作成する指示を前記ユーザ端末から受け付けると、当該ビューに対応するキャッシュを生成するか否かの指示を前記ユーザ端末からさらに受け付け、当該キャッシュを生成する指示を受け付けたことに応じて、当該キャッシュを生成してもよい。
【００１４】
前記データベース管理装置は、前記ユーザ端末から前記問合せ文を取得する第２取得部と、前記第２取得部が取得した前記問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する実行部をさらに備えてもよい。
【００１５】
前記実行部は、前記副問合せを前記ビューに置き換える指示を前記ユーザ端末から受け付けたことに応じて、当該副問合せを当該ビューに置き換えて前記問合せ文を実行してもよい。
【００１６】
前記取得部は、前記複数の問合せ文のそれぞれに対応する処理を木構造で示す実行計画を取得し、前記特定部は、取得された前記実行計画の少なくとも一部の実行計画に共通に含まれる部分木を特定し、当該部分木に対応する前記副問合せを特定してもよい。
【００１７】
本発明の第２の態様に係るデータベース管理方法は、コンピュータが実行する、データベースに対応する複数の問合せ文を取得するステップと、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定するステップと、特定された前記副問合せの計算コストを算出するステップと、算出された前記計算コストを示す情報を出力するステップと、を備える。
【００１８】
本発明の第３の態様に係るデータベース管理プログラムは、コンピュータを、データベースに対応する複数の問合せ文を取得する取得部、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部、特定された前記副問合せの計算コストを算出する算出部、及び、算出された前記計算コストを示す情報を出力する出力部、として機能させる。
【発明の効果】
【００１９】
本発明によれば、データベースに対応する問合せをユーザに自発的に改善させることができるという効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係るデータベース管理システムの概要を示す図である。
【図２】第１実施形態に係るデータベース管理装置の構成を示す図である。
【図３】第１実施形態に係る問合せ文の一例を示す図である。
【図４】図３に示す問合せ文に対応する実行計画を示す図である。
【図５】第１実施形態に係るデータベース管理装置における処理の流れを示すフローチャートである。
【図６】第２実施形態に係るデータベース管理装置の構成を示す図である。
【発明を実施するための形態】
【００２１】
＜第１実施形態＞
［データベース管理システムＳの概要］
図１は、第１実施形態に係るデータベース管理システムＳの概要を示す図である。データベース管理システムＳは、データベース管理装置１と、データベースシステム２と、ユーザ端末３とを備え、データベースシステム２において実行される問合せ文を管理するシステムである。
【００２２】
データベース管理装置１は、データベースシステム２及びユーザ端末３と、ＬＡＮやインターネット等の通信ネットワークを介して通信可能に接続されている。データベース管理装置１は、データベースシステム２において実行された複数の問合せ文をデータベースシステム２から取得する（図１の（１））。
【００２３】
データベース管理装置１は、取得した複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する（図１の（２））。データベース管理装置１は、特定した副問合せの計算コストを算出するとともに、当該副問合せをビューに置き換えた場合の計算コストを算出する（図１の（３）、（４））。データベース管理装置１は、算出した計算コストを示す計算コスト情報をユーザ端末３に送信する（図１の（５））。これにより、データベース管理装置１は、計算コスト情報をユーザに確認させて、データベースに対応する問合せをユーザに自発的に改善させることができる。
【００２４】
ユーザ端末３は、ユーザから、ビューの作成指示を受け付けると、ビューの作成を指示する作成指示情報をデータベース管理装置１に送信する（図１の（６））。データベース管理装置１は、作成指示情報を受信するとビューを作成する（図１の（７））。
【００２５】
このように、データベース管理装置１は、ユーザ端末３から受信した作成指示情報に基づいてビューを作成することにより、作成対象のビューの計算コストが副問合せの計算コストよりも低い場合に、計算コストを削減することができる。
以下、データベース管理装置１の構成について説明する。
【００２６】
［データベース管理装置１の構成例］
図２は、第１実施形態に係るデータベース管理装置１の構成を示す図である。
データベース管理装置１は、記憶部１１と、制御部１２とを備える。
【００２７】
記憶部１１は、例えば、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等である。記憶部１１は、データベース管理装置１を機能させるための各種プログラムを記憶する。記憶部１１は、データベース管理装置１の制御部１２を、後述する取得部１２１、特定部１２２、算出部１２３、出力部１２４、及び作成部１２５として機能させるデータベース管理プログラムを記憶する。また、記憶部１１は、副問合せと、当該副問合せに対応して作成されたビューとの対応関係を示す対応関係情報を記憶する。
【００２８】
制御部１２は、例えばＣＰＵ（Central Processing Unit）である。制御部１２は、記憶部１１に記憶されている各種プログラムを実行することにより、データベース管理装置１に係る機能を制御する。制御部１２は、データベース管理プログラムを実行することにより、取得部１２１、特定部１２２、算出部１２３、出力部１２４、及び作成部１２５として機能する。
【００２９】
取得部１２１は、データベースに対応する複数の問合せ文をデータベースシステム２から取得する。具体的には、取得部１２１は、データベースシステム２から、複数の問合せ文として、ＳＱＬ（Structured Query Language）で記述された命令文を取得する。また、取得部１２１は、複数の問合せ文のそれぞれに対応する処理を木構造で示す実行計画を取得する。取得部１２１は、取得した複数の問合せ文と実行計画とを関連付けて記憶部１１に記憶させる。
【００３０】
図３は、本実施形態に係る問合せ文の一例を示す図である。図４は、図３に示す問合せ文に対応する実行計画を示す図である。図４に示されるように、実行計画は木構造であることが確認できる。また、図４に示されるように、楕円内には、問合せ文によって実行される処理の種類が記載されている。また、処理の種類がテーブルのスキャンである場合には、処理の後にスキャン対象となるテーブル名（例えば、ｃｕｓｔｏｍｅｒやｏｒｄｅｒｓ）が示されている。なお、図４に示される実行計画では、テーブルから選択するカラムの指定や、テーブルから行を選択する条件といった処理の内容については記載を省略している。
【００３１】
特定部１２２は、取得された複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを１以上特定する。具体的には、特定部１２２は、取得された複数の実行計画の少なくとも一部の実行計画に共通に含まれる共通部分木を特定し、当該共通部分木に対応する副問合せを特定する。
【００３２】
より具体的には、特定部１２２は、取得された複数の実行計画を参照し、処理の種類、スキャン対象となるテーブル名、及び木構造が共通する部分木を共通部分木として特定する。ここで、特定部１２２は、特定した部分木において、処理の内容が異なる場合、処理の内容の共通部分を抽出し、共通部分木の処理内容としてもよい。
【００３３】
特定部１２２は、例えば、処理の種類が選択の場合には、カラムの和集合を共通部分として抽出し、処理の種類が射影の場合には、行の選択条件の論理和を共通部分として抽出する。なお、特定部１２２は、共通部分木が１つのテーブルからの選択に対応するとともに、行の選択条件の論理和が「ａｎｙ」となる共通部分については、抽出しないようにしてもよい。
【００３４】
その後、特定部１２２は、実行計画から特定した共通部分木と、当該実行計画に対応する問合せ文とに基づいて、共通部分木に対応する副問合せを特定する。
【００３５】
算出部１２３は、特定された副問合せのそれぞれの計算コストを算出する。例えば、算出部１２３は、特定された副問合せが参照するテーブルのレコード数に所定の係数を乗算することにより、副問合せの計算コストを算出する。
【００３６】
また、算出部１２３は、特定された１以上の副問合せのそれぞれをビューに置き換えた場合の、当該ビューの計算コストを算出する。例えば、算出部１２３は、副問合せに対応するビューをデータベースシステム２に生成させて、当該ビューをデータベースシステム２に実行させることにより、ビューの実行にかかる計算コストを取得する。ここで、問合せ文に含まれる副問合せをビューに置き換えて実行する場合には、副問合せをビューに置き換える処理が発生する。そこで、算出部１２３は、問合せ文に含まれる副問合せをビューに置き換える処理に対応する計算コストと、ビューの実行にかかる計算コストとの合算値をビューの計算コストとしてもよい。
【００３７】
算出部１２３は、算出された副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとに基づいて、ビューに置き換えることによって計算コストが低下する副問合せを特定する。
【００３８】
また、ｎ個の問合せ文から特定された副問合せの個数がｋであり、ｊ番目の副問合せをビューに置き換える処理に対応する計算コストをｄ（ｊ）とする。
【００３９】
また、ｉ番目の問合せ文にｊ番目の副問合せが含まれるか否かを示すデルタ関数（含まれる場合１、含まれない場合０）をａ（ｉ，ｊ）とする。
【００４０】
ここで、ｉ番目の問合せ文にｊ番目の副問合せが含まれる個数を示す関数をａ（ｉ，ｊ）としてもよい。これは、ｉ番目の問合せ文にｊ番目の副問合せが複数個含まれる場合を考慮したものである。
【００４１】
また、ｊ番目の副問合せをビューに置き換えるか否かを示す関数をｘ（ｊ）とする。ここで、ｘ（ｊ）は、０又は１をとる。０は、副問合せをビューに置き換えないことを示し、１は、副問合せをビューに置き換えることを示す。そして、複数の副問合せのそれぞれをビューに置き換えるか否かを以下の式（１）で表現する。
2019040409.tif 000003
【００４２】
また、ｉ番目の問合せ文に含まれるｊ番目の副問合せをビューに置き換えた後の、ｉ番目の問合せ文の計算コストの低下量をｃ’（ｉ，ｊ）とする。
【００４３】
複数の問合せ文の少なくともいずれかに含まれる副問合せをビューに置き換えた場合の計算コストの低下量は、以下の式（２）で表現することができる。
2019040409.tif 000004
【００４４】
さらに、ａ（ｉ，ｊ）を、ｉ番目の問合せ文が実行される頻度に、ｉ番目の問合せ文にｊ番目の副問合せが含まれるか否かを示すデルタ関数（含まれる場合１、含まれない場合０）を乗算したものとしてもよい。これにより、（２）式は複数の問合せ文の少なくともいずれかに含まれる副問合せをビューに置き換えた場合の計算コストの期待値となる。ｉ番目の問合せ文が実行される頻度をすべて１とみなすと、ａ（ｉ，ｊ）は、ｉ番目の問合せ文にｊ番目の副問合せが含まれるか否かを示すデルタ関数となり、各問合せ文が１回ずつ実行された場合の計算コストの低下量の期待値となる。
【００４５】
さらに、ａ（ｉ，ｊ）を、ｉ番目の問合せ文が実行される頻度に、ｉ番目の問合せ文にｊ番目の副問合せが含まれる個数を乗算したものとしてもよい。これにより、（２）式は、ｉ番目の問合せ文にｊ番目の副問合せが複数個含まれる場合を考慮し、さらに、複数の問合せ文の少なくともいずれかに含まれる副問合せをビューに置き換えた場合の計算コストの期待値となる。ｉ番目の問合せ文が実行される頻度をすべて１とみなすと、ａ（ｉ，ｊ）は、ｉ番目の問合せ文にｊ番目の副問合せが含まれる個数を示すこととなり、これは各問合せ文が１回ずつ実行された場合の計算コストの低下量の期待値となる。
【００４６】
算出部１２３は、式（１）のＸに含まれるｘ（１）〜ｘ（ｋ）の値を変化させながら、式（２）の値が最大となるｘ（１）〜ｘ（ｋ）の組み合わせを特定する。これにより、算出部１２３は、ビューに置き換えることによって計算コストが低下する全ての副問合せを特定することができる。
【００４７】
さらに、組み合わせを特定する際、式（２）に制約をかけてもよい。具体的には、ｊ番目の副問合せに対応するキャッシュ（マテリアライズド・ビュー）を生成した場合のストレージ等の記憶領域の資源コストをｒ（ｊ）、資源コストの総量をＳとし、式（２）の制約を以下の式（３）で表現する。
2019040409.tif 000005
【００４８】
算出部１２３は、式（１）のＸに含まれるｘ（１）〜ｘ（ｋ）の値を変化させながら、式（３）の制約下で式（２）の値が最大となるｘ（１）〜ｘ（ｋ）の組み合わせを特定する。これにより、算出部１２３は、式（３）の制約下でビューに置き換えることによって計算コストが低下する全ての副問合せを特定することができる。
【００４９】
出力部１２４は、算出部１２３によって算出された副問合せの計算コストを示す情報を出力する。また、出力部は、算出部１２３によって算出された、副問合せをビューに置き換えた場合の当該ビューの計算コストを示す情報をユーザ端末３に出力する。
【００５０】
ここで、出力部１２４は、算出部１２３によって特定された副問合せ、すなわち、ビューに置き換えることによって計算コストの低下量の期待値が増加する副問合せを示す情報をユーザ端末３に出力してもよい。このようにすることで、ユーザ端末３のユーザは、計算コストの低下量の期待値が増加する副問合せを認識し、ビューに置き換えたり、副問合せの見直しを行ったりすることができる。
【００５１】
また、出力部１２４は、ビューに置き換えることによる計算コストの低下量の期待値が大きい順に副問合せを示す情報をユーザ端末３に出力してもよい。このようにすることで、ユーザ端末３のユーザは、計算コストの低下量の期待値が大きく、見直すことによる改善効果が大きい副問合せを認識することができる。
【００５２】
作成部１２５は、計算コストの低下量の期待値が増加する副問合せに対応するビューを作成する。具体的には、作成部１２５は、出力部１２４が副問合せを示す情報をユーザ端末３に出力した後、ユーザ端末３から、副問合せに対応するビューを作成するか否かの指示をユーザ端末３から受け付ける。例えば、ユーザ端末３は、自身の表示部に計算コストの低下量の期待値が増加する１以上の副問合せを示す情報を表示させ、ユーザから、ビューに置き換える副問合せの選択を受け付ける。
【００５３】
ユーザ端末３は、副問合せが選択されたことに応じて、選択された副問合せに対応するビューを作成する指示を示す作成指示情報をデータベース管理装置１に送信する。作成部１２５は、ユーザ端末３から作成指示情報を受信すると、当該作成指示情報に基づいて、データベースシステム２にビューを作成させる。ここで、作成部１２５は、記憶部１１に記憶されている作成済みのビューと、当該ビューに対応する副問合せとの関係を示す対応関係情報を参照し、作成指示情報が示すビューが既に作成されているか否かを判定する。そして、作成部１２５は、作成指示情報が示すビューが作成されていない場合に、データベースシステム２に当該ビューを作成させる。
【００５４】
作成部１２５は、ビューを作成する指示をユーザ端末３から受け付けると、当該ビューに対応するキャッシュ（マテリアライズド・ビュー）を生成するか否かの指示をユーザ端末３からさらに受け付けてもよい。そして、作成部１２５は、当該キャッシュを生成する指示を受け付けたことに応じて、当該キャッシュを生成してもよい。
【００５５】
また、作成部１２５は、取得部１２１がデータベースシステム２から取得した問合せ文に基づいて、ビューに対応する副問合せ文が、キャッシュの生成に適しているか否かを判定してもよい。例えば、作成部１２５は、データベースシステム２から取得した問合せ文に基づいて、副問合せ文に対応するテーブルに格納されるデータの更新頻度を算出してもよい。そして、作成部１２５は、更新頻度が所定の閾値以下である場合に、キャッシュの生成に適していると判定してもよい。作成部１２５は、ビューに対応する副問合せ文が、キャッシュの生成に適していると判定し、さらに、ビューを作成する指示をユーザ端末３から受け付けると、当該ビューに対応するキャッシュを生成してもよい。
【００５６】
作成部１２５は、ビューを作成すると、当該ビューを示す情報と、当該ビューに対応する副問合せを示す情報との対応関係を示す対応関係情報を記憶部１１に記憶させる。
【００５７】
［データベース管理装置１における処理の流れ］
続いて、データベース管理装置１における処理の流れについて説明する。図５は、第１実施形態に係るデータベース管理装置１における処理の流れを示すフローチャートである。
【００５８】
まず、取得部１２１は、データベースシステム２から、問合せ文と実行計画とを取得し（Ｓ１０）、問合せ文と実行計画とを記憶部１１に記憶させる。
続いて、特定部１２２は、実行計画に基づいて、複数の問合せ文に共通に含まれる副問合せを特定する（Ｓ２０）。
【００５９】
続いて、算出部１２３は、特定した副問合せの計算コストを算出する（Ｓ３０）。また、算出部１２３は、特定した副問合せをビューに置き換えた場合の当該ビューの計算コストを算出する（Ｓ４０）。
【００６０】
続いて、出力部１２４は、算出部１２３によって算出された副問合せの計算コストを示す情報と、当該副問合せに対応するビューの計算コストを示す情報とをユーザ端末３に出力する（Ｓ５０）。
【００６１】
続いて、作成部１２５は、Ｓ５０において計算コストを示す情報をユーザ端末３に出力してから所定時間以内にユーザ端末３においてビューの作成指示が行われたか否かを判定する（Ｓ６０）。作成部１２５は、ビューの作成指示が行われたと判定すると、Ｓ７０に処理を移し、ビューを作成する。また、作成部１２５は、ビューの作成指示が行われていないと判定すると、本フローチャートに係る処理を終了する。
作成部１２５は、ビューを作成すると、当該ビューを示す情報と、当該ビューに対応する副問合せを示す情報との対応関係を示す対応関係情報を記憶部１１に記憶させる（Ｓ８０）。
【００６２】
［第１実施形態における効果］
以上のとおり、第１実施形態に係るデータベース管理装置１は、複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定し、特定された副問合せの計算コストを算出し、ユーザ端末３に出力する。このようにすることで、ユーザ端末３のユーザは、複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せの計算コストを認識することができる。これにより、データベース管理装置１は、ユーザに、問合せ文の中で、どの部分が冗長であるかを認識させ、自発的に問合せ文を改善させることができる。
【００６３】
また、ユーザが自発的に問合せ文を改善することにより、ユーザが作成する問合せ文が簡潔な記載となる。これにより、データの定義の一部が変更された場合、又は問合せの対象となるテーブルの変更が行われた場合に、ユーザによる問合せ文の修正範囲を少なくすることができる。
【００６４】
また、ユーザ又は管理者は、データベースシステム２において頻繁に実行される共通の中間処理である副問合せをビューという形式で認識することができ、データ分析の計画やシステムの増設等の計画にも利用することができる。
【００６５】
＜第２実施形態＞
［問合せ文に含まれる副問合せをビューに置き換える入力を受け付ける］
続いて、第２実施形態について説明する。第１実施形態に係るデータベース管理装置１は、ユーザ端末３からの指示情報を受信したことに応じてビューを作成したが、ユーザが新たに問合せ文を作成する場合に、作成されたビューを使用せず、副問合せを使用する場合がある。これに対して、第２実施形態に係るデータベース管理装置１は、新たに作成された問合せ文に、作成されたビューに対応する副問合せが含まれている場合に、当該副問合せを当該ビューに置き換える。以下に、第２実施形態に係るデータベース管理装置１について説明する。なお、第１実施形態と同じ部分については適宜説明を省略する。
【００６６】
図６は、第２実施形態に係るデータベース管理装置１の構成を示す図である。第２実施形態に係るデータベース管理装置１の制御部１２は、記憶部１１に記憶されているデータベース管理プログラムを実行することにより第２取得部１２６及び実行部１２７としてさらに機能する。
【００６７】
第２取得部１２６は、ユーザ端末３から、新たにデータベースシステム２において実行される問合せ文を取得する。
実行部１２７は、第２取得部１２６が問合せ文を取得すると、当該問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する。
【００６８】
具体的には、実行部１２７は、第２取得部１２６が取得した問合せ文を解析し、記憶部１１に記憶されている対応関係情報を構成する副問合せ文が含まれているか否かを判定する。実行部１２７は、問合せ文に、対応関係情報を構成する副問合せ文が含まれていると判定すると、対応関係情報を参照し、当該副問合せに関連付けられているビューを示す情報を特定する。
【００６９】
実行部１２７は、問合せ文に含まれている、特定した副問合せ文を、特定したビューに置き換える。ここで、実行部１２７は、問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せをビューに置き換えるか否かをユーザ端末３から受け付けてもよい。そして、実行部１２７は、副問合せをビューに置き換える指示をユーザ端末３から受け付けたことに応じて、当該副問合せを当該ビューに置き換えてもよい。
その後、実行部１２７は、ビューに置き換えた後の問合せ文をデータベースシステム２に送信することにより、当該問合せ文をデータベースシステム２に実行させる。
【００７０】
［第２実施形態における効果］
以上のとおり、第２実施形態に係るデータベース管理装置１は、ユーザ端末３から取得した問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する。このようにすることで、データベース管理装置１は、ユーザ端末３から取得した問合せ文の計算コストを低減することができる。
【００７１】
また、データベース管理装置１は、ユーザ端末３から取得した問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せをビューに置き換えるか否かをユーザ端末３から受け付け、副問合せをビューに置き換える指示をユーザ端末３から受け付けたことに応じて、当該副問合せを当該ビューに置き換える。このようにすることで、データベース管理装置１は、ユーザ端末３から取得した問合せ文に含まれる副問合せをビューに置き換えることにより、当該問合せ文の計算コストを低減できることをユーザに認識させることができる。
【００７２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上述の複数の実施形態を組み合わせてもよい。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【符号の説明】
【００７３】
１・・・データベース管理装置、１１・・・記憶部、１２・・・制御部、１２１・・・取得部、１２２・・・特定部、１２３・・・算出部、１２４・・・出力部、１２５・・・作成部、１２６・・・第２取得部、１２７・・・実行部、２・・・データベースシステム、３・・・ユーザ端末、Ｓ・・・データベース管理システム
【図１】
2019040409.tif 000006
【図２】
2019040409.tif 000007
【図３】
2019040409.tif 000008
【図４】
2019040409.tif 000009
【図５】
2019040409.tif 000010
【図６】
2019040409.tif 000011