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

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

▶ KDDI株式会社の特許一覧

<>
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000002
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000003
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000004
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000005
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000006
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000007
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000008
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000009
  • 特許6971929-問合せ文出力装置及び問合せ文出力方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6971929
(24)【登録日】2021年11月5日
(45)【発行日】2021年11月24日
(54)【発明の名称】問合せ文出力装置及び問合せ文出力方法
(51)【国際特許分類】
   G06F 16/2452 20190101AFI20211111BHJP
   G06F 16/2453 20190101ALI20211111BHJP
   G06F 16/21 20190101ALI20211111BHJP
【FI】
   G06F16/2452
   G06F16/2453
   G06F16/21
【請求項の数】8
【全頁数】13
(21)【出願番号】特願2018-136623(P2018-136623)
(22)【出願日】2018年7月20日
(65)【公開番号】特開2020-13448(P2020-13448A)
(43)【公開日】2020年1月23日
【審査請求日】2020年6月26日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100124084
【弁理士】
【氏名又は名称】黒岩 久人
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】黒川 茂莉
【審査官】 甲斐 哲雄
(56)【参考文献】
【文献】 特開2011−191949(JP,A)
【文献】 特開2013−152512(JP,A)
【文献】 特開2016−091356(JP,A)
【文献】 特開2018−180847(JP,A)
【文献】 特開2019−106039(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
データベースシステムにおいて実行された、複数の実行計画を特定する特定部と、
前記特定部により特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換する第1変換部と、
前記第1変換部により変換された問合せ文を出力する出力部と、
を備える問合せ文出力装置。
【請求項2】
前記出力部は、前記第1変換部により変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力する、
請求項1に記載の問合せ文出力装置。
【請求項3】
前記実行計画を問合せ文に変換する変換モデルを生成する生成部をさらに備え、
前記第1変換部は、複数の前記実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の実行計画のそれぞれを問合せ文に変換するとともに、複数の前記部分実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の前記部分実行計画のそれぞれを問合せ文に変換する、
請求項1又は2に記載の問合せ文出力装置。
【請求項4】
問合せ文を実行計画に変換する第2変換部をさらに備え、
前記生成部は、前記変換モデルを生成し、当該変換モデルに対して前記特定部により特定された前記実行計画を入力することにより問合せ文を取得し、当該問合せ文を前記第2変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、前記特定部により特定された前記実行計画と、当該変換モデルに対応する実行計画との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される類似度が相対的に高い変換モデルを選択する、
請求項3に記載の問合せ文出力装置。
【請求項5】
問合せ文を実行計画に変換する第2変換部をさらに備え、
前記生成部は、問合せ文を前記第2変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、取得した当該実行計画を前記変換モデルに対して入力することにより問合せ文を取得し、前記第2変換部に入力された問合せ文と、前記変換モデルから取得した問合せ文との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される当該類似度が相対的に高い変換モデルを選択する、
請求項に記載の問合せ文出力装置。
【請求項6】
前記第2変換部は、前記データベースシステムに、問合せ文に対応する実行計画を生成させることにより、当該問合せ文を実行計画に変換する、
請求項4又は5に記載の問合せ文出力装置。
【請求項7】
前記特定部は、データベースシステムにおいて実行された、実行コストが相対的に高い複数の実行計画を特定する、
請求項1から6のいずれか1項に記載の問合せ文出力装置。
【請求項8】
コンピュータが実行する、
データベースシステムにおいて実行された、複数の実行計画を特定するステップと、
特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換するステップと、
前記実行計画から変換された問合せ文を出力するステップと、
を備える問合せ文出力方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースシステムにおいて実行可能な問合せ文を出力する問合せ文出力装置及び問合せ文出力方法に関する。
【背景技術】
【0002】
従来、リレーショナルデータベースにおいて、処理コストを削減することを目的として、複数の問合せにおいて共通して行われる処理に対応する物理的なビューであるマテリアライズドビューを作成することが行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−343798号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
マテリアライズドビューは、データベースシステムにおいて実行される複数の実行計画において共通する処理のうち、処理コストが高い処理に対応して作成することが好ましい。このため、複数の実行計画において共通する処理を特定することが行われている。しかしながら、実行計画では、共通の処理であっても記述が異なることがある。また、異なる処理であっても記述が同じことがある。このように処理と実行計画が多対多であるため、実行計画に基づいて共通する処理を特定することが困難であるという問題が発生する。
【0005】
そこで、本発明はこれらの点に鑑みてなされたものであり、複数の実行計画において共通する処理を特定することを可能にする問合せ文出力装置及び問合せ文出力方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様に係る問合せ文出力装置は、データベースシステムにおいて実行された、複数の実行計画を特定する特定部と、前記特定部により特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換する第1変換部と、前記第1変換部により変換された問合せ文を出力する出力部と、を備える。
【0007】
前記出力部は、前記第1変換部により変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力してもよい。
【0008】
前記問合せ文出力装置は、前記実行計画を問合せ文に変換する変換モデルを生成する生成部をさらに備え、前記第1変換部は、複数の前記実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の実行計画のそれぞれを問合せ文に変換するとともに、複数の前記部分実行計画のそれぞれを前記変換モデルに入力し、前記変換モデルから出力される前記問合せ文を取得することにより、複数の前記部分実行計画のそれぞれを問合せ文に変換してもよい。
【0009】
前記問合せ文出力装置は、問合せ文を実行計画に変換する第2変換部をさらに備え、前記生成部は、前記変換モデルを生成し、当該変換モデルに対して前記特定部により特定された前記実行計画を入力することにより問合せ文を取得し、当該問合せ文を前記第2変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、前記特定部により特定された前記実行計画と、当該変換モデルに対応する実行計画との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される類似度が相対的に高い変換モデルを選択してもよい。
【0010】
前記問合せ文出力装置は、問合せ文を実行計画に変換する第2変換部をさらに備え、前記生成部は、問合せ文を前記第2変換部に入力することにより、当該問合せ文に対応する実行計画を取得し、取得した当該実行計画を前記変換モデルに対して入力することにより問合せ文を取得し、前記第2変換部に入力された問合せ文と、前記変換モデルから取得した問合せ文との類似度を算出し、前記変換モデルにおける設定情報を変更しながら、算出される当該類似度が相対的に高い変換モデルを選択してもよい。
【0011】
前記第2変換部は、前記データベースシステムに、問合せ文に対応する実行計画を生成させることにより、当該問合せ文を実行計画に変換してもよい。
前記特定部は、データベースシステムにおいて実行された、実行コストが相対的に高い複数の実行計画を特定してもよい。
【0012】
本発明の第2の態様に係る問合せ文出力方法は、コンピュータが実行する、データベースシステムにおいて実行された、複数の実行計画を特定するステップと、特定された複数の前記実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応する前記データベースシステムにおける問合せ文に含まれる文字列の並びとの関連性に基づいて前記問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を前記問合せ文に変換するステップと、前記実行計画から変換された問合せ文を出力するステップと、を備える。
【発明の効果】
【0013】
本発明によれば、複数の実行計画において共通する処理を特定することができるという効果を奏する。
【図面の簡単な説明】
【0014】
図1】本実施形態に係る問合せ文出力装置の概要を示す図である。
図2】本実施形態に係る問合せ文出力装置の構成を示す図である。
図3】問合せ文の一例を示す図である。
図4図3に示す問合せ文に対応する実行計画を示す図である。
図5図4に示す実行計画に対応する実行計画ツリーを示す図である。
図6図5に示す実行計画ツリーに対応する実行計画文字列を示す図である。
図7】変換モデルの選択例を示す図である。
図8】変換モデルの他の選択例を示す図である。
図9】本実施形態に係る問合せ文出力装置における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0015】
[問合せ文出力装置1の概要]
図1は、本実施形態に係る問合せ文出力装置1の概要を示す図である。問合せ文出力装置1は、データベースシステム2が生成した実行計画を問合せ文に変換して出力するコンピュータである。
【0016】
問合せ文出力装置1は、データベースシステム2と、LAN(Local Area Network)やインターネット等の通信ネットワークを介して通信可能に接続されている。問合せ文出力装置1は、データベースシステム2において実行された問合せ文に対応する実行計画をデータベースシステム2から取得する(図1の(1))。
【0017】
問合せ文出力装置1は、実行計画を問合せ文に変換する変換モデルに基づいて、取得した実行計画を問合せ文に変換する(図1の(2))。問合せ文出力装置1は、変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理が実行される問合せ文として出力する(図1の(3))。
【0018】
実行計画は、同じ問合せ文であっても異なる記述となる場合があるところ、問合せ文出力装置1は、当該異なる記述を含む複数の実行計画を、同じ問合せ文に変換して出力することができる。これにより、問合せ文出力装置1のユーザは、複数の実行計画のみを参照する場合に比べて、これらの実行計画において共通する処理を特定することができる。
以下、問合せ文出力装置1の構成について説明する。
【0019】
[問合せ文出力装置1の構成例]
図2は、第1実施形態に係る問合せ文出力装置1の構成を示す図である。
問合せ文出力装置1は、記憶部11と、制御部12とを備える。
【0020】
記憶部11は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)等である。記憶部11は、問合せ文出力装置1を機能させるための各種プログラムを記憶する。記憶部11は、問合せ文出力装置1の制御部12を、後述する特定部121、生成部122、第2変換部123、第1変換部124、及び出力部125として機能させる問合せ文出力プログラムを記憶する。また、記憶部11は、生成部122により生成される、実行計画を問合せ文に変換するプログラムである変換モデルMを記憶する。
【0021】
制御部12は、例えばCPU(Central Processing Unit)である。制御部12は、記憶部11に記憶されている各種プログラムを実行することにより、問合せ文出力装置1に係る機能を制御する。制御部12は、問合せ文出力プログラムを実行することにより、特定部121、生成部122、第2変換部123、第1変換部124、及び出力部125として機能する。また、制御部12は、変換モデルMを実行することにより、実行計画を問合せ文に変換する。
【0022】
特定部121は、データベースシステム2から、データベースシステム2において実行された複数の実行計画のうち、実行コストが相対的に高い複数の実行計画を取得することにより、複数の実行計画を特定する。例えば、データベースシステム2において生成された実行計画には、実行コストが関連付けられており、特定部121は、関連付けられている実行コストが相対的に高い複数の実行計画を特定する。
【0023】
また、特定部121は、データベースシステム2から、複数の実行計画のそれぞれに対応する問合せ文を取得することにより、複数の実行計画のそれぞれに関連付けられている問合せ文を特定する。ここで、実行計画は、データベースシステム2が、問合せ文に対応する処理を実行する際に生成する情報である。問合せ文は、データベースシステム2において実行されたSQL等の問合せ文である。
【0024】
図3は、問合せ文の一例を示す図である。図4は、図3に示す問合せ文に対応する実行計画を示す図である。図4において最初に示される文字列「Sort」と、「−>」の後に示される文字列とは、問合せ文によって実行される処理としてのノードを示している。また、文字列「Scan」を含むノード(以下、Scanノードともいう。)に続く文字列は、参照されるテーブルのテーブル名を示している。
【0025】
特定部121は、特定した実行計画に基づいて実行計画が示す木構造を表す実行計画文字列を生成する。具体的には、特定部121は、特定した実行計画に基づいて、実行計画に含まれる処理を示すノードと、実行計画に対応する処理において参照されるテーブルのテーブル名を抽出する。特定部121は、特定した実行計画を示すコードの記載順序と、抽出したノード及びテーブル名とに基づいて、実行計画に対応する問合せ文の木構造を抽出する。特定部121は、木構造のグラフである実行計画ツリーを生成する。
【0026】
図5は、図4に示す実行計画に対応する実行計画ツリーを示す図である。実行計画ツリーでは、各ノードN1〜N9における処理の略称を、括弧内に示している。例えば、ルートノードに対応する処理「Sort」の略称は「S」であり、処理「Group Aggregate」の略称は「GA」である。また、実行計画ツリーでは、Scanノードの下部にテーブル名を示している。
【0027】
特定部121は、抽出された実行計画ツリーを、ルートとなるノードから行きがけ順及び帰りがけ順に走査することにより実行計画文字列を生成する。すなわち、特定部121は、実行計画ツリーを、ルートとなるノードから行きがけ順及び帰りがけ順に走査したときに検出されたノードの略称を、検出された順番で並べた文字列を実行計画文字列として生成する。
【0028】
ここで、特定部121は、処理が重複するノードには通し番号を付与する。例えば、図5に示されるノードN1と、ノードN3とは、いずれも「Sort(S)」である。そこで、特定部121は、ノードN1の略称を「S1」とし、ノードN2の略称を「S2」とする。また、特定部121は、Scanノードに対応する略称に、当該Scanノードにおいて参照されるテーブルのテーブル名称、カラム名称のリスト、フィルタ条件を関連付ける。
【0029】
特定部121は、実行計画ツリーを行きがけ順に走査する際、各ノードで検出されたカラム名称と対応するテーブル名称を記憶することによりカラム名称のリストを作成する。そして、特定部121は、当該テーブル名称に関するScanノードが検出された際、当該テーブルに対応付けられたカラム名称のリストを関連付ける。
また、特定部121は、当該Scanノードにおいて参照されるテーブルのフィルタ条件を関連付ける。
【0030】
図6は、図5に示す実行計画ツリーに対応する実行計画文字列を示す図である。図6に示すように、実行計画文字列では、ノードが検出された順番に、当該ノードの略称が羅列されていることが確認できる。さらに、図6では、Scanノードの略称について、“→ テーブル名称[カラム名称リスト](フィルタ条件)”のように、参照されるテーブルのテーブル名称等が関連付けられていることが確認できる。
【0031】
特定部121は、特定した複数の実行計画のそれぞれについて実行計画文字列を生成する。また、特定部121は、特定した実行計画から、当該実行計画の一部である部分実行計画をさらに特定し、当該部分実行計画についても実行計画文字列を生成する。
【0032】
具体的には、特定部121は、実行計画ツリーにおいて、複数のテーブルの結合を示す「Nested Loop」や「Hash Join」の下位のノード群を部分実行計画として抽出する。そして、特定部121は、抽出した部分実行計画について実行計画文字列を生成する。特定部121は、実行計画文字列を作成する際に、Scanノードの略称について参照先のテーブル名称等を挿入又は置換を行うことにより、参照先のテーブル名称等の文字列を実行計画文字列に取り込んでもよい。例えば、特定部121は、参照先のテーブル名称等の文字列を実行計画文字列に取り込む際、括弧、カンマ等を空白(スペース)に置換してもよい。例えば、“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”という文字列に変換してもよい。
【0033】
[変換モデルMの生成]
生成部122は、実行計画を問合せ文に変換する変換モデルMを生成する。具体的には、生成部122は、実行計画を示す実行計画文字列を入力すると、当該実行計画文字列に対応する問合せ文を出力する変換モデルMを生成する。例えば、生成部122は、記号列を入力すると対応する記号列を出力するモデルであるSequence-to-Sequenceモデルに教師データを与えて学習させることにより、変換モデルMを生成する。
【0034】
教師データは、入力される記号列と、出力される記号列との組み合わせである。入力される記号列は、特定部121が特定した実行計画から生成した実行計画文字列であり、出力される記号列は、当該実行計画に関連付けられている問合せ文である。
【0035】
生成部122は、変換モデルMを生成し、当該変換モデルMに対して特定部121により特定された実行計画を入力することにより問合せ文を取得する。そして、生成部122は、当該問合せ文を、第2変換部123に入力することにより、当該問合せ文に対応する実行計画を取得する。
【0036】
ここで、第2変換部123は、問合せ文を実行計画に変換する機能を有している。第2変換部123は、データベースシステム2に問合せ文を入力し、当該問合せ文に対応する実行計画を生成させる。そして、第2変換部123は、データベースシステム2から当該実行計画を取得することにより、当該問合せ文を実行計画に変換する。
【0037】
続いて、生成部122は、特定部121により特定された一以上の実行計画と、変換モデルMから出力された問合せ文から変換された一以上の実行計画との類似度を算出する。例えば、生成部122は、特定部121により特定された実行計画と、変換モデルMから出力された問合せ文から変換された実行計画とのレーベンシュタイン距離を算出する。ここで、レーベンシュタイン距離は、文字列を比較対象の文字列に変換する場合に要する編集の回数を示しており、0回であれば、文字列と、比較対象の文字列とが一致していることを示している。また、レーベンシュタイン距離の値が小さければ小さいほど、文字列と、比較対象の文字列との類似度が高いことを示している。生成部122は、算出したレーベンシュタイン距離が小さければ小さいほど類似度が大きくなるように類似度を算出する。
【0038】
生成部122は、Sequence-to-Sequenceモデルにおける設定情報を変更しながら、複数の変換モデルMを生成する。そして、生成部122は、生成した複数の変換モデルMのそれぞれについて、一以上の実行計画と、変換モデルMに対応する一以上の実行計画との類似度を算出し、算出した類似度に基づいて類似度の平均値を算出する。そして、生成部122は、算出される類似度の平均値が相対的に高い1つの変換モデルMを選択する。
【0039】
図7は、変換モデルMの選択例を示す図である。図7に示すように、生成部122は、異なる設定情報により設定された複数の変換モデルを生成する。図7に示す例では、設定情報Aにより設定された変換モデルM1と、設定情報Bにより設定された変換モデルM2とが生成されている。
【0040】
生成部122は、生成した複数の変換モデルのそれぞれに、特定部121が特定した実行計画を入力して問合せ文に変換させ、第2変換部123により、当該問合せ文を実行計画に変換させる。そして、生成部122は、図7に示すように、複数の変換モデルのそれぞれに入力される、特定部121が特定した一以上の実行計画と、第2変換部123により変換された一以上の実行計画との類似度の平均である平均類似度を算出し、当該平均類似度が最も高い変換モデルを選択する。このようにすることで、問合せ文出力装置1は、変換精度の高い変換モデルMを生成することができる。
【0041】
なお、生成部122は、図7に示すように、特定部121が特定した一以上の実行計画と、第2変換部123により変換された一以上の実行計画との類似度に基づいて、複数の変換モデルの中から変換モデルMを選択したが、これに限らない。
【0042】
生成部122は、特定部121が特定した問合せ文を第2変換部123に入力することにより、当該問合せ文に対応する実行計画を取得し、取得した当該実行計画を変換モデルに対して入力することにより問合せ文を取得し、第2変換部123に入力された問合せ文と、変換モデルから取得した問合せ文との類似度を算出してもよい。そして、生成部122は、変換モデルにおける設定情報を変更しながら、算出される当該類似度が相対的に高い変換モデルを選択してもよい。
【0043】
図8は、変換モデルMの他の選択例を示す図である。図8に示す例では、図7に示す例と同様に、生成部122が、異なる設定情報により設定された複数の変換モデルを生成する。図8に示す例では、設定情報Aにより設定された変換モデルM1と、設定情報Bにより設定された変換モデルM2とが生成されている。
【0044】
生成部122は、第2変換部123により、特定部121が特定した一以上の実行計画が生成された生成元となる問合せ文を実行計画に変換させる。そして、生成部122は、生成した複数の変換モデルのそれぞれに、変換された実行計画を入力して問合せ文に変換させる。そして、生成部122は、図8に示すように、複数の変換モデルのそれぞれに入力される、第2変換部123が変換した一以上の問合せ文と、変換モデルにより変換された一以上の問合せ文との類似度の平均である平均類似度を算出し、当該平均類似度が最も高い変換モデルを選択する。このようにすることで、問合せ文出力装置1は、図7に示す例と同様に変換精度の高い変換モデルMを生成することができる。
【0045】
[問合せ文の出力]
第1変換部124は、特定部121により特定された複数の実行計画を、当該実行計画に含まれる文字列の並びと、当該実行計画に対応するデータベースシステム2における問合せ文に含まれる文字列の並びとの関連性に基づいて、データベースシステム2における問合せ文に変換するとともに、特定部121により特定された、当該実行計画の一部である部分実行計画を問合せ文に変換する。なお、第1変換部124は、問合せ文に含まれるテーブル名称に対して、部分実行計画に含まれるテーブル名称に関連付けられたカラム名称やフィルタ条件のうち問合せ文に含まれないものを、不足した情報として問合せ文に追加しても構わない。
【0046】
具体的には、第1変換部124は、複数の実行計画のそれぞれに対応する実行計画文字列を変換モデルMに入力し、当該変換モデルMから出力される問合せ文を取得することにより、複数の実行計画のそれぞれを問合せ文に変換する。同様に、第1変換部124は、複数の部分実行計画のそれぞれに対応する実行計画文字列を変換モデルMに入力し、当該変換モデルMから出力される問合せ文を取得することにより、複数の部分実行計画のそれぞれを問合せ文に変換する。
【0047】
なお、第1変換部124が変換モデルMに入力する実行計画及び部分実行計画は、変換モデルMの生成に用いられた実行計画及び部分実行計画と異なっていてもよい。この場合、特定部121は、生成部122が変換モデルMを生成した後に、新たに実行計画及び部分実行計画を特定してもよい。そして、第1変換部124は、新たに特定された実行計画及び部分実行計画に対応する実行計画文字列を変換モデルMに入力し、これらの実行計画を問合せ文に変換してもよい。
【0048】
出力部125は、第1変換部124により変換された問合せ文を出力する。具体的には、出力部125は、第1変換部124により変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を、問合せ文出力装置1に設けられた表示部(非表示)に出力したり、テキストファイルに出力して当該テキストファイルを記憶部11に記憶させたりする。また、出力部125は、問合せ文出力装置1と通信可能に接続されている管理端末(不図示)に出力してもよい。
【0049】
例えば、出力部125は、第1変換部124により変換された複数の問合せ文のそれぞれについて、同様に変換された他の問合せ文と比較し、同一の文字列の問合せ文があれば名寄せし、名寄せされた問合せ文の個数に基づいて出現頻度を算出する。そして、出力部125は、出現頻度の高い問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理が実行される問合せ文として出力する。
【0050】
また、出力部125は、第1変換部124により変換された複数の問合せ文のそれぞれについて、同様に変換された他の複数の問合せ文とのレーベンシュタイン距離を算出し、当該レーベンシュタイン距離に基づいて類似度の合計値を算出してもよい。例えば、出力部125は、他の複数の問合せ文のそれぞれとのレーベンシュタイン距離の合計値を、類似度の合計値として算出する。そして、出力部125は、類似度の合計値が高い問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理が実行される問合せ文として出力してもよい。
【0051】
また、出力部125は、部分実行計画から変換された一以上の副問合せ文のそれぞれについて類似度を比較し、類似度が副問合せ文を、マテリアライズドビューの作成に適している可能性が高い処理に対応する副問合せ文として出力してもよい。
【0052】
[問合せ文出力装置1における処理の流れ]
続いて、問合せ文出力装置1における処理の流れについて説明する。図9は、本実施形態に係る問合せ文出力装置1における処理の流れを示すフローチャートである。
【0053】
まず、特定部121は、実行コストが相対的に高い複数の実行計画を取得することにより、複数の実行計画を特定するとともに、当該実行計画に含まれる部分実行計画を特定する(S1)。
続いて、生成部122は、S1において特定された実行計画に基づいて変換モデルMを生成する(S2)。なお、生成部122は、変換モデルMが既に生成されているか否かを判定してもよい。そして、生成部122は、変換モデルMが既に生成されていると判定すると、変換モデルMを生成しないようにしてもよい。
【0054】
続いて、第1変換部124は、実行計画及び部分実行計画を変換モデルMに入力して、変換モデルMから問合せ文を取得することにより、実行計画及び部分実行計画を問合せ文に変換する(S3)。
【0055】
続いて、出力部125は、S3において変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力する(S4)。
【0056】
[本実施形態における効果]
以上の通り、本実施形態に係る問合せ文出力装置1は、データベースシステム2において実行された、複数の実行計画をデータベースシステムにおける問合せ文に変換するとともに、当該実行計画の一部である部分実行計画を問合せ文に変換し、変換された問合せ文を出力する。このようにすることで、問合せ文出力装置1のユーザは、複数の実行計画のみを参照する場合に比べて、これらの実行計画において共通する処理を特定することができる。
【0057】
また、問合せ文出力装置1は、データベースシステムにおいて実行された、実行コストが相対的に高い複数の実行計画を特定し、当該実行計画に対応する問合せ文を出力する。このようにすることで、出力される問合せ文は、実行コストが相対的に高い問合せ文となる。したがって、問合せ文出力装置1のユーザは、当該問合せ文に基づいて、効果的なマテリアライズドビューに対応する処理を特定することができる。
【0058】
また、問合せ文出力装置1は、変換された複数の問合せ文のうち、他の問合せ文と類似度が高い問合せ文を出力する。このようにすることで、問合せ文出力装置1のユーザは、出力される問合せ文から、マテリアライズドビューの作成に適した処理に対応する副問合せ文を特定することができる。
【0059】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上述の複数の実施形態を組み合わせてもよい。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【符号の説明】
【0060】
1・・・問合せ文出力装置、11・・・記憶部、12・・・制御部、121・・・特定部、122・・・生成部、123・・・第2変換部、124・・・第1変換部、125・・・出力部、2・・・データベースシステム

図1
図2
図3
図4
図5
図6
図7
図8
図9