JP5359446B2 - 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム - Google Patents

情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム Download PDF

Info

Publication number
JP5359446B2
JP5359446B2 JP2009076088A JP2009076088A JP5359446B2 JP 5359446 B2 JP5359446 B2 JP 5359446B2 JP 2009076088 A JP2009076088 A JP 2009076088A JP 2009076088 A JP2009076088 A JP 2009076088A JP 5359446 B2 JP5359446 B2 JP 5359446B2
Authority
JP
Japan
Prior art keywords
index
information
unit
sql statement
access path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009076088A
Other languages
English (en)
Other versions
JP2010231332A (ja
Inventor
圭子 瀧原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009076088A priority Critical patent/JP5359446B2/ja
Publication of JP2010231332A publication Critical patent/JP2010231332A/ja
Application granted granted Critical
Publication of JP5359446B2 publication Critical patent/JP5359446B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラムに関する。
データベースからSQL(Structured Query Language)によって任意の条件のデータを抽出する場合、オプティマイザが使用するインデックスを自動的に選択し、そのインデックスを使用してアクセスパスを決定している。しかし、必ずしも最適なインデックスが選択されるとは限らないという問題がある。
このような問題を解決するための方法として、アプリケーションプログラム(以下、「APとする」)の埋め込みSQL文において任意のインデックスを指定するヒント句を記述することにより、インデックスを指定する方法がある。この方法では、利用者が最適なインデックスを指定することができる。しかし、データベースの内容の変更によって最適なインデックスが変わってしまった場合、最適なインデックスを指定し直すためには、APの修正が必要となるため、適用が難しいという問題があった。
また、上述のような問題を解決するための他の方法として、利用者がSQL文を記述するときに、最適なインデックスをヒント句によって指定する方法がある。しかし、ヒント句の記述方法の違いにより、意図するインデックスが使用されない場合がある。これは、利用者が入力したヒント句の文字列と、オプティマイザが認識しているヒント句の文字列が完全に一致していなければいけないからである。
なお、特許文献1には、ファクト表とディメンジョン表から構成されるスタースキーマのデータベースにおいて、ジョイン処理を効率よく実行する技術が開示されている。具体的には、問い合わせ処理時に、ディメンジョン表およびファクト表上の既存のインデックスを組み合わせて定義した仮想連結インデックスが示す複数のインデックスを順次アクセスしてその問い合わせの条件に合致するファクト表のレコードを特定している。
しかし、特許文献1は、問い合わせに対応する仮想連結インデックスをどのように特定するかについては記載されていない。つまり、特許文献1では、問い合わせの内容に基づいて、アクセスパスにおいて使用する最適なインデックスを指定する技術を開示したものではない。
また、特許文献2には、ブロック構造文でない場合は、インタプリト又は1ラインコンパイル単位に処理実行し、ブロック構造文の場合は、そのブロック構造文の種類等に応じてプログラム言語処理を行うことにより、ブロック構造文をインタプリト又は1ラインコンパイルするプログラミング言語でも、高速処理が可能となる技術が開示されている。
しかし、特許文献2は、データベースに関する技術を開示したものではない。
さらに、特許文献3には、データベースのためのインデックスのセットをデータベースに与えられたSQLステートメントのサンプルを解析することによって指定し、最適なインデックスが提供されなかった場合に、照会によって中央処理装置に過剰な要求が課せられてしまうという問題を克服するための試みが開示されている。
しかし、特許文献3は、インデックスのセットを指定するのみであり、アクセスパスにおいて使用する最適なインデックスを指定する技術を開示したものではない。
特開2004−110219号公報 特開平05−150999号公報 特表2000−502201号公報
以上に説明したように、データベースからSQLによって任意の条件のデータを抽出する場合、必ずしも最適なインデックスが指定されるとは限らないという問題がある。
本発明の目的は、上述のような問題を解決するためになされたものであり、最適なインデックスを指定することができる情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラムを提供することにある。
本発明にかかる情報処理システムは、データベース言語によって記述され、データベースから任意の情報を抽出する命令文の入力に応じてアクセスパスを決定する情報処理システムであって、複数の条件情報と、前記複数の条件情報のそれぞれに関連付けられ、前記命令文を実行するときに使用するインデックスを示すインデックス情報とを格納するインデックス情報記憶部と、前記命令文において指定されている条件を抽出する解析部と、前記解析部が抽出した条件に基づいて、前記インデックス情報記憶部に格納される情報から前記命令文を実行するときに使用するインデックスを選択するインデックス指定部と、 前記インデックス指定部が選択したインデックスを使用するように、前記命令文を実行するときのアクセスパスを決定する最適化部とを備えたものである。
本発明にかかるアクセスパス決定方法は、データベース言語によって記述された命令文に基づいて、アクセスパスを決定するアクセスパス決定方法であって、前記命令文において指定されている条件を抽出するステップと、複数の条件情報と、前記複数の条件情報のそれぞれに関連付けられ、前記命令文を実行するときに使用するインデックスを示すインデックス情報とを格納するインデックス情報記憶部を参照して、前記抽出した条件に基づいて、前記命令文を実行するときに使用するインデックスを選択するステップと、前記選択したインデックスを使用するように、前記命令文を実行するときのアクセスパスを決定するステップとを備えたものである。
本発明にかかるアクセスパス決定プログラムは、データベース言語によって記述された命令文に基づいて、アクセスパスを決定するアクセスパス決定プログラムであって、前記命令文において指定されている条件を抽出するステップと、複数の条件情報と、前記複数の条件情報のそれぞれに関連付けられ、前記命令文を実行するときに使用するインデックスを示すインデックス情報とを格納するインデックス情報記憶部を参照して、前記抽出した条件に基づいて、前記命令文を実行するときに使用するインデックスを選択するステップと、前記選択したインデックスを使用するように、前記命令文を実行するときのアクセスパスを決定するステップとをコンピュータに実行させるものである。
本発明により、最適なインデックスを指定することができる情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラムを提供することができる。
本発明の実施の形態1にかかる情報処理システムの概要を示すブロック図である。 本発明の実施の形態1にかかる情報処理システムを示すブロック図である。 本発明の実施の形態1にかかるDBに格納されるテーブルの一例を示す図である。 本発明の実施の形態1にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態1にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態2にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態3にかかるDBに格納されるテーブルの一例を示す図である。 本発明の実施の形態3にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態3にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態4にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態4にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態5にかかる情報処理システムの処理概要を示す図である。 本発明の実施の形態5にかかる情報処理システムの処理概要を示す図である。
本発明の実施の形態1.
まず、図1を参照して、本発明の実施の形態1にかかる情報処理システムの概要について説明する。図1は、本発明の実施の形態1にかかる情報処理システムの概要を示すブロック図である。
情報処理システム1は、解析部90、最適化部91、インデックス指定部92、インデックス情報記憶部93及びデータベース(以下、「DB」とする)94を備える。
解析部90は、データベース言語によって記述された命令文において指定されている条件を抽出する。
最適化部91は、インデックス指定部92が選択したインデックスを使用するように、命令文を実行するときのアクセスパスを決定する。
インデックス指定部92は、解析部90が抽出した条件に基づいて、インデックス記憶部93に格納される情報から命令文を実行するときに使用するインデックスを選択する。
インデックス情報記憶部93は、命令文において指定される条件を示す複数の条件情報と、これら複数の条件情報のそれぞれに関連付けられ、命令文を実行するときに使用するインデックスを示すインデックス情報とを格納する。
DB94は、任意のデータを格納する。
続いて、発明の実施の形態1にかかる情報処理システムの処理の概要について説明する。
まず、解析部90は、DB94から任意の情報を抽出する命令文80の入力を受けると、入力された命令文80において指定されている条件を抽出する。そして、解析部90は、抽出した条件を示す条件情報をインデックス指定部92に出力する。
次に、インデックス指定部92は、解析部90から出力された条件情報を取得し、取得した条件情報が示す条件に基づいて、インデックス記憶部93に格納される情報から命令文80を実行するときに使用するインデックスを選択する。そして、インデックス指定部92は、選択したインデックスを示すインデックス情報を最適化部91に出力する。
次に、最適化部91は、インデックス指定部92から出力されたインデックス情報を取得し、取得したインデックス情報が示すインデックスを使用するように、命令文80を実行するときのアクセスパスを決定する。
続いて、図2を参照して、本発明の実施の形態1にかかる情報処理システムについて説明する。図2は、本発明の実施の形態1にかかる情報処理システムを示すブロック図である。
情報処理システム1は、データベース管理システム(以下、「DBMS」とする)10、DB20、条件取得部20、インデックス指定部21、インデックス情報参照部21、インデックス情報更新部22及びインデックス情報記憶部40を備える。また、データベース管理システム10は、構文解析部11、意味解析部12、最適化部13、オブジェクト生成部14及び実行処理部15を含む。また、バッチアプリケーションプログラム(以下、「バッチAP」とする)2又はオンライントランザクション処理システム(以下、「OLTPシステム」とする)3は、DB20から任意の情報を抽出するSQL文50をデータベース管理システム10に送信する。情報処理システム1は、例えば、PC(Personal Computer)やサーバ等の情報処理装置から構成される。
構文解析部11は、受信したSQL文50の構文を解析する。このとき、構文解析部11は、SQL文50を意味のある要素単位に構文を分解する。
意味解析部12は、構文解析部11で分解されたSQL文50の意味を解析する。また、意味解析部12は、SQL文50において条件が指定されている場合は、指定されている条件を示す条件情報を条件取得部20に出力する。構文解析部11及び意味解析部12は、解析部として機能する。
最適化部13は、SQL文50を実行するためのアクセスパスを決定する。なお、最適化部13は、インデックス指定部21からインデックス示すインデックス情報を取得した場合は、取得した情報を使用するように、アクセスパスを決定する。
オブジェクト生成部14は、最適化部13において決定したアクセスパスを実行するためのオブジェクトを生成する。
実行処理部15は、オブジェクト生成部14で生成したオブジェクトを実行することによって、SQL文50を実行する。
条件取得部20は、意味解析部12からSQL文50において指定されている条件情報を取得する。また、条件取得部21は、取得した条件情報をインデックス指定部21に出力する。
インデックス指定部21は、条件取得部20から出力された条件情報を取得し、取得した条件情報に基づいて、インデックス情報記憶部30に格納される情報からSQL文50を実行するときに使用するインデックスを選択する。そして、インデックス指定部21は、選択したインデックスを示すインデックス情報を最適化部13に出力する。
インデックス情報更新部22は、利用者からインデックス情報記憶部30に対するインデックス情報更新指示60の入力を受けた場合に、この入力に応じてインデックス記憶部30に格納される情報の追加、変更または削除等の更新を行う。
インデックス情報記憶部30は、複数の条件情報と、これらの条件情報のそれぞれにインデックス情報を対応付けたインデックス指定テーブルを格納する。ここで、インデックス情報記憶部30は、条件情報と、その条件情報が示す条件が指定されたSQL文を実行する場合に、最適となるインデックスを示すインデックス情報とを予め対応付けて格納している。
DB40は、任意のデータを格納する。インデックス情報記憶部30又はDB40は、例えば、メモリやHDD(Hard Disc Drive)等の記憶装置から構成される。
なお、条件情報については、SQL文50において指定される条件を示す情報であればどのような情報であってもよいが、本実施の形態においては、条件情報をその条件を示す文字列とした例について説明する。また、インデックス情報についても、同様にインデックスを示す情報であればどのような情報であってもよいが、本実施の形態においては、インデックス情報をそのインデックス名を示す文字列とした例について説明する。
続いて、図3〜5を参照して、本発明の実施の形態1にかかる情報処理システムの処理について説明する。図4〜5は、本発明の実施の形態1にかかる情報処理システムの処理概要を示す図である。
なお、ここでは、図3に例示するDB40に格納されるテーブル41から、SQL文50によって情報を抽出する場合を例として説明する。テーブル41は、テーブル名が"T1"であり、"C1"、"C2"及び"C3"が列名となる。
まず、バッチAP3又はOLTPシステム3は、DB40から任意の情報を抽出する場合に、SQL文50をDBMS10に送信する。
DBMS10がSQL文50を受信すると、構文解析部11は、受信したSQL文50を取得し(S100)、取得したSQL文50を解析する(S101)。具体的には、図4に示すように、SQL文50においてWHERE句以下の構文を個々の要素に分解する。
そして、構文解析部11は、WHERE句以下の構文を個々の要素に分解した情報を構文解析結果として意味解析部12に出力する。
次に、意味解析部12は、構文解析部11から出力された構文解析結果を取得し(S102)、取得した構文解析結果の意味を解析する(S103)。意味解析部12は、解析によって、構文解析結果からWHERE句において条件となる要素である"C1='AAA'"と"C2='BBB'"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C1='AAA'"と"T1.C2='BBB'"に変換する。テーブル名は、例えば、解析のときに、SQL文50を参照することにより特定する。
なお、分解や解析は、どのような手法によって行ってもよく、例えば、構文解析部11に"WHERE"、"AND"や"="等の個々の要素を識別することができる文字列情報を備えておき、それにより判断するなどしてもよい。
そして、意味解析部12は、条件"T1.C1='AAA'"と"T1.C2='BBB'"の文字列情報を条件情報として、条件取得部20に出力する。
次に、条件取得部20は、意味解析部12から出力された条件情報を取得する(S104)。そして、条件取得部20は、取得した条件情報をインデックス指定部に出力する。
次に、インデックス指定部21は、条件取得部20から出力された条件情報を取得する(S105)。インデックス指定部21は、インデックス指定テーブルを参照し、取得した条件情報が示す条件に対応する最適なインデックスを検索する(S106)。ここで、条件が"T1.C1='AAA'"と"T1.C2='BBB'"であるため、それに対応する最適なインデックスは"I3"となる(S107)。インデックス指定部21は、インデックス指定テーブルから最適なインデックスとして、インデックス名の文字列情報"I3"をインデックス情報として取得する(S108)。
そして、インデックス指定部21は、取得したインデックス情報を最適化部13に出力する。
なお、ここでの判断は、インデックス指定部21が取得した条件情報と、インデックス指定テーブルの条件情報との文字列の一致により行うことができる。また、インデックス指定部21が取得する条件情報にSQL文に含まれる"AND"、"OR"、"NOT"等の論理演算子の情報も含めて、この情報の一致も判断してインデックス指定テーブルからインデックス情報を取得するようにしてもよい。
次に、最適化部13は、インデックス指定部21から出力されたインデックス情報を取得する(S109)。そして、取得したインデックス情報が示すインデックス"I3"を使用するようにして、アクセスパスを決定する。
次に、オブジェクト生成部14は、最適化部13が決定したアクセスパスを実行するオブジェクトを生成する。
そして、実行処理部15は、オブジェクト生成部14が生成したオブジェクトを実行する。これにより、DB40に対してSQL文50が実行される。
なお、本実施の形態1にかかる情報処理システム1には、マウスやキーボード等の任意の入力装置(図示せず)によって、利用者がインデックス情報更新指示60を入力することにより、インデックス情報記憶部30に格納される情報の追加、変更または削除等の更新を行うことができる。
例えば、インデックス情報更新部22は、任意の条件情報とインデックス情報を含んだインデックス情報更新指示60を受けると、インデックス情報記憶部30のインデックス指定テーブルに、任意の条件情報とインデックス情報を追加する。また、例えば、インデックス情報更新部22は、インデックス指定テーブルにおける任意の"No"を指定したインデックス情報更新指示60を受けると、インデックス指定テーブルに含まれ任意の情報を削除し、任意の"No"、インデックス情報を含んだインデックス情報更新指示60をうけると、任意の"No"に対応するインデックス情報を更新する等を行う。
以上に説明したように、本実施の形態1では、実行するSQL文において指定されている条件に対応した最適なインデックスをインデックス指定テーブルから選択しているため、最適なインデックスを指定することが可能となる。
また、バッチAPのようなAPにおける埋め込みSQL文においてヒント情報を記述するのではなく、情報の更新が可能なインデックス指定テーブルを参照することにより、インデックスを選択しているため、APの修正をすることがなく、又は、APの修正が不可能な場合であっても、最適なインデックスを指定することが可能となる。
本発明の実施の形態2.
続いて、本発明の実施の形態2にかかる情報処理システムについて説明する。
なお、本発明の実施の形態2にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
図3、6を参照して、本発明の実施の形態2にかかる情報処理システムの処理について説明する。図6は、本発明の実施の形態2にかかる情報処理システムの処理概要を示す図である。なお、ここでは、実施の形態1と同様の図3に例示するDB40に格納されるテーブル41から、SQL文50、51、52によって情報を取得する場合を例として説明する。
図6に示すSQL文50、51、52は、それぞれのSQL文の意味は一致している。つまり、SQL文50、51、52は、条件は一致しているが、それぞれの記述方法が異なっている。
構文解析部11は、SQL文50、51、52のいずれかを取得すると(S200)、取得したSQL文50、51、52の解析を行う(S201)。ここで、SQL文50、51、52の記述方法に異なっている場合であっても、構文解析部11は、図6に示すように、同じ構文解析結果を生成する。なお、これ以降の処理は、本実施の形態1と同様となるため、説明を省略する。
このように、本実施の形態2では、構文を解析するときに、条件となる要素として、記述方法の違いによって差異がでない表現によって文字列を抽出しているため、記述方法が異なっていても同一の条件を条件情報として抽出することができる。言い換えると、SQL文が同じ意味を有する場合には、異なる記述方法であっても同一の条件を抽出することができる。
以上に説明したように、本実施の形態2では、SQL文の文字列の一致ではなく、SQL文の意味単位で対応するインデックスを決定しているため、SQL文の記述方法の違いに依存せず、最適なインデックスを指定することが可能となる。
本発明の実施の形態3.
続いて、本発明の実施の形態3にかかる情報処理システムについて説明する。
なお、本発明の実施の形態3にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
図3、7〜9を参照して、本発明の実施の形態3にかかる情報処理システムの処理について説明する。図8、9は、本発明の実施の形態3にかかる情報処理システムの処理概要を示す図である。なお、ここでは、実施の形態1と同様の図3に例示するDB40に格納されるテーブル41と、新たに図7に例示するDB40に格納されるテーブル42から、SQL文53によって情報を抽出する場合を例として説明する。テーブル42は、テーブル名が"T2"であり、"C4"、"C5"及び"C6"が列名となる。なお、実施の形態1と同様の処理については説明を省略する。
構文解析部11は、SQL文53を取得すると(S300)、図8に示すように、SQL文53において条件が指定されるON句以下の構文を個々の要素に分解する(S301)。
次に、意味解析部12は、構文解析部11から構文解析結果を取得すると(S302)、JOIN句において条件となる要素である"C1=C4"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C1=T2.C4"に変換する。
そして、意味解析部12は、条件"T1.C1=T2.C4"の文字列情報を条件情報として、条件取得部20に出力する。
次に、インデックス指定部21は、条件取得部20を介して、条件情報を取得すると(S305)、インデックス指定テーブルから条件"T1.C1=T2.C4"に対応する最適なインデックス情報"I1"を取得する(S306、S307、S308)。
そして、最適化部13は、インデックス指定部21からインデックス情報を取得すると(S309)、取得したインデックス情報が示すインデックス"I1"を使用するようにして、アクセスパスを決定する。なお、これ以降の処理は、実施の形態1と同様となるため、説明を省略する。
以上に説明したように、本実施の形態3では、JOIN句が記述されたSQL文によって結合して情報を抽出する場合であっても、実施の形態1と同様に、最適なインデックスを指定することが可能である。また、APの修正をすることがなく、又は、APの修正が不可能な場合であっても、最適なインデックスを指定することが可能である。さらに、本実施の形態3では、実施の形態2と同様に、SQL文の記述方法の違いに依存せず、最適なインデックスを指定することも可能である。
本発明の実施の形態4.
続いて、本発明の実施の形態4にかかる情報処理システムについて説明する。
なお、本発明の実施の形態4にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
図3、10、11を参照して、本発明の実施の形態4にかかる情報処理システムの処理について説明する。図10、11は、本発明の実施の形態4にかかる情報処理システムの処理概要を示す図である。なお、ここでは、実施の形態1と同様の図3に例示するDB40に格納されるテーブル41から、SQL文54によって情報を抽出する場合を例として説明する。なお、実施の形態1と同様の処理については説明を省略する。
構文解析部11は、SQL文54を取得すると(S400)、図10に示すように、SQL文54においてORDER BY句以下の構文を個々の要素に分解する(S401)。
次に、意味解析部12は、構文解析部11から構文解析結果を取得すると(S402)、ORDER BY句において条件となる要素である"C2"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C2"に変換する。
そして、意味解析部12は、条件"T1.C2"の文字列情報を条件情報として、条件取得部20に出力する。
次に、インデックス指定部21は、条件取得部20を介して、条件情報を取得すると(S405)、インデックス指定テーブルから条件"T1.C2"に対応する最適なインデックス情報"I2"を取得する(S406、S407、S408)。
そして、最適化部13は、インデックス指定部21からインデックス情報を取得すると(S409)、取得したインデックス情報が示すインデックス"I2"を使用するようにして、アクセスパスを決定する。なお、これ以降の処理は、実施の形態1と同様となるため、説明を省略する。
以上に説明したように、本実施の形態4では、ORDER BY句が記述されたSQL文によってソートした情報を抽出する場合であっても、実施の形態1と同様に、最適なインデックスを指定することが可能である。また、APの修正をすることがなく、又は、APの修正が不可能な場合であっても、最適なインデックスを指定することが可能である。さらに、本実施の形態4では、実施の形態2と同様に、SQL文の記述方法の違いに依存せず、最適なインデックスを指定することも可能である。
本発明の実施の形態5.
続いて、本発明の実施の形態5にかかる情報処理システムについて説明する。
なお、本発明の実施の形態5にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
図3、12、13を参照して、本発明の実施の形態5にかかる情報処理システムの処理について説明する。図12、13は、本発明の実施の形態5にかかる情報処理システムの処理概要を示す図である。なお、ここでは、実施の形態1と同様の図3に例示するDB40に格納されるテーブル41から、SQL文55によって情報を抽出する場合を例として説明する。なお、実施の形態1と同様の処理については説明を省略する。
構文解析部11は、SQL文55を取得すると(S500)、図12に示すように、SQL文55においてGROUP BY句以下の構文を個々の要素に分解する(S501)。
次に、意味解析部12は、構文解析部11から構文解析結果を取得すると(S502)、GROUP BY句において条件となる要素である"C1"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C1"に変換する。なお、ここでは、GROUP BY句において指定されている要素"C1"を条件として特定する場合について例示したが、SUM、MAX、MIN、AVG、COUNT等の集合関数において指定されている要素"C3"を条件として特定してもよい。
そして、意味解析部12は、条件"T1.C1"の文字列情報を条件情報として、条件取得部20に出力する。
次に、インデックス指定部21は、条件取得部20を介して、条件情報を取得すると(S505)、インデックス指定テーブルから条件"T1.C1"に対応する最適なインデックス情報"I1"を取得する(S506、S507、S508)。
そして、最適化部13は、インデックス指定部21からインデックス情報を取得すると(S509)、取得したインデックス情報が示すインデックス"I1"を使用するようにして、アクセスパスを決定する。なお、これ以降の処理は、実施の形態1と同様となるため、説明を省略する。
以上に説明したように、本実施の形態5では、GROPU BY句が記述されたSQL文によってグルーピングして情報を抽出する場合であっても、実施の形態1と同様に、最適なインデックスを指定することが可能である。また、APの修正をすることがなく、又は、APの修正が不可能な場合であっても、最適なインデックスを指定することが可能である。さらに、本実施の形態5では、実施の形態2と同様に、SQL文の記述方法の違いに依存せず、最適なインデックスを指定することも可能である。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、本実施の形態では、本発明をSQLに適用した場合について例示したが、SQLではなく、SQLと同様にインデックスを使用するデータベース言語であれば、どのようなものであってもよい。
以上に説明した本発明にかかる情報処理システムは、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有するコンピュータ又はCPU(Central Processing Unit)、MPU(Micro Processing Unit)がこのプログラムを実行することによって、構成することが可能である。
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジを含む。また、通信媒体には、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体を含み、インターネットも含まれる。
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているOS(Operating System)もしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
1 情報処理システム
2 バッチAP
3 OLTPシステム
10 DBMS
11 構文解析部
12 意味解析部
13、91 最適化部
14 オブジェクト生成部
15 実行処理部
20 条件取得部
21、92 インデックス指定部
22 インデックス情報更新部
30 インデックス情報記憶部
40、94 DB
50、51、52、53、54、55 SQL文
41、42 テーブル
80 命令文
90 解析部

Claims (4)

  1. SQL言語によって記述され、データベースから任意の情報を抽出するSQL文の入力に応じてアクセスパスを決定する情報処理システムであって、
    SQL文におけるテーブル名と列名が含まれる条件情報と、前記条件情報のそれぞれに関連付けられ、前記SQL文を実行するときに使用するインデックスを示すインデックス情報とを複数格納するインデックス情報記憶部と、
    前記SQL文において指定されている列名と本来的なテーブル名とを抽出し、抽出した列名とテーブル名を含む条件情報を生成することで、SQL文が同じ意味を有する場合には、異なる記述方式であっても同一の文字列となる条件情報を生成する解析部と、
    前記解析部が生成した条件情報に基づいて、前記インデックス情報記憶部に格納される情報から前記SQL文を実行するときに使用するインデックスを選択するインデックス指定部と、
    前記インデックス指定部が選択したインデックスを使用するように、前記SQL文を実行するときのアクセスパスを決定する最適化部とを備えた情報処理システム。
  2. 前記情報処理システムは、さらに利用者からの入力に応じて、前記インデックス情報記憶部に格納される情報を更新する入力処理部を備えた請求項に記載の情報処理システム。
  3. SQL言語によって記述されたSQL文に基づいて、アクセスパスを決定するアクセスパス決定方法であって、
    コンピュータが、前記SQL文において指定されている列名と本来的なテーブル名とを抽出し、抽出した列名とテーブル名を含む条件情報を生成することで、SQL文が同じ意味を有する場合には、異なる記述方式であっても同一の文字列となる条件情報を生成するステップと、
    前記コンピュータが、SQL文におけるテーブル名と列名が含まれ条件情報と、前記条件情報のそれぞれに関連付けられ、前記SQL文を実行するときに使用するインデックスを示すインデックス情報とを複数格納する記憶装置を参照して、前記生成した条件情報に基づいて、前記SQL文を実行するときに使用するインデックスを選択するステップと、
    前記コンピュータが、前記選択したインデックスを使用するように、前記SQL文を実行するときのアクセスパスを決定するステップとを備えたアクセスパス決定方法。
  4. SQL言語によって記述されたSQL文に基づいて、アクセスパスを決定するアクセスパス決定プログラムであって、
    前記SQL文において指定されている列名と本来的なテーブル名とを抽出し、抽出した列名とテーブル名を含む条件情報を生成することで、SQL文が同じ意味を有する場合には、異なる記述方式であっても同一の文字列となる条件情報を生成するステップと、
    SQL文におけるテーブル名と列名が含まれる条件情報と、前記条件情報のそれぞれに関連付けられ、前記SQL文を実行するときに使用するインデックスを示すインデックス情報とを複数格納するインデックス情報記憶部を参照して、前記生成した条件情報に基づいて、前記SQL文を実行するときに使用するインデックスを選択するステップと、
    前記選択したインデックスを使用するように、前記SQL文を実行するときのアクセスパスを決定するステップとをコンピュータに実行させるアクセスパス決定プログラム。
JP2009076088A 2009-03-26 2009-03-26 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム Expired - Fee Related JP5359446B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009076088A JP5359446B2 (ja) 2009-03-26 2009-03-26 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009076088A JP5359446B2 (ja) 2009-03-26 2009-03-26 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム

Publications (2)

Publication Number Publication Date
JP2010231332A JP2010231332A (ja) 2010-10-14
JP5359446B2 true JP5359446B2 (ja) 2013-12-04

Family

ID=43047113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009076088A Expired - Fee Related JP5359446B2 (ja) 2009-03-26 2009-03-26 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム

Country Status (1)

Country Link
JP (1) JP5359446B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102040568B1 (ko) * 2017-09-19 2019-11-07 주식회사 엔코아 데이터베이스 인덱스 디자인의 자동 최적화 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105058A (ja) * 1993-09-30 1995-04-21 Omron Corp リレーショナル・データ・ベース・マネージメント・システム
JP2006004146A (ja) * 2004-06-17 2006-01-05 Ul Systems Inc データベース操作システム
JP2008084028A (ja) * 2006-09-27 2008-04-10 Toshiba Corp データベース検索システムおよびデータベース検索方法

Also Published As

Publication number Publication date
JP2010231332A (ja) 2010-10-14

Similar Documents

Publication Publication Date Title
AU2018272840B2 (en) Automated dependency analyzer for heterogeneously programmed data processing system
US9858270B2 (en) Converting data into natural language form
US9519706B2 (en) Multiple rule development support for text analytics
US11768677B2 (en) Method and system for software application optimization using natural language-based queries
JP2016099741A (ja) 情報抽出支援装置、方法およびプログラム
JP7168411B2 (ja) 情報処理システムおよび情報処理方法
JP5927886B2 (ja) クエリシステム及びコンピュータプログラム
JP4237813B2 (ja) 構造化文書管理システム
Kuć et al. Mastering Elasticsearch
JP7103763B2 (ja) 情報処理システムおよび情報処理方法
JP5359446B2 (ja) 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム
JP2008077285A (ja) Sql管理システムとsql管理方法およびプログラム
JP5641901B2 (ja) Sql検証システムとその方法およびプログラム
JP2008243075A (ja) 構造化文書管理装置及び方法
JP2020531953A5 (ja)
JP2011113298A (ja) 流用ソースコード解析システム及びプログラム並びに記録媒体
JP2006106907A (ja) 構造化文書管理システム、索引構築方法及びプログラム
JP4304226B2 (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2016085580A (ja) 文書情報管理システム、文書情報管理方法、及びプログラム
JP2013125429A (ja) 分析対象決定装置
JP6476638B2 (ja) 固有用語候補抽出装置、固有用語候補抽出方法、及び固有用語候補抽出プログラム
JP2003177923A (ja) ポーティング支援システムにおける予約語変換方法
JP2008077673A (ja) 構造化文書管理システム
Hung et al. Data Transformation Knowledge Reuse in Spreadsheet-Based Mashup Development Platform
JP2008077329A (ja) データベースアクセス設計情報解析システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees