(57)【要約】【課題】複数の実行計画において共通する処理を特定することを可能にする。【解決手段】問合せ文出力装置１は、データベースシステム２において実行された、複数の実行計画を特定する特定部１２１と、特定部１２１により特定された複数の実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応するデータベースシステム２における問合せ文に含まれる文字列の並びとの関連性に基づいて、問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を問合せ文に変換する第１変換部１２４と、第１変換部１２４により変換された問合せ文を出力する出力部１２５と、を備える。【選択図】図２
2020013448.tif 000002
【特許請求の範囲】
【請求項１】
データベースシステムにおいて実行された、複数の実行計画を特定する特定部と、
前記特定部により特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換する第１変換部と、
前記第１変換部により変換された問合せ文を出力する出力部と、
を備える問合せ文出力装置。
【請求項２】
前記出力部は、前記第１変換部により変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力する、
請求項１に記載の問合せ文出力装置。
【請求項３】
前記実行計画を問合せ文に変換する変換モデルを生成する生成部をさらに備え、
前記第１変換部は、複数の前記実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の実行計画のそれぞれを問合せ文に変換するとともに、複数の前記部分実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の前記部分実行計画のそれぞれを問合せ文に変換する、
請求項１又は２に記載の問合せ文出力装置。
【請求項４】
問合せ文を実行計画に変換する第２変換部をさらに備え、
前記生成部は、前記変換モデルを生成し、当該変換モデルに対して前記特定部により特定された前記実行計画を入力することにより問合せ文を取得し、当該問合せ文を前記第２変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、前記特定部により特定された前記実行計画と、当該変換モデルに対応する実行計画との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される類似度が相対的に高い変換モデルを選択する、
請求項３に記載の問合せ文出力装置。
【請求項５】
問合せ文を実行計画に変換する第２変換部をさらに備え、
前記生成部は、問合せ文を前記第２変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、取得した当該実行計画を前記変換モデルに対して入力することにより問合せ文を取得し、前記第２変換部に入力された問合せ文と、前記変換モデルから取得した問合せ文との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される当該類似度が相対的に高い変換モデルを選択する、
請求項３又は４に記載の問合せ文出力装置。
【請求項６】
前記第２変換部は、前記データベースシステムに、問合せ文に対応する実行計画を生成させることにより、当該問合せ文を実行計画に変換する、
請求項４又は５に記載の問合せ文出力装置。
【請求項７】
前記特定部は、データベースシステムにおいて実行された、実行コストが相対的に高い複数の実行計画を特定する、
請求項１から６のいずれか１項に記載の問合せ文出力装置。
【請求項８】
コンピュータが実行する、
データベースシステムにおいて実行された、複数の実行計画を特定するステップと、
特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換するステップと、
前記実行計画から変換された問合せ文を出力するステップと、
を備える問合せ文出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステムにおいて実行可能な問合せ文を出力する問合せ文出力装置及び問合せ文出力方法に関する。
【背景技術】
【０００２】
従来、リレーショナルデータベースにおいて、処理コストを削減することを目的として、複数の問合せにおいて共通して行われる処理に対応する物理的なビューであるマテリアライズドビューを作成することが行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３４３７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
マテリアライズドビューは、データベースシステムにおいて実行される複数の実行計画において共通する処理のうち、処理コストが高い処理に対応して作成することが好ましい。このため、複数の実行計画において共通する処理を特定することが行われている。しかしながら、実行計画では、共通の処理であっても記述が異なることがある。また、異なる処理であっても記述が同じことがある。このように処理と実行計画が多対多であるため、実行計画に基づいて共通する処理を特定することが困難であるという問題が発生する。
【０００５】
そこで、本発明はこれらの点に鑑みてなされたものであり、複数の実行計画において共通する処理を特定することを可能にする問合せ文出力装置及び問合せ文出力方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様に係る問合せ文出力装置は、データベースシステムにおいて実行された、複数の実行計画を特定する特定部と、前記特定部により特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換する第１変換部と、前記第１変換部により変換された問合せ文を出力する出力部と、を備える。
【０００７】
前記出力部は、前記第１変換部により変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力してもよい。
【０００８】
前記問合せ文出力装置は、前記実行計画を問合せ文に変換する変換モデルを生成する生成部をさらに備え、前記第１変換部は、複数の前記実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の実行計画のそれぞれを問合せ文に変換するとともに、複数の前記部分実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の前記部分実行計画のそれぞれを問合せ文に変換してもよい。
【０００９】
前記問合せ文出力装置は、問合せ文を実行計画に変換する第２変換部をさらに備え、前記生成部は、前記変換モデルを生成し、当該変換モデルに対して前記特定部により特定された前記実行計画を入力することにより問合せ文を取得し、当該問合せ文を前記第２変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、前記特定部により特定された前記実行計画と、当該変換モデルに対応する実行計画との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される類似度が相対的に高い変換モデルを選択してもよい。
【００１０】
前記問合せ文出力装置は、問合せ文を実行計画に変換する第２変換部をさらに備え、前記生成部は、問合せ文を前記第２変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、取得した当該実行計画を前記変換モデルに対して入力することにより問合せ文を取得し、前記第２変換部に入力された問合せ文と、前記変換モデルから取得した問合せ文との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される当該類似度が相対的に高い変換モデルを選択してもよい。
【００１１】
前記第２変換部は、前記データベースシステムに、問合せ文に対応する実行計画を生成させることにより、当該問合せ文を実行計画に変換してもよい。
前記特定部は、データベースシステムにおいて実行された、実行コストが相対的に高い複数の実行計画を特定してもよい。
【００１２】
本発明の第２の態様に係る問合せ文出力方法は、コンピュータが実行する、データベースシステムにおいて実行された、複数の実行計画を特定するステップと、特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換するステップと、前記実行計画から変換された問合せ文を出力するステップと、を備える。
【発明の効果】
【００１３】
本発明によれば、複数の実行計画において共通する処理を特定することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係る問合せ文出力装置の概要を示す図である。
【図２】本実施形態に係る問合せ文出力装置の構成を示す図である。
【図３】問合せ文の一例を示す図である。
【図４】図３に示す問合せ文に対応する実行計画を示す図である。
【図５】図４に示す実行計画に対応する実行計画ツリーを示す図である。
【図６】図５に示す実行計画ツリーに対応する実行計画文字列を示す図である。
【図７】変換モデルの選択例を示す図である。
【図８】変換モデルの他の選択例を示す図である。
【図９】本実施形態に係る問合せ文出力装置における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
［問合せ文出力装置１の概要］
図１は、本実施形態に係る問合せ文出力装置１の概要を示す図である。問合せ文出力装置１は、データベースシステム２が生成した実行計画を問合せ文に変換して出力するコンピュータである。
【００１６】
問合せ文出力装置１は、データベースシステム２と、ＬＡＮ（Local Area Network）やインターネット等の通信ネットワークを介して通信可能に接続されている。問合せ文出力装置１は、データベースシステム２において実行された問合せ文に対応する実行計画をデータベースシステム２から取得する（図１の（１））。
【００１７】
問合せ文出力装置１は、実行計画を問合せ文に変換する変換モデルに基づいて、取得した実行計画を問合せ文に変換する（図１の（２））。問合せ文出力装置１は、変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理が実行される問合せ文として出力する（図１の（３））。
【００１８】
実行計画は、同じ問合せ文であっても異なる記述となる場合があるところ、問合せ文出力装置１は、当該異なる記述を含む複数の実行計画を、同じ問合せ文に変換して出力することができる。これにより、問合せ文出力装置１のユーザは、複数の実行計画のみを参照する場合に比べて、これらの実行計画において共通する処理を特定することができる。
以下、問合せ文出力装置１の構成について説明する。
【００１９】
［問合せ文出力装置１の構成例］
図２は、第１実施形態に係る問合せ文出力装置１の構成を示す図である。
問合せ文出力装置１は、記憶部１１と、制御部１２とを備える。
【００２０】
記憶部１１は、例えば、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等である。記憶部１１は、問合せ文出力装置１を機能させるための各種プログラムを記憶する。記憶部１１は、問合せ文出力装置１の制御部１２を、後述する特定部１２１、生成部１２２、第２変換部１２３、第１変換部１２４、及び出力部１２５として機能させる問合せ文出力プログラムを記憶する。また、記憶部１１は、生成部１２２により生成される、実行計画を問合せ文に変換するプログラムである変換モデルＭを記憶する。
【００２１】
制御部１２は、例えばＣＰＵ（Central Processing Unit）である。制御部１２は、記憶部１１に記憶されている各種プログラムを実行することにより、問合せ文出力装置１に係る機能を制御する。制御部１２は、問合せ文出力プログラムを実行することにより、特定部１２１、生成部１２２、第２変換部１２３、第１変換部１２４、及び出力部１２５として機能する。また、制御部１２は、変換モデルＭを実行することにより、実行計画を問合せ文に変換する。
【００２２】
特定部１２１は、データベースシステム２から、データベースシステム２において実行された複数の実行計画のうち、実行コストが相対的に高い複数の実行計画を取得することにより、複数の実行計画を特定する。例えば、データベースシステム２において生成された実行計画には、実行コストが関連付けられており、特定部１２１は、関連付けられている実行コストが相対的に高い複数の実行計画を特定する。
【００２３】
また、特定部１２１は、データベースシステム２から、複数の実行計画のそれぞれに対応する問合せ文を取得することにより、複数の実行計画のそれぞれに関連付けられている問合せ文を特定する。ここで、実行計画は、データベースシステム２が、問合せ文に対応する処理を実行する際に生成する情報である。問合せ文は、データベースシステム２において実行されたＳＱＬ等の問合せ文である。
【００２４】
図３は、問合せ文の一例を示す図である。図４は、図３に示す問合せ文に対応する実行計画を示す図である。図４において最初に示される文字列「Ｓｏｒｔ」と、「−＞」の後に示される文字列とは、問合せ文によって実行される処理としてのノードを示している。また、文字列「Ｓｃａｎ」を含むノード（以下、Ｓｃａｎノードともいう。）に続く文字列は、参照されるテーブルのテーブル名を示している。
【００２５】
特定部１２１は、特定した実行計画に基づいて実行計画が示す木構造を表す実行計画文字列を生成する。具体的には、特定部１２１は、特定した実行計画に基づいて、実行計画に含まれる処理を示すノードと、実行計画に対応する処理において参照されるテーブルのテーブル名を抽出する。特定部１２１は、特定した実行計画を示すコードの記載順序と、抽出したノード及びテーブル名とに基づいて、実行計画に対応する問合せ文の木構造を抽出する。特定部１２１は、木構造のグラフである実行計画ツリーを生成する。
【００２６】
図５は、図４に示す実行計画に対応する実行計画ツリーを示す図である。実行計画ツリーでは、各ノードＮ１〜Ｎ９における処理の略称を、括弧内に示している。例えば、ルートノードに対応する処理「Ｓｏｒｔ」の略称は「Ｓ」であり、処理「Ｇｒｏｕｐ  Ａｇｇｒｅｇａｔｅ」の略称は「ＧＡ」である。また、実行計画ツリーでは、Ｓｃａｎノードの下部にテーブル名を示している。
【００２７】
特定部１２１は、抽出された実行計画ツリーを、ルートとなるノードから行きがけ順及び帰りがけ順に走査することにより実行計画文字列を生成する。すなわち、特定部１２１は、実行計画ツリーを、ルートとなるノードから行きがけ順及び帰りがけ順に走査したときに検出されたノードの略称を、検出された順番で並べた文字列を実行計画文字列として生成する。
【００２８】
ここで、特定部１２１は、処理が重複するノードには通し番号を付与する。例えば、図５に示されるノードＮ１と、ノードＮ３とは、いずれも「Ｓｏｒｔ（Ｓ）」である。そこで、特定部１２１は、ノードＮ１の略称を「Ｓ１」とし、ノードＮ２の略称を「Ｓ２」とする。また、特定部１２１は、Ｓｃａｎノードに対応する略称に、当該Ｓｃａｎノードにおいて参照されるテーブルのテーブル名称、カラム名称のリスト、フィルタ条件を関連付ける。
【００２９】
特定部１２１は、実行計画ツリーを行きがけ順に走査する際、各ノードで検出されたカラム名称と対応するテーブル名称を記憶することによりカラム名称のリストを作成する。そして、特定部１２１は、当該テーブル名称に関するＳｃａｎノードが検出された際、当該テーブルに対応付けられたカラム名称のリストを関連付ける。
また、特定部１２１は、当該Ｓｃａｎノードにおいて参照されるテーブルのフィルタ条件を関連付ける。
【００３０】
図６は、図５に示す実行計画ツリーに対応する実行計画文字列を示す図である。図６に示すように、実行計画文字列では、ノードが検出された順番に、当該ノードの略称が羅列されていることが確認できる。さらに、図６では、Ｓｃａｎノードの略称について、“→ テーブル名称［カラム名称リスト］（フィルタ条件）”のように、参照されるテーブルのテーブル名称等が関連付けられていることが確認できる。
【００３１】
特定部１２１は、特定した複数の実行計画のそれぞれについて実行計画文字列を生成する。また、特定部１２１は、特定した実行計画から、当該実行計画の一部である部分実行計画をさらに特定し、当該部分実行計画についても実行計画文字列を生成する。
【００３２】
具体的には、特定部１２１は、実行計画ツリーにおいて、複数のテーブルの結合を示す「Ｎｅｓｔｅｄ  Ｌｏｏｐ」や「Ｈａｓｈ  Ｊｏｉｎ」の下位のノード群を部分実行計画として抽出する。そして、特定部１２１は、抽出した部分実行計画について実行計画文字列を生成する。特定部１２１は、実行計画文字列を作成する際に、Ｓｃａｎノードの略称について参照先のテーブル名称等を挿入又は置換を行うことにより、参照先のテーブル名称等の文字列を実行計画文字列に取り込んでもよい。例えば、特定部１２１は、参照先のテーブル名称等の文字列を実行計画文字列に取り込む際、括弧、カンマ等を空白（スペース）に置換してもよい。例えば、“IS → lineitem［l_extendedprice, l_discount, l_orderkey］（l_shipdate > '1995-03-12'::date）”という文字列の場合、“IS lineitem l_extendedprice l_discount l_orderkey l_shipdate > 1995-03-12 date”という文字列に変換してもよい。
【００３３】
［変換モデルＭの生成］
生成部１２２は、実行計画を問合せ文に変換する変換モデルＭを生成する。具体的には、生成部１２２は、実行計画を示す実行計画文字列を入力すると、当該実行計画文字列に対応する問合せ文を出力する変換モデルＭを生成する。例えば、生成部１２２は、記号列を入力すると対応する記号列を出力するモデルであるSequence-to-Sequenceモデルに教師データを与えて学習させることにより、変換モデルＭを生成する。
【００３４】
教師データは、入力される記号列と、出力される記号列との組み合わせである。入力される記号列は、特定部１２１が特定した実行計画から生成した実行計画文字列であり、出力される記号列は、当該実行計画に関連付けられている問合せ文である。
【００３５】
生成部１２２は、変換モデルＭを生成し、当該変換モデルＭに対して特定部１２１により特定された実行計画を入力することにより問合せ文を取得する。そして、生成部１２２は、当該問合せ文を、第２変換部１２３に入力することにより、当該問合せ文に対応する実行計画を取得する。
【００３６】
ここで、第２変換部１２３は、問合せ文を実行計画に変換する機能を有している。第２変換部１２３は、データベースシステム２に問合せ文を入力し、当該問合せ文に対応する実行計画を生成させる。そして、第２変換部１２３は、データベースシステム２から当該実行計画を取得することにより、当該問合せ文を実行計画に変換する。
【００３７】
続いて、生成部１２２は、特定部１２１により特定された一以上の実行計画と、変換モデルＭから出力された問合せ文から変換された一以上の実行計画との類似度を算出する。例えば、生成部１２２は、特定部１２１により特定された実行計画と、変換モデルＭから出力された問合せ文から変換された実行計画とのレーベンシュタイン距離を算出する。ここで、レーベンシュタイン距離は、文字列を比較対象の文字列に変換する場合に要する編集の回数を示しており、０回であれば、文字列と、比較対象の文字列とが一致していることを示している。また、レーベンシュタイン距離の値が小さければ小さいほど、文字列と、比較対象の文字列との類似度が高いことを示している。生成部１２２は、算出したレーベンシュタイン距離が小さければ小さいほど類似度が大きくなるように類似度を算出する。
【００３８】
生成部１２２は、Sequence-to-Sequenceモデルにおける設定情報を変更しながら、複数の変換モデルＭを生成する。そして、生成部１２２は、生成した複数の変換モデルＭのそれぞれについて、一以上の実行計画と、変換モデルＭに対応する一以上の実行計画との類似度を算出し、算出した類似度に基づいて類似度の平均値を算出する。そして、生成部１２２は、算出される類似度の平均値が相対的に高い１つの変換モデルＭを選択する。
【００３９】
図７は、変換モデルＭの選択例を示す図である。図７に示すように、生成部１２２は、異なる設定情報により設定された複数の変換モデルを生成する。図７に示す例では、設定情報Ａにより設定された変換モデルＭ１と、設定情報Ｂにより設定された変換モデルＭ２とが生成されている。
【００４０】
生成部１２２は、生成した複数の変換モデルのそれぞれに、特定部１２１が特定した実行計画を入力して問合せ文に変換させ、第２変換部１２３により、当該問合せ文を実行計画に変換させる。そして、生成部１２２は、図７に示すように、複数の変換モデルのそれぞれに入力される、特定部１２１が特定した一以上の実行計画と、第２変換部１２３により変換された一以上の実行計画との類似度の平均である平均類似度を算出し、当該平均類似度が最も高い変換モデルを選択する。このようにすることで、問合せ文出力装置１は、変換精度の高い変換モデルＭを生成することができる。
【００４１】
なお、生成部１２２は、図７に示すように、特定部１２１が特定した一以上の実行計画と、第２変換部１２３により変換された一以上の実行計画との類似度に基づいて、複数の変換モデルの中から変換モデルＭを選択したが、これに限らない。
【００４２】
生成部１２２は、特定部１２１が特定した問合せ文を第２変換部１２３に入力することにより、当該問合せ文に対応する実行計画を取得し、取得した当該実行計画を変換モデルに対して入力することにより問合せ文を取得し、第２変換部１２３に入力された問合せ文と、変換モデルから取得した問合せ文との類似度を算出してもよい。そして、生成部１２２は、変換モデルにおける設定情報を変更しながら、算出される当該類似度が相対的に高い変換モデルを選択してもよい。
【００４３】
図８は、変換モデルＭの他の選択例を示す図である。図８に示す例では、図７に示す例と同様に、生成部１２２が、異なる設定情報により設定された複数の変換モデルを生成する。図８に示す例では、設定情報Ａにより設定された変換モデルＭ１と、設定情報Ｂにより設定された変換モデルＭ２とが生成されている。
【００４４】
生成部１２２は、第２変換部１２３により、特定部１２１が特定した一以上の実行計画が生成された生成元となる問合せ文を実行計画に変換させる。そして、生成部１２２は、生成した複数の変換モデルのそれぞれに、変換された実行計画を入力して問合せ文に変換させる。そして、生成部１２２は、図８に示すように、複数の変換モデルのそれぞれに入力される、第２変換部１２３が変換した一以上の問合せ文と、変換モデルにより変換された一以上の問合せ文との類似度の平均である平均類似度を算出し、当該平均類似度が最も高い変換モデルを選択する。このようにすることで、問合せ文出力装置１は、図７に示す例と同様に変換精度の高い変換モデルＭを生成することができる。
【００４５】
［問合せ文の出力］
第１変換部１２４は、特定部１２１により特定された複数の実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応するデータベースシステム２における問合せ文に含まれる文字列の並びとの関連性に基づいて、データベースシステム２における問合せ文に変換するとともに、特定部１２１により特定された、当該実行計画の一部である部分実行計画を問合せ文に変換する。なお、第１変換部１２４は、問合せ文に含まれるテーブル名称に対して、部分実行計画に含まれるテーブル名称に関連付けられたカラム名称やフィルタ条件のうち問合せ文に含まれないものを、不足した情報として問合せ文に追加しても構わない。
【００４６】
具体的には、第１変換部１２４は、複数の実行計画のそれぞれに対応する実行計画文字列を変換モデルＭに入力し、当該変換モデルＭから出力される問合せ文を取得することにより、複数の実行計画のそれぞれを問合せ文に変換する。同様に、第１変換部１２４は、複数の部分実行計画のそれぞれに対応する実行計画文字列を変換モデルＭに入力し、当該変換モデルＭから出力される問合せ文を取得することにより、複数の部分実行計画のそれぞれを問合せ文に変換する。
【００４７】
なお、第１変換部１２４が変換モデルＭに入力する実行計画及び部分実行計画は、変換モデルＭの生成に用いられた実行計画及び部分実行計画と異なっていてもよい。この場合、特定部１２１は、生成部１２２が変換モデルＭを生成した後に、新たに実行計画及び部分実行計画を特定してもよい。そして、第１変換部１２４は、新たに特定された実行計画及び部分実行計画に対応する実行計画文字列を変換モデルＭに入力し、これらの実行計画を問合せ文に変換してもよい。
【００４８】
出力部１２５は、第１変換部１２４により変換された問合せ文を出力する。具体的には、出力部１２５は、第１変換部１２４により変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を、問合せ文出力装置１に設けられた表示部（非表示）に出力したり、テキストファイルに出力して当該テキストファイルを記憶部１１に記憶させたりする。また、出力部１２５は、問合せ文出力装置１と通信可能に接続されている管理端末（不図示）に出力してもよい。
【００４９】
例えば、出力部１２５は、第１変換部１２４により変換された複数の問合せ文のそれぞれについて、同様に変換された他の問合せ文と比較し、同一の文字列の問合せ文があれば名寄せし、名寄せされた問合せ文の個数に基づいて出現頻度を算出する。そして、出力部１２５は、出現頻度の高い問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理が実行される問合せ文として出力する。
【００５０】
また、出力部１２５は、第１変換部１２４により変換された複数の問合せ文のそれぞれについて、同様に変換された他の複数の問合せ文とのレーベンシュタイン距離を算出し、当該レーベンシュタイン距離に基づいて類似度の合計値を算出してもよい。例えば、出力部１２５は、他の複数の問合せ文のそれぞれとのレーベンシュタイン距離の合計値を、類似度の合計値として算出する。そして、出力部１２５は、類似度の合計値が高い問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理が実行される問合せ文として出力してもよい。
【００５１】
また、出力部１２５は、部分実行計画から変換された一以上の副問合せ文のそれぞれについて類似度を比較し、類似度が副問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理に対応する副問合せ文として出力してもよい。
【００５２】
［問合せ文出力装置１における処理の流れ］
続いて、問合せ文出力装置１における処理の流れについて説明する。図９は、本実施形態に係る問合せ文出力装置１における処理の流れを示すフローチャートである。
【００５３】
まず、特定部１２１は、実行コストが相対的に高い複数の実行計画を取得することにより、複数の実行計画を特定するとともに、当該実行計画に含まれる部分実行計画を特定する（Ｓ１）。
続いて、生成部１２２は、Ｓ１において特定された実行計画に基づいて変換モデルＭを生成する（Ｓ２）。なお、生成部１２２は、変換モデルＭが既に生成されているか否かを判定してもよい。そして、生成部１２２は、変換モデルＭが既に生成されていると判定すると、変換モデルＭを生成しないようにしてもよい。
【００５４】
続いて、第１変換部１２４は、実行計画及び部分実行計画を変換モデルＭに入力して、変換モデルＭから問合せ文を取得することにより、実行計画及び部分実行計画を問合せ文に変換する（Ｓ３）。
【００５５】
続いて、出力部１２５は、Ｓ３において変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力する（Ｓ４）。
【００５６】
［本実施形態における効果］
以上の通り、本実施形態に係る問合せ文出力装置１は、データベースシステム２において実行された、複数の実行計画をデータベースシステムにおける問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を問合せ文に変換し、変換された問合せ文を出力する。このようにすることで、問合せ文出力装置１のユーザは、複数の実行計画のみを参照する場合に比べて、これらの実行計画において共通する処理を特定することができる。
【００５７】
また、問合せ文出力装置１は、データベースシステムにおいて実行された、実行コストが相対的に高い複数の実行計画を特定し、当該実行計画に対応する問合せ文を出力する。このようにすることで、出力される問合せ文は、実行コストが相対的に高い問合せ文となる。したがって、問合せ文出力装置１のユーザは、当該問合せ文に基づいて、効果的なマテリアライズドビューに対応する処理を特定することができる。
【００５８】
また、問合せ文出力装置１は、変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力する。このようにすることで、問合せ文出力装置１のユーザは、出力される問合せ文から、マテリアライズドビューの作成に適した処理に対応する副問合せ文を特定することができる。
【００５９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上述の複数の実施形態を組み合わせてもよい。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【符号の説明】
【００６０】
１・・・問合せ文出力装置、１１・・・記憶部、１２・・・制御部、１２１・・・特定部、１２２・・・生成部、１２３・・・第２変換部、１２４・・・第１変換部、１２５・・・出力部、２・・・データベースシステム
【図１】
2020013448.tif 000003
【図２】
2020013448.tif 000004
【図３】
2020013448.tif 000005
【図４】
2020013448.tif 000006
【図５】
2020013448.tif 000007
【図６】
2020013448.tif 000008
【図７】
2020013448.tif 000009
【図８】
2020013448.tif 000010
【図９】
2020013448.tif 000011