(57)【要約】【課題】より確実に問い合わせの最適化を行うことができるデータベース管理システム及び問い合わせ最適化方法を提供する。【解決手段】制御部１１は、所定の問い合わせについて、候補の実行プランを生成し、生成した全実行プランを実行し、各実行プランの実際のコストを取得し、最小のコストの実行プランを選択し、問い合わせとともに最適実行プランファイル１２２に登録する。また、制御部１１は、ユーザが入力した問い合わせを受け付け、問い合わせが最適実行プランファイル１２２に登録されているかを判別し、登録されている場合、問い合わせとともに登録されている実行プランを最適実行プランファイル１２２から読み出して実行し、実行結果を出力する。また、問い合わせが最適実行プランファイル１２２に登録されていない場合、一般的な最適化処理を行って実行プランを選択して実行し、実行結果を出力する。【選択図】  図１
2005018430.tif 000002
【特許請求の範囲】
【請求項１】
データベースに対する所定の問い合わせについて、候補となる実行プランを生成し、生成された全ての実行プランを実行し、各実行プランの実際のコストを取得するコスト取得手段と、
前記コスト取得手段により取得された全ての実行プランのコストの中から最小のコストの実行プランを選択する選択手段と、
前記選択手段により選択された実行プランと前記問い合わせを関連付けて最適実行プランファイルに登録する登録手段と、
ユーザにより入力された問い合わせについて、前記最適実行プランファイルを参照してデータベースの検索を行う検索実行手段と、
を備えることを特徴とするデータベース管理システム。
【請求項２】
前記検索実行手段は、
ユーザが入力した問い合わせを受け付ける手段と、
前記問い合わせが前記最適実行プランファイルに登録されているか否かを判別する手段と、
前記問い合わせが前記最適実行プランファイルに登録されていると判別された場合、該問い合わせに関連付けて登録されている実行プランを前記最適実行プランファイルから読み出して実行する第１のプラン実行手段と、
前記第１のプラン実行手段による実行結果を出力する手段と、
前記問い合わせが前記最適実行プランファイルに登録されていないと判別された場合、該問い合わせについて一般的な最適化処理を行って実行プランを選択し、該選択した実行プランを実行する第２のプラン実行手段と、
前記第２のプラン実行手段による実行結果を出力する手段と、
を備えることを特徴とする請求項１に記載のデータベース管理システム。
【請求項３】
前記コスト取得手段は、一定期間毎に、所定の問い合わせについて実行プランの実際のコストを取得する処理を行い、
前記登録手段は、前記選択手段により選択された実行プランの問い合わせが既に登録されている場合には、登録内容を前記選択された実行プランで更新する、
ことを特徴とする請求項１又は２に記載のデータベース管理システム。
【請求項４】
データベース管理システムにおける問い合わせ最適化方法であって、
所定の問い合わせについて、候補となる実行プランを生成し、生成された全ての実行プランを実行し、各実行プランの実際のコストを取得するコスト取得ステップと
前記コスト取得ステップにより取得された全ての実行プランのコストの中から最小のコストの実行プランを選択する選択ステップと、
前記選択ステップにより選択した実行プランと前記問い合わせを関連付けて最適実行プランファイルに登録する登録ステップと、
ユーザにより入力された問い合わせについて、前記最適実行プランファイルを参照してデータベースの検索を行う検索実行ステップと、
を備えることを特徴とする問い合わせ最適化方法。
【請求項５】
前記検索実行ステップは、
ユーザが入力した問い合わせを受け付けるステップと、
前記問い合わせが前記最適実行プランファイルに登録されているか否かを判別するステップと、
前記問い合わせが前記最適実行プランファイルに登録されていると判別された場合、該問い合わせに関連付けて登録されている実行プランを前記最適実行プランファイルから読み出して実行する第１のプラン実行ステップと、
前記第１のプラン実行ステップによる実行結果を出力するステップと、
前記問い合わせが前記最適実行プランファイルに登録されていないと判別された場合、該問い合わせについて一般的な最適化処理を行って実行プランを選択し、該選択した実行プランを実行する第２のプラン実行ステップと、
前記第２のプラン実行ステップによる実行結果を出力するステップと、
を備えることを特徴とする請求項４に記載の問い合わせ最適化方法。
【請求項６】
前記コスト取得ステップは、一定期間毎に、所定の問い合わせについて実行プランの実際のコストを取得する処理を行い、
前記登録ステップは、前記選択ステップにより選択された実行プランの問い合わせが既に登録されている場合には、登録内容を前記選択された実行プランで更新する、
ことを特徴とする請求項４又は５に記載の問い合わせ最適化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データベースについて入力された問い合わせについて最適な実行プランを選択するためのデータベース管理システム（ＤＢＭＳ）及び問い合わせ最適化方法に関する。
【０００２】
【従来の技術】
従来、一般的なＤＢＭＳでは、問い合わせ（質問、クエリ）が入力されると、問い合わせについて、効率の良い、問い合わせを実行するための手順（実行プラン）を選択する最適化処理が行われる。この問い合わせの最適化処理はデータベース処理においては極めて重要であり、例えば、最適な実行プランであれば数秒以内で処理が終わるような問い合わせであっても、実行プランの選択ミスにより、処理に数十分かかってしまうということもあり得る。
【０００３】
例えば、問い合わせと意味的に等価な問い合わせを用意して、問い合わせに対する実行プランの選択幅を広げることにより、問い合わせの最適化を図るシステムもある（特許文献１参照）。
【０００４】
【特許文献１】
特開平５−３３４３６８号公報（第３頁、第１図）
【０００５】
【発明が解決しようとする課題】
一般的に、実行プランの最適化処理では、複数の候補の実行プランについて、統計情報（表の大きさ、属性値の分布等）等を用いて、それぞれのコストの見積もり値を算出し、そのコストの見積もり値が最小のプランを選択する。
しかし、例えば、データがディスク中でフラグメンテーションを起こしている場合等には、上記のようなコストの見積もり値を算出する方法では、実際に最適な実行プランを選択することは困難であった。
【０００６】
この発明は、上記実状に鑑みてなされたものであり、より確実に問い合わせの最適化を行うことができるデータベース管理システム及び問い合わせ最適化方法を提供することを目的とする。
また、データベース運用時のパフォーマンスを向上させることができるデータベース管理システム及び問い合わせ最適化方法を提供することを他の目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、この発明の第１の観点に係るデータベース管理システムは、
所定の問い合わせについて、候補となる実行プランを生成し、生成された全ての実行プランを実行し、各実行プランの実際のコストを取得するコスト取得手段と、
前記コスト取得手段により取得された全ての実行プランのコストの中から最小のコストの実行プランを選択する選択手段と、
前記選択手段により選択された実行プランと前記問い合わせを関連付けて最適実行プランファイルに登録する登録手段と、
ユーザにより入力された問い合わせについて、前記最適実行プランファイルを参照してデータベースの検索を行う検索実行手段と、
を備えることを特徴とする。
【０００８】
このような構成によれば、問い合わせの候補として生成される全ての実行プランについて実際のコストを求め、現実に最小のコストとなる実行プランを最適実行プランとして選択することにより、実際のシステムのハードウェア性能や実際のデータベースの状態等に基づいて、確実に問い合わせの最適化を行うことができる。また、このようにして最適化された問い合わせの実行プランをデータベースの検索に用いることにより、データベース運用時のパフォーマンスが向上する。
【０００９】
前記検索実行手段は、
ユーザが入力した問い合わせを受け付ける手段と、
前記問い合わせが前記最適実行プランファイルに登録されているか否かを判別する手段と、
前記問い合わせが前記最適実行プランファイルに登録されていると判別された場合、該問い合わせに関連付けて登録されている実行プランを前記最適実行プランファイルから読み出して実行する第１のプラン実行手段と、
前記第１のプラン実行手段による実行結果を出力する手段と、
前記問い合わせが前記最適実行プランファイルに登録されていないと判別された場合、該問い合わせについて一般的な最適化処理を行って実行プランを選択し、該選択した実行プランを実行する第２のプラン実行手段と、
前記第２のプラン実行手段による実行結果を出力する手段と、
を備えてもよい。
これにより、実際のコストに基づいて選択された実行プランを用いてデータベース検索を行うため、データベース運用時のパフォーマンスが向上する。
【００１０】
前記コスト取得手段は、一定期間毎に、所定の問い合わせについて実行プランの実際のコストを取得する処理を行ってもよく、
前記登録手段は、前記選択手段により選択された実行プランの問い合わせが既に登録されている場合には、登録内容を前記選択された実行プランで更新するようにしてもよい。
【００１１】
また、この発明の第２の観点に係る方法は、
データベース管理システムにおける問い合わせ最適化方法であって、
所定の問い合わせについて、候補となる実行プランを生成し、生成された全ての実行プランを実行し、各実行プランの実際のコストを取得するコスト取得ステップと
前記コスト取得ステップにより取得された全ての実行プランのコストの中から最小のコストの実行プランを選択する選択ステップと、
前記選択ステップにより選択した実行プランと前記問い合わせを関連付けて最適実行プランファイルに登録する登録ステップと、
ユーザにより入力された問い合わせについて、前記最適実行プランファイルを参照してデータベースの検索を行う検索実行ステップと、
を備えることを特徴とする。
【００１２】
このような構成によれば、問い合わせの候補として生成される全ての実行プランについて実際のコストを求め、現実に最小のコストとなる実行プランを最適実行プランとして選択することにより、実際のシステムのハードウェア性能や実際のデータベースの状態等に基づいて、より確実に問い合わせの最適化を行うことができる。また、このようにして最適化された問い合わせの実行プランをデータベースの検索に用いることにより、データベース運用時のパフォーマンスが向上する。
【００１３】
前記検索実行ステップは、
ユーザが入力した問い合わせを受け付けるステップと、
前記問い合わせが前記最適実行プランファイルに登録されているか否かを判別するステップと、
前記問い合わせが前記最適実行プランファイルに登録されていると判別された場合、該問い合わせに関連付けて登録されている実行プランを前記最適実行プランファイルから読み出して実行する第１のプラン実行ステップと、
前記第１のプラン実行ステップによる実行結果を出力するステップと、
前記問い合わせが前記最適実行プランファイルに登録されていないと判別された場合、該問い合わせについて一般的な最適化処理を行って実行プランを選択し、該選択した実行プランを実行する第２のプラン実行ステップと、
前記第２のプラン実行ステップによる実行結果を出力するステップと、
を備えてもよい。
これにより、実際のコストに基づいて選択された実行プランを用いてデータベース検索を行うため、データベース運用時のパフォーマンスが向上する。
【００１４】
前記コスト取得ステップは、一定期間毎に、所定の問い合わせについて実行プランの実際のコストを取得する処理を行ってもよく、
前記登録ステップは、前記選択ステップにより選択された実行プランの問い合わせが既に登録されている場合には、登録内容を前記選択された実行プランで更新するようにしてもよい。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態に係るデータベース管理システムを図面を参照して説明する。
【００１６】
この発明の実施形態に係るデータベース管理システムの機能構成図を図１に示す。このデータベース管理システム１は、例えば、制御部１１、記憶部１２、通信制御部１３等を備えるコンピュータ等から構成される。
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等から構成され、記憶部１２に記憶される動作プログラム等を読み出して実行することにより、管理制御部１１１、構文解析部１１２、最適化処理部１１３、プラン実行部１１４等を論理的に実現する。
【００１７】
管理制御部１１１は、問い合わせ実行処理、問い合わせ実行処理のための準備処理等の実行を制御する。
例えば、準備処理では、管理制御部１１１は、構文解析部１１２、最適化処理部１１３、プラン実行部１１４を制御して、予め用意された準備処理用の問い合わせ（クエリ）について、構文解析処理を行った後、候補となる実行プランを生成・実行し、全候補の中から実際のコスト（例えば、実行時間等）が最もかからないプランを選択し、それを対応する問い合わせと関連付けて記憶部１２の最適実行プランファイル１２２に記憶する。なお、準備処理の実行タイミングは任意に設定可能であり、例えば、図示せぬタイマを用いて所定時間毎に実行するようにしてもよい。
【００１８】
また、問い合わせ実行処理では、管理制御部１１１は、構文解析部１１２、最適化処理部１１３、プラン実行部１１４を制御して、他のコンピュータから受け付けた、ユーザにより入力された問い合わせ（クエリ）について、構文解析処理を行った後、問い合わせが最適実行プランファイル１２２に登録されているか否かを判別し、登録されている場合には、その問い合わせに関連付けて登録されている実行プランを取り出し、それに従ってデータベース１２１の検索を行う。また、問い合わせが登録されていない場合には、一般的な統計情報等に基づく最適化処理を行って実行プランを選択し、選択した実行プランに従ってデータベース１２１の検索を行う。そして、データベース１２１の検索結果を検索要求元のコンピュータに返信する。なお、問い合わせ実行処理の実行タイミングは、例えば、ネットワークを介して他のコンピュータから問い合わせを含む検索要求を受信したとき等である。
【００１９】
構文解析部１１２は、パーサ機能等を有し、管理制御部１１１からの指示に従って、入力された問い合わせについて構文解析チェックを行う。
【００２０】
最適化処理部１１３は、オプティマイザ機能等を有し、管理制御部１１１からの指示に従って、構文解析部１１２より構文解析チェックがなされた問い合わせについて最適な実行プランを決定する。
具体的には、実際のコストに基づいて最適な実行プランを選択することを管理制御部１１１から指示された場合、問い合わせについて候補となる実行プランを生成し、生成した各実行プランをプラン実行部１１４に渡して実行させ、実際のコスト値を計測して、全ての実行プランについて実際のコストを取得する。例えば、コストが実行プランの実行時間の場合には、実行プランの実行開始から完了までの時間を計時する。そして、最もコストの小さいものを最適な実行プランとして決定し、決定した最適実行プランを対応する問い合わせとともに最適実行プランファイル１２２に登録する。最適実行プランファイル１２２の登録データ（問い合わせ及び最適実行プラン）の一例を図２に示す。
【００２１】
また、一般的な最適化処理を管理制御部１１１から指示された場合、最適化処理部１１３は、例えば、候補となる実行プランを生成し、各実行プランについて、統計情報（表の大きさ、属性値の分布等）等に基づいて、コストの見積もり値を算出し、最小のコスト値の実行プランを選択するような、一般的な最適化処理を実行し、選択した実行プランをプラン実行部１１４に渡す。
【００２２】
プラン実行部１１４は、管理制御部１１１からの指示に従って、最適化処理部１１３から渡された実行プランが示す手順でデータベースの検索を行う。
【００２３】
記憶部１２は、ハードディスク装置等から構成され、データベース１２１と、最適実行プランファイル１２２と、を備える。また、記憶部１２は、制御部１１が実行する動作プログラムや、処理に必要な各種のデータを記憶する。
データベース１２１には、検索対象となる各種データが記憶されている。
最適実行プランファイル１２２には、問い合わせとそれに対応する最適実行プランが関連付けて格納されている。
【００２４】
通信制御部１３は、ネットワークに接続され、他のコンピュータとの間でデータ通信を行うためのものである
【００２５】
次に、本実施形態のデータベース管理システム１の動作について説明する。
まず、準備処理について図３のフローチャートを参照して説明する。
管理制御部１１１は、例えば所定時間毎のタイミングで、準備処理を開始し、処理対象の問い合わせを記憶部１２から取り出し（ステップＳ１）、問い合わせの構文解析チェックを構文解析部１１２に指示する。これに応じて、構文解析部１１２は、指示された問い合わせについて構文解析チェックを行う（ステップＳ２）。
問い合わせの構文解析チェックが終わると、管理制御部１１１は、最適実行プランの選出を最適化処理部１１３に指示する。これに応じて、最適化処理部１１３は、問い合わせについて候補となる実行プランを生成し（ステップＳ３）、生成した各実行プランを順次、プラン実行部１１４に渡して実行させて、実際のコストを測定する処理を全ての実行プランについて行う（ステップＳ４、５）。
そして、最適化処理部１１３は、各実行プランを実際に実行して得たコストから最適な、すなわち、コストの最も小さい実行プランを最適実行プランとして選択する（ステップＳ６）。そして、管理制御部１１１は、最適化処理部１１３により選択された最適実行プランを、問い合わせと関連付けて、最適実行プランファイル１２２に登録して（ステップＳ７）、本処理を終了する。なお、ステップＳ７において、対応する問い合わせについて既に登録されている場合には、登録されているデータを更新する。
【００２６】
処理対象の問い合わせが複数有る場合には、各問い合わせについて上記準備処理を実行する。例えば、管理制御部１１１が記憶部１２に設定されている複数の問い合わせについて上記準備処理を順次実行するようにしてもよい。また、処理対象の問い合わせは、予め管理者等により図示せぬ入力部から入力され、設定されるようにしてもよく、また、管理制御部１１１が過去の検索ログ等を参照して、所定の基準により（例えば実行回数の多い等）問い合わせを選出し、設定するようにしてもよい。
【００２７】
次に、上記準備処理により得られた最適実行プランを用いて、ユーザにより入力された問い合わせを実行する問い合わせ実行処理について図４のフローチャートを参照して説明する。
管理制御部１１１は、例えば、他のコンピュータから問い合わせを含む検索要求をネットワークを介して受信すると（ステップＳ１１）、受信した問い合わせについて構文解析チェックを構文解析部１１２に指示する。これに応じて、構文解析部１１２は、指示された問い合わせについて構文解析チェックを行う（ステップＳ１２）。
問い合わせの構文解析チェックが終わると、管理制御部１１１は、問い合わせが準備処理によって事前に最適化されているか、すなわち、問い合わせが最適実行プランファイル１２２に登録されているか否かを判別する（ステップＳ１３）。
問い合わせが最適実行プランファイル１２２に登録されていると判別した場合（ステップＳ１３：ＹＥＳ）、管理制御部１１１は、その問い合わせに対応する最適実行プランを最適実行プランファイル１２２から読み出して、プラン実行部１１４に渡して実行させる（ステップＳ１５）。
【００２８】
また、問い合わせが最適実行プランファイル１２２に登録されていないと判別した場合（ステップＳ１３：ＮＯ）、管理制御部１１１は、一般的な最適化処理の実行を最適化処理部１１３に指示する。これに応じて、最適化処理部１１３は、実行プランの候補を生成し、各実行プランについてコストの見積もり値を算出し、コストが最小の実行プランを選択し、プラン実行部１１４に渡して実行させる（ステップＳ１４、Ｓ１５）。
そして、管理制御部１１１は、ステップＳ１５におけるプラン実行部１１４による検索処理の実行結果を検索要求元のコンピュータにネットワークを介して送信する（ステップＳ１６）。
【００２９】
以上説明したように、本発明によれば、問い合わせの候補として生成される全ての実行プランについて実際のコストを求め、現実に最小のコストとなる実行プランを最適実行プランとして選択することにより、実際のシステムのハードウェア性能や実際のデータベースの状態等に基づいて、確実に問い合わせの最適化を行うことができる。これにより、データベース運用時のパフォーマンスが向上する。
【００３０】
なお、上記実施例では、問い合わせ実行処理において、問い合わせが最適実行プランファイル１２２に登録されていない場合に、一般的な最適化処理を行うようにしているが、これに限定されず、例えば、準備処理のように、生成された全ての実行プランを実行し、最小のコストの実行プランを選択してもよい。さらに、選択した実行プランを問い合わせとともに、最適実行プランファイル１２２に登録するようにしてもよい。
【００３１】
また、上記のシステム構成は一例であり、例えば、データベース１２１は本システムとネットワークにより接続された他のコンピュータが有するようにしてもよい。
また、本システムの機能を複数台のコンピュータにより実現してもよい。例えば、準備処理を行う第１のコンピュータと、問い合わせ実行処理を行う第２のコンピュータと、を備えても良く、データベース１２１及び最適実行プランファイルを、第１のコンピュータ、第２のコンピュータ、第１と第２のコンピュータとネットワークで接続された他コンピュータ、のいずれかが有する構成としてもよい。この場合、第１のコンピュータは、上記データベース管理システム１が有する機能のうち、準備処理を行うための処理プログラム及び必要なデータを記憶部に記憶し、制御部が記憶部から処理プログラムを読み出して実行することにより、準備処理を実行するための管理制御部、構文解析部、最適化処理部、プラン実行部を実現する。また、第２のコンピュータは、上記データベース管理システム１が有する機能のうち、問い合わせ実行処理を行うための処理プログラム及び必要なデータを記憶部に記憶し、制御部が記憶部から処理プログラムを読み出して実行することにより、準備処理を実行するための管理制御部、構文解析部、最適化処理部、プラン実行部を実現する。
【００３２】
また、上記説明では、問い合わせはネットワークを介して他のコンピュータから受信しているが、これに限定されず、例えば、本システムが備える図示せぬ入力部からユーザが入力し、入力された問い合わせについて上記の各種処理を行うようにしてもよい。
【００３３】
なお、この発明のシステムは、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体（ＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等）に格納して配布し、該プログラムをコンピュータにインストールすることにより、上述の処理を実行するデータベース管理システム１等を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えばコンピュータにダウンロード等するようにしてもよい。
また、上述の機能を、ＯＳが分担又はＯＳとアプリケーションの共同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【００３４】
【発明の効果】
このような構成によれば、より確実に問い合わせの最適化を行うことができる。
【図面の簡単な説明】
【図１】この発明の実施の形態に係るデータベース管理システムの構成を示す図である。
【図２】最適実行プランファイルの登録データの一例を示す図である。
【図３】準備処理を説明するためのフローチャートである。
【図４】問い合わせ実行処理を説明するためのフローチャートである。
【符号の説明】
１            データベース管理システム
１１          制御部
１１１        管理制御部
１１２        構文解析部
１１３        最適化処理部
１１４        プラン実行部
１２          記憶部
１２１        データベース
１２２        最適実行プランファイル
１３          通信制御部
【図１】
2005018430.tif 000003
【図２】
2005018430.tif 000004
【図３】
2005018430.tif 000005
【図４】
2005018430.tif 000006