JP5359446B2 - 情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム - Google Patents
情報処理システム、アクセスパス決定方法及びアクセスパス決定プログラム Download PDFInfo
- 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
Links
Images
Description
しかし、特許文献1は、問い合わせに対応する仮想連結インデックスをどのように特定するかについては記載されていない。つまり、特許文献1では、問い合わせの内容に基づいて、アクセスパスにおいて使用する最適なインデックスを指定する技術を開示したものではない。
しかし、特許文献2は、データベースに関する技術を開示したものではない。
しかし、特許文献3は、インデックスのセットを指定するのみであり、アクセスパスにおいて使用する最適なインデックスを指定する技術を開示したものではない。
まず、図1を参照して、本発明の実施の形態1にかかる情報処理システムの概要について説明する。図1は、本発明の実施の形態1にかかる情報処理システムの概要を示すブロック図である。
解析部90は、データベース言語によって記述された命令文において指定されている条件を抽出する。
最適化部91は、インデックス指定部92が選択したインデックスを使用するように、命令文を実行するときのアクセスパスを決定する。
インデックス指定部92は、解析部90が抽出した条件に基づいて、インデックス記憶部93に格納される情報から命令文を実行するときに使用するインデックスを選択する。
インデックス情報記憶部93は、命令文において指定される条件を示す複数の条件情報と、これら複数の条件情報のそれぞれに関連付けられ、命令文を実行するときに使用するインデックスを示すインデックス情報とを格納する。
DB94は、任意のデータを格納する。
まず、解析部90は、DB94から任意の情報を抽出する命令文80の入力を受けると、入力された命令文80において指定されている条件を抽出する。そして、解析部90は、抽出した条件を示す条件情報をインデックス指定部92に出力する。
次に、インデックス指定部92は、解析部90から出力された条件情報を取得し、取得した条件情報が示す条件に基づいて、インデックス記憶部93に格納される情報から命令文80を実行するときに使用するインデックスを選択する。そして、インデックス指定部92は、選択したインデックスを示すインデックス情報を最適化部91に出力する。
次に、最適化部91は、インデックス指定部92から出力されたインデックス情報を取得し、取得したインデックス情報が示すインデックスを使用するように、命令文80を実行するときのアクセスパスを決定する。
意味解析部12は、構文解析部11で分解されたSQL文50の意味を解析する。また、意味解析部12は、SQL文50において条件が指定されている場合は、指定されている条件を示す条件情報を条件取得部20に出力する。構文解析部11及び意味解析部12は、解析部として機能する。
最適化部13は、SQL文50を実行するためのアクセスパスを決定する。なお、最適化部13は、インデックス指定部21からインデックス示すインデックス情報を取得した場合は、取得した情報を使用するように、アクセスパスを決定する。
オブジェクト生成部14は、最適化部13において決定したアクセスパスを実行するためのオブジェクトを生成する。
実行処理部15は、オブジェクト生成部14で生成したオブジェクトを実行することによって、SQL文50を実行する。
インデックス指定部21は、条件取得部20から出力された条件情報を取得し、取得した条件情報に基づいて、インデックス情報記憶部30に格納される情報からSQL文50を実行するときに使用するインデックスを選択する。そして、インデックス指定部21は、選択したインデックスを示すインデックス情報を最適化部13に出力する。
インデックス情報更新部22は、利用者からインデックス情報記憶部30に対するインデックス情報更新指示60の入力を受けた場合に、この入力に応じてインデックス記憶部30に格納される情報の追加、変更または削除等の更新を行う。
DB40は、任意のデータを格納する。インデックス情報記憶部30又はDB40は、例えば、メモリやHDD(Hard Disc Drive)等の記憶装置から構成される。
なお、ここでは、図3に例示するDB40に格納されるテーブル41から、SQL文50によって情報を抽出する場合を例として説明する。テーブル41は、テーブル名が"T1"であり、"C1"、"C2"及び"C3"が列名となる。
DBMS10がSQL文50を受信すると、構文解析部11は、受信したSQL文50を取得し(S100)、取得したSQL文50を解析する(S101)。具体的には、図4に示すように、SQL文50においてWHERE句以下の構文を個々の要素に分解する。
そして、構文解析部11は、WHERE句以下の構文を個々の要素に分解した情報を構文解析結果として意味解析部12に出力する。
なお、分解や解析は、どのような手法によって行ってもよく、例えば、構文解析部11に"WHERE"、"AND"や"="等の個々の要素を識別することができる文字列情報を備えておき、それにより判断するなどしてもよい。
そして、意味解析部12は、条件"T1.C1='AAA'"と"T1.C2='BBB'"の文字列情報を条件情報として、条件取得部20に出力する。
そして、インデックス指定部21は、取得したインデックス情報を最適化部13に出力する。
次に、オブジェクト生成部14は、最適化部13が決定したアクセスパスを実行するオブジェクトを生成する。
そして、実行処理部15は、オブジェクト生成部14が生成したオブジェクトを実行する。これにより、DB40に対してSQL文50が実行される。
例えば、インデックス情報更新部22は、任意の条件情報とインデックス情報を含んだインデックス情報更新指示60を受けると、インデックス情報記憶部30のインデックス指定テーブルに、任意の条件情報とインデックス情報を追加する。また、例えば、インデックス情報更新部22は、インデックス指定テーブルにおける任意の"No"を指定したインデックス情報更新指示60を受けると、インデックス指定テーブルに含まれ任意の情報を削除し、任意の"No"、インデックス情報を含んだインデックス情報更新指示60をうけると、任意の"No"に対応するインデックス情報を更新する等を行う。
また、バッチAPのようなAPにおける埋め込みSQL文においてヒント情報を記述するのではなく、情報の更新が可能なインデックス指定テーブルを参照することにより、インデックスを選択しているため、APの修正をすることがなく、又は、APの修正が不可能な場合であっても、最適なインデックスを指定することが可能となる。
続いて、本発明の実施の形態2にかかる情報処理システムについて説明する。
なお、本発明の実施の形態2にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
構文解析部11は、SQL文50、51、52のいずれかを取得すると(S200)、取得したSQL文50、51、52の解析を行う(S201)。ここで、SQL文50、51、52の記述方法に異なっている場合であっても、構文解析部11は、図6に示すように、同じ構文解析結果を生成する。なお、これ以降の処理は、本実施の形態1と同様となるため、説明を省略する。
このように、本実施の形態2では、構文を解析するときに、条件となる要素として、記述方法の違いによって差異がでない表現によって文字列を抽出しているため、記述方法が異なっていても同一の条件を条件情報として抽出することができる。言い換えると、SQL文が同じ意味を有する場合には、異なる記述方法であっても同一の条件を抽出することができる。
続いて、本発明の実施の形態3にかかる情報処理システムについて説明する。
なお、本発明の実施の形態3にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
次に、意味解析部12は、構文解析部11から構文解析結果を取得すると(S302)、JOIN句において条件となる要素である"C1=C4"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C1=T2.C4"に変換する。
そして、意味解析部12は、条件"T1.C1=T2.C4"の文字列情報を条件情報として、条件取得部20に出力する。
そして、最適化部13は、インデックス指定部21からインデックス情報を取得すると(S309)、取得したインデックス情報が示すインデックス"I1"を使用するようにして、アクセスパスを決定する。なお、これ以降の処理は、実施の形態1と同様となるため、説明を省略する。
続いて、本発明の実施の形態4にかかる情報処理システムについて説明する。
なお、本発明の実施の形態4にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
次に、意味解析部12は、構文解析部11から構文解析結果を取得すると(S402)、ORDER BY句において条件となる要素である"C2"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C2"に変換する。
そして、意味解析部12は、条件"T1.C2"の文字列情報を条件情報として、条件取得部20に出力する。
そして、最適化部13は、インデックス指定部21からインデックス情報を取得すると(S409)、取得したインデックス情報が示すインデックス"I2"を使用するようにして、アクセスパスを決定する。なお、これ以降の処理は、実施の形態1と同様となるため、説明を省略する。
続いて、本発明の実施の形態5にかかる情報処理システムについて説明する。
なお、本発明の実施の形態5にかかる情報処理システムの構成は、図2に示す実施の形態1と同様であるため、説明を省略する。
次に、意味解析部12は、構文解析部11から構文解析結果を取得すると(S502)、GROUP BY句において条件となる要素である"C1"を特定し、さらに特定した条件をテーブル名も含めた条件"T1.C1"に変換する。なお、ここでは、GROUP BY句において指定されている要素"C1"を条件として特定する場合について例示したが、SUM、MAX、MIN、AVG、COUNT等の集合関数において指定されている要素"C3"を条件として特定してもよい。
そして、意味解析部12は、条件"T1.C1"の文字列情報を条件情報として、条件取得部20に出力する。
そして、最適化部13は、インデックス指定部21からインデックス情報を取得すると(S509)、取得したインデックス情報が示すインデックス"I1"を使用するようにして、アクセスパスを決定する。なお、これ以降の処理は、実施の形態1と同様となるため、説明を省略する。
例えば、本実施の形態では、本発明をSQLに適用した場合について例示したが、SQLではなく、SQLと同様にインデックスを使用するデータベース言語であれば、どのようなものであってもよい。
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジを含む。また、通信媒体には、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体を含み、インターネットも含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
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)
- SQL言語によって記述され、データベースから任意の情報を抽出するSQL文の入力に応じてアクセスパスを決定する情報処理システムであって、
SQL文におけるテーブル名と列名が含まれる条件情報と、前記条件情報のそれぞれに関連付けられ、前記SQL文を実行するときに使用するインデックスを示すインデックス情報とを複数格納するインデックス情報記憶部と、
前記SQL文において指定されている列名と本来的なテーブル名とを抽出し、抽出した列名とテーブル名を含む条件情報を生成することで、SQL文が同じ意味を有する場合には、異なる記述方式であっても同一の文字列となる条件情報を生成する解析部と、
前記解析部が生成した条件情報に基づいて、前記インデックス情報記憶部に格納される情報から前記SQL文を実行するときに使用するインデックスを選択するインデックス指定部と、
前記インデックス指定部が選択したインデックスを使用するように、前記SQL文を実行するときのアクセスパスを決定する最適化部とを備えた情報処理システム。 - 前記情報処理システムは、さらに利用者からの入力に応じて、前記インデックス情報記憶部に格納される情報を更新する入力処理部を備えた請求項1に記載の情報処理システム。
- SQL言語によって記述されたSQL文に基づいて、アクセスパスを決定するアクセスパス決定方法であって、
コンピュータが、前記SQL文において指定されている列名と本来的なテーブル名とを抽出し、抽出した列名とテーブル名を含む条件情報を生成することで、SQL文が同じ意味を有する場合には、異なる記述方式であっても同一の文字列となる条件情報を生成するステップと、
前記コンピュータが、SQL文におけるテーブル名と列名が含まれ条件情報と、前記条件情報のそれぞれに関連付けられ、前記SQL文を実行するときに使用するインデックスを示すインデックス情報とを複数格納する記憶装置を参照して、前記生成した条件情報に基づいて、前記SQL文を実行するときに使用するインデックスを選択するステップと、
前記コンピュータが、前記選択したインデックスを使用するように、前記SQL文を実行するときのアクセスパスを決定するステップとを備えたアクセスパス決定方法。 - SQL言語によって記述されたSQL文に基づいて、アクセスパスを決定するアクセスパス決定プログラムであって、
前記SQL文において指定されている列名と本来的なテーブル名とを抽出し、抽出した列名とテーブル名を含む条件情報を生成することで、SQL文が同じ意味を有する場合には、異なる記述方式であっても同一の文字列となる条件情報を生成するステップと、
SQL文におけるテーブル名と列名が含まれる条件情報と、前記条件情報のそれぞれに関連付けられ、前記SQL文を実行するときに使用するインデックスを示すインデックス情報とを複数格納するインデックス情報記憶部を参照して、前記生成した条件情報に基づいて、前記SQL文を実行するときに使用するインデックスを選択するステップと、
前記選択したインデックスを使用するように、前記SQL文を実行するときのアクセスパスを決定するステップとをコンピュータに実行させるアクセスパス決定プログラム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102040568B1 (ko) * | 2017-09-19 | 2019-11-07 | 주식회사 엔코아 | 데이터베이스 인덱스 디자인의 자동 최적화 방법 |
Family Cites Families (3)
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 | データベース検索システムおよびデータベース検索方法 |
-
2009
- 2009-03-26 JP JP2009076088A patent/JP5359446B2/ja not_active Expired - Fee Related
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 |