(57)【要約】【課題】検索結果の提供を高速化することが可能なデータベース管理システム、端末装置及び方法を提供することにある。【解決手段】実施形態によれば、端末装置は、第１クエリを取得し、統合サーバ装置に送信する。統合サーバ装置は、第１クエリを複数の第２クエリに分解し、当該複数の第２クエリの各々に基づく検索結果の送信先を端末装置とする実行計画を作成する。統合サーバ装置は、作成された実行計画を実行し、第２クエリ及び送信先情報を複数のデータベースサーバ装置の各々に送信する。複数のデータベースサーバ装置の各々は、第２クエリに基づいてデータベースからデータを検索し、検索されたデータを、送信先情報によって示される端末装置に送信する。複数のデータベースサーバ装置の各々によって送信されたデータは、端末装置において統合処理が実行されることによってユーザに提供される。【選択図】図６
2020134961.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって使用される端末装置と、統合サーバ装置と、データを格納するデータベースを有する複数のデータベースサーバ装置とを備えるデータベース管理システムにおいて、
前記端末装置は、
前記データベースからデータを検索するための第１クエリを取得する取得手段と、
前記取得された第１クエリを前記統合サーバ装置に送信する第１送信手段と
を含み、
前記統合サーバ装置は、
前記第１送信手段によって送信された第１クエリを前記複数のデータベースサーバ装置の各々が有するデータベースに対する複数の第２クエリに分解し、当該複数の第２クエリの各々に基づく前記複数のデータベースサーバ装置の各々における検索結果の送信先を前記端末装置とする実行計画を作成する作成手段と、
前記作成された実行計画を実行し、前記第２クエリ及び前記端末装置を示す送信先情報を前記複数のデータベースサーバ装置の各々に送信する実行手段と
を含み、
前記複数のデータベースサーバ装置の各々は、
前記実行手段によって送信された第２クエリに基づいて当該データベースサーバ装置が有するデータベースからデータを検索する検索処理手段と、
前記検索されたデータを、前記実行手段によって送信された送信先情報によって示される端末装置に送信する第２送信手段と
を含み、
前記複数のデータベースサーバ装置の各々に含まれる第２送信手段によって送信されたデータは、前記端末装置において統合処理が実行されることによって前記ユーザに提供される
データベース管理システム。
【請求項２】
前記作成手段は、
前記作成された実行計画に基づいて、前記統合処理に必要な前記端末装置のメモリ使用量を算出する算出手段を更に含み、
前記算出されたメモリ使用量に基づいて、前記複数のデータベースサーバ装置における検索結果の送信先を変更する
請求項１記載のデータベース管理システム。
【請求項３】
前記算出手段は、前記複数のデータベースサーバ装置の各々が有するデータベースに格納されているデータのサイズに基づいて前記メモリ使用量を算出する請求項２記載のデータベース管理システム。
【請求項４】
前記統合サーバ装置は、前記端末装置のメモリ使用量の上限値を設定する設定手段を更に含み、
前記作成手段は、前記算出されたメモリ使用量が前記設定された上限値を超える場合、前記複数のデータベースサーバ装置の各々における検索結果の全ての送信先を前記端末装置から前記統合サーバ装置に変更する
請求項２または３記載のデータベース管理システム。
【請求項５】
前記統合サーバ装置は、前記端末装置のメモリ使用量の上限値を設定する設定手段を更に含み、
前記作成手段は、前記算出されたメモリ使用量が前記設定された上限値を超える場合、前記複数のデータベースサーバ装置の各々における検索結果のうちの一部の送信先を前記端末装置から前記統合サーバ装置に変更する
請求項２または３記載のデータベース管理システム。
【請求項６】
前記検索結果の送信先を前記端末装置から前記統合サーバ装置に変更するデータベースサーバ装置の数は、前記算出されたメモリ使用量及び前記設定された上限値に基づいて決定される請求項５記載のデータベース管理システム。
【請求項７】
前記端末装置は、前記端末装置において受信されるデータのデータ量を監視する監視手段を更に含み、
前記作成手段は、前記監視されたデータ量に基づいて、前記複数のデータベースサーバ装置における検索結果の送信先を変更する
請求項１記載のデータベース管理システム。
【請求項８】
統合サーバ装置とデータを格納するデータベースを有する複数のデータベースサーバ装置とを備えるデータベース管理システムにおいて、
前記統合サーバ装置及び前記複数のデータベースサーバ装置とは、ユーザによって使用される端末装置と通信可能に接続され、
前記統合サーバ装置は、前記端末装置によって送信された前記データベースからデータを検索するための第１クエリを前記複数のデータベースサーバ装置の各々が有するデータベースに対する複数の第２クエリに分解し、当該複数の第２クエリの各々に基づく前記複数のデータベースサーバ装置の各々における検索結果の送信先を前記端末装置とする実行計画を作成する作成手段と、
前記作成された実行計画を実行し、前記第２クエリ及び前記端末装置を示す送信先情報を前記複数のデータベースサーバ装置の各々に送信する実行手段と
を含み、
前記複数のデータベースサーバ装置の各々は、
前記実行手段によって送信された第２クエリに基づいて当該データベースサーバ装置が有するデータベースからデータを検索する検索処理手段と、
前記検索されたデータを、前記実行手段によって送信された送信先情報によって示される端末装置に送信する送信手段と
を含み、
前記複数のデータベースサーバ装置の各々に含まれる送信手段によって送信されたデータは、前記端末装置において統合処理が実行されることによって前記ユーザに提供される
データベース管理システム。
【請求項９】
統合サーバ装置及びデータを格納するデータベースを有する複数のデータベースサーバ装置と通信可能に接続される端末装置において、
前記データベースからデータを検索するための第１クエリを取得する取得手段と、
前記取得された第１クエリを前記統合サーバ装置に送信する送信手段と、
前記送信された第１クエリを分解することによって得られる前記複数のデータベースサーバ装置の各々が有するデータベースに対する複数の第２クエリの各々に基づいて前記複数のデータベースサーバ装置が有するデータベースの各々から検索されたデータを、当該複数のデータベースサーバ装置の各々から受信する受信手段と、
前記受信されたデータを統合する統合処理を実行する実行手段と、
前記統合処理が実行された結果をユーザに提供する提供手段と
を具備する端末装置。
【請求項１０】
ユーザによって使用される端末装置と、統合サーバ装置と、データを格納するデータベースを有する複数のデータベースサーバ装置とを備えるデータベース管理システムが実行する方法であって、
前記データベースからデータを検索するための第１クエリを取得するステップと、
前記取得された第１クエリを前記端末装置から前記統合サーバ装置に送信するステップと、
前記送信された第１クエリを前記複数のデータベースサーバ装置の各々が有するデータベースに対する複数の第２クエリに分解し、当該複数の第２クエリの各々に基づく前記複数のデータベースサーバ装置の各々における検索結果の送信先を前記端末装置とする実行計画を作成する作成手段と、
前記作成された実行計画を実行し、前記第２クエリ及び前記端末装置を示す送信先情報を前記統合サーバ装置から前記複数のデータベースサーバ装置の各々に送信するステップと、
前記送信された第２クエリに基づいて前記複数のデータベースサーバ装置が有するデータベースの各々からデータを検索するステップと、
前記検索されたデータを、前記複数のデータベースサーバ装置の各々から、前記送信された送信先情報によって示される端末装置に送信するステップと、
前記複数のデータベースサーバ装置の各々から送信されたデータを、前記端末装置において統合処理して前記ユーザに提供するステップと
を具備する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データベース管理システム、端末装置及び方法に関する。
【背景技術】
【０００２】
近年では、複数のデータベースから横断的にデータを検索（取得）し、当該検索結果をユーザ（クライアント端末）に提供することが可能なデータベース管理システムが知られている。このようなデータベース管理システム（分散型システム）は、例えばユーザが集中型システムと同様に扱うことができる透過性を有するため、当該ユーザにとって利便性が高い。
【０００３】
しかしながら、上記したデータベース管理システムは、複数のデータベースに接続された統合サーバ装置（複数のデータベースのハブとなるサーバ装置）を備える構成を有し、当該統合サーバ装置を介して検索結果がユーザに提供（返却）される。
【０００４】
このため、検索結果をユーザに提供する際にはオーバーヘッド（ネットワークを経由して検索結果を送信する処理）が発生し、検索結果の提供の高速化を妨げる要因となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２１１６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明が解決しようとする課題は、検索結果の提供を高速化することが可能なデータベース管理システム、端末装置及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態によれば、ユーザによって使用される端末装置と、統合サーバ装置と、データを格納するデータベースを有する複数のデータベースサーバ装置とを備えるデータベース管理システムが提供される。前記端末装置は、前記データベースからデータを検索するための第１クエリを取得する取得手段と、前記取得された第１クエリを前記統合サーバ装置に送信する第１送信手段とを含む。前記統合サーバ装置は、前記第１送信手段によって送信された第１クエリを前記複数のデータベースサーバ装置の各々が有するデータベースに対する複数の第２クエリに分解し、当該複数の第２クエリの各々に基づく前記複数のデータベースサーバ装置の各々における検索結果の送信先を前記端末装置とする実行計画を作成する作成手段と、前記作成された実行計画を実行し、前記第２クエリ及び前記端末装置を示す送信先情報を前記複数のデータベースサーバ装置の各々に送信する実行手段とを含む。前記複数のデータベースサーバ装置の各々は、前記実行手段によって送信された第２クエリに基づいて当該データベースサーバ装置が有するデータベースからデータを検索する検索処理手段と、前記検索されたデータを、前記実行手段によって送信された送信先情報によって示される端末装置に送信する第２送信手段とを含む。前記複数のデータベースサーバ装置の各々に含まれる第２送信手段によって送信されたデータは、前記端末装置において統合処理が実行されることによって前記ユーザに提供される。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係るＤＢ管理システムのネットワーク構成の一例を示す図。
【図２】クライアント端末のシステム構成の一例を示す図。
【図３】クライアント端末の機能構成の一例を示すブロック図。
【図４】統合サーバ装置の機能構成の一例を示すブロック図。
【図５】第１ＤＢサーバ装置の機能構成の一例を示すブロック図。
【図６】ＤＢ管理システムの処理手順の一例を示すシーケンスチャート。
【図７】実行計画作成処理の処理手順の一例を示すフローチャート。
【図８】設定画面の一例を示す図。
【図９】クライアント処理の処理手順の一例を示すフローチャート。
【図１０】ＤＢ管理システムの第１動作例の概要を示す図。
【図１１】本実施形態の比較例の動作の概要を示す図。
【図１２】ＤＢ管理システムの第２動作例の概要を示す図。
【図１３】ＤＢ管理システムの第３動作例の概要を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態について説明する。  
図１は、本実施形態に係るデータベース管理システム（以下、ＤＢ管理システムと表記）のネットワーク構成の一例を示す。
【００１０】
図１に示すように、ＤＢ管理システム１は、クライアント端末１０、統合サーバ装置２０、第１ＤＢサーバ装置（第１データベースサーバ装置）３１及び第２ＤＢサーバ装置（第２データベースサーバ装置）３２を備える。
【００１１】
本実施形態において、クライアント端末１０、統合サーバ装置２０及び第１ＤＢサーバ装置３１は、互いに通信可能に接続されている。また、クライアント端末１０、統合サーバ装置２及び第２ＤＢサーバ装置３２は、互いに通信可能に接続されている。
【００１２】
クライアント端末１０は、ユーザによって使用される端末装置である。クライアント端末１０においては、ユーザが後述するデータベースに格納されているデータを検索するためのアプリケーションプログラム等が動作する。
【００１３】
統合サーバ装置２０は、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２のハブとして動作するサーバ装置（ＤＢＭＳ）である。
【００１４】
第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２は、データを格納するデータベースを有するサーバ装置（ＤＢＭＳ）である。図１においては、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２のみが示されているが、ＤＢ管理システム１は、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２以外のＤＢサーバ装置を更に備える構成であってもよい。換言すれば、本実施形態に係るＤＢ管理システム１は、３つ以上のＤＢサーバ装置を備える構成であってもよい。
【００１５】
なお、本実施形態において、上記したクライアント端末１０、統合サーバ装置２０、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２は、別装置（マシン）として実現されており、同一ネットワークで接続されているものとする。
【００１６】
また、上記した統合サーバ装置２０、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２は、同一のＤＢＭＳであるものとする。
【００１７】
本実施形態に係るＤＢ管理システムにおいて、クライアント端末１０を使用するユーザは、統合サーバ装置２０を介して、第１ＤＢサーバ装置３１が有するデータベース及び第２ＤＢサーバ装置３２が有するデータベースから横断的にデータを検索することが可能であるものとする。
【００１８】
このようなＤＢ管理システムは、例えば複写機及びスキャナ等の複数の機能を有するＭＦＰ（Multifunction Peripheral）と称される機器で管理されるデータを検索する場合に適用可能である。具体的には、例えば企業等に設置されている複数のＭＦＰの各々が本実施形態におけるＤＢサーバ装置（第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２）に相当する場合、本実施形態に係るＤＢ管理システムを適用することによって、ユーザは、複数のＭＦＰで管理されている印刷情報（印刷履歴等）を検索するようなことが可能となる。
【００１９】
ここでは、ＤＢ管理システムが複数のＭＦＰで管理されるデータを検索する場合に適用される場合について説明したが、当該ＤＢ管理システムは、例えば複数のＰＯＳ（Point Of Sale）レジで管理されるデータを検索するような場合に適用されてもよい。すなわち、本実施形態は、複数のデータベース（ＤＢサーバ装置）からデータを検索するような場合であれば適用可能である。
【００２０】
図２は、図１に示すクライアント端末１０のシステム構成の一例を示す。図２に示すように、クライアント端末１０は、ＣＰＵ１１、不揮発メモリ１２、主メモリ１３、ＢＩＯＳ−ＲＯＭ１４、システムコントローラ１５、入力デバイス１６、表示デバイス１７、通信デバイス１８及びＥＣ１９等を備える。
【００２１】
ＣＰＵ１１は、クライアント端末１０内の各コンポーネントの動作を制御するプロセッサである。ＣＰＵ１１は、ストレージデバイスである不揮発性メモリ１２から主メモリ１３にロードされる様々なプログラムを実行する。このプログラムには、オペレーティングシステム（ＯＳ）及びクライアント端末１０がＤＢ管理システム１において動作するためのプログラム等が含まれる。
【００２２】
ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１４に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００２３】
システムコントローラ１５は、ＣＰＵ１１のローカルバスと各種コンポーネントとの間を接続するデバイスである。
【００２４】
入力デバイス１６は、例えばキーボード及びマウス等を含む。表示デバイス１７は、例えば液晶表示装置のようなディスプレイ等を含む。通信デバイス１８は、統合サーバ装置２０、第１ＤＢサーバ装置３１、第２ＤＢサーバ装置３２等の外部装置と、有線または無線による通信を実行するように構成されたデバイスである。ＥＣ１９は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。
【００２５】
ここでは、クライアント端末１０のシステム構成について説明したが、統合サーバ装置２０、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２も同様の構成を有するものとする。
【００２６】
また、図２においては、ＣＰＵ１１、不揮発性メモリ１２、主メモリ１３、ＢＩＯＳ−ＲＯＭ１４、システムコントローラ１５、入力デバイス１６、表示デバイス１７及びＥＣ１８のみが示されているが、クライアント端末１０は、これらのうちの一部が省略されもものであってもよいし、例えばＨＤＤ（Hard Disk Drive）及びＳＳＤ（Solid State Drive）のような他の記憶装置等を更に備えていてもよい。統合サーバ装置２０、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２についても同様である。
【００２７】
以下、ＤＢ管理システム１に備えられるクライアント端末１０、統合サーバ装置２０及び第１ＤＢサーバ装置３１の各々の機能構成について説明する。
【００２８】
図３は、クライアント端末１０の機能構成の一例を示すブロック図である。図３に示すように、クライアント端末１０は、ＵＩ処理部１０１、クエリ送信部１０２、結果受信部１０３及び計画実行部１０４を含む。
【００２９】
本実施形態において、各部１０１〜１０４は、例えば図２に示すＣＰＵ１１（つまり、クライアント端末１０のコンピュータ）に所定のプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。具体的には、本実施形態において、ＵＩ処理部１０１は、例えば第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２が有するデータベースに格納されているデータを検索するためのアプリケーションプログラム（クライアントアプリケーション）によって実現される機能部である。一方、クエリ送信部１０２、結果受信部１０３及び計画実行部１０４は、例えばクライアントライブラリの拡張機能として実現されている機能部である。なお、上記した所定のプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、この所定のプログラムは、例えばネットワークを介してクライアント端末１０にダウンロードされても構わない。
【００３０】
ここでは、各部１０１〜１０４がソフトウェアによって実現されるものとして説明したが、当該各部１０１〜１０４の一部または全ては、例えばハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成として実現されてもよい。
【００３１】
ＵＩ処理部１０１は、データベースに格納されているデータを検索する際のユーザインタフェース（ＵＩ）を提供する。
【００３２】
具体的には、ＵＩ処理部１０１は、データベースからデータを検索（取得）するためのクエリ（第１クエリ）を入力するための画面（以下、クエリ入力画面と表記）を表示する。ＵＩ処理部１０１は、クエリ入力画面に対してユーザによって入力されたクエリを取得する。なお、ＵＩ処理部１０１によって取得されるクエリは、例えばＳＱＬ（Structured Query Language）で記述された命令文（ＳＱＬ文）等である。
【００３３】
クエリ送信部１０２は、ＵＩ処理部１０１によって取得されたクエリを統合サーバ装置２０に送信する。
【００３４】
結果受信部１０３は、クエリ送信部１０２によって送信されたクエリに基づいてデータベースから検索されたデータ（検索結果）を受信する。
【００３５】
計画実行部１０４は、後述するように統合サーバ装置２０において作成された実行計画を実行する。これにより、計画実行部１０４は、例えば結果受信部１０３によって受信された検索結果をＵＩ処理部１０１を介してユーザに提供する。
【００３６】
図４は、統合サーバ装置２０の機能構成の一例を示すブロック図である。図４に示すように、統合サーバ装置２０は、第１通信部２０１、実行計画作成部２０２、計画実行部２０３、第２通信部２０４、設定部２０５及び格納部２０６を含む。
【００３７】
本実施形態において、各部２０１〜２０５の一部または全ては、統合サーバ装置２０に備えられるＣＰＵ（つまり、統合サーバ装置２０のコンピュータ）に所定のプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。なお、この所定のプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、この所定のプログラムは、例えばネットワークを介して統合サーバ装置２０にダウンロードされても構わない。
【００３８】
ここでは、各部２０１〜２０５の一部または全てがソフトウェアによって実現されるものとして説明したが、当該各部２０１〜２０５の一部または全ては、例えばハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成として実現されてもよい。
【００３９】
また、本実施形態において、格納部２０６は、統合サーバ装置２０に備えられる不揮発性メモリ１２または他の記憶装置等によって実現される。
【００４０】
第１通信部２０１は、クライアント端末１０との通信を実行するための機能部である。第１通信部２０１は、クライアント端末１０（クエリ送信部１０２）から送信されたクエリを受信する。
【００４１】
実行計画作成部２０２は、第１通信部２０１によって受信されたクエリを、例えば第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２の各々が有するデータベースに対するクエリ（第２クエリ）に分解する。実行計画作成部２０２は、分解されたクエリの各々に基づく各データベースに対する検索結果（つまり、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２の各々における検索結果）の送信先をクライアント端末１０とする実行計画を作成する。なお、この実行計画によれば、例えば各データベースに対する検索結果の統合処理は、クライアント端末１０において実行される。また、実行計画作成部２０２によって作成された実行計画は、第１通信部２０１を介してクライアント端末１０に送信される。
【００４２】
以下の説明においては、第１ＤＢサーバ装置３１が有するデータベースに対するクエリ（つまり、第１ＤＢサーバ装置３１において実行されるクエリ）を第１ＤＢサーバ装置３１のクエリ、第２ＤＢサーバ装置３２が有するデータベースに対するクエリ（つまり、第２ＤＢサーバ装置３２において実行されるクエリ）を第２ＤＢサーバ装置３２のクエリと称する。
【００４３】
計画実行部２０３は、実行計画作成部２０２によって作成された実行計画を実行する。これにより、計画実行部２０３は、第２通信部２０４を介して、第１ＤＢサーバ装置３１のクエリ及び検索結果の送信先としてクライエント端末１０を示す送信先情報を第１ＤＢサーバ装置３１に送信する。また、計画実行部２０３は、第２通信部２０４を介して、第２ＤＢサーバ装置３２のクエリ及び上記した検索結果の送信先としてクライエント端末１０を示す送信先情報を第２ＤＢサーバ装置３２に送信する。
【００４４】
第２通信部２０４は、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２等の外部のサーバ装置との通信を実行するための機能部である。
【００４５】
設定部２０５は、クライアント端末１０で実行される統合処理に必要なメモリ使用量の上限値を設定する。なお、このメモリ使用量の上限値の設定は、クライアント端末１０に対するユーザの操作等に従って、例えばクライアント端末１０と統合サーバ装置２とのセッション毎に行われる。設定部２０５によって設定されたメモリ使用量の上限値は、上記した実行計画における検索結果の送信先を変更するために用いられる。
【００４６】
格納部２０６には、スキーマ情報及び統計情報が格納されている。スキーマ情報とは、統合サーバ装置２０と接続されている第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２が有するデータベースに格納されているデータ（テーブル）を示す情報であり、当該テーブルのメタデータに相当する。
【００４７】
統計情報とは、例えばスキーマ情報によって示されるテーブルに保持されているデータの分布等に関する情報である。統計情報には、例えばテーブルのサイズ、当該テーブルを構成するカラムのサイズ（カラムの値が数値であるか文字列であるか等）、カーディナリティ（カラムの値の種類）及びヒストグラム（数値の分布等）が含まれる。
【００４８】
格納部２０６に格納されているスキーマ情報及び統計情報は、上記した実行計画作成部２０２によって実行計画が作成される際に用いられる。
【００４９】
図５は、第１ＤＢサーバ装置３１の機能構成の一例を示すブロック図である。図５に示すように、第１ＤＢサーバ装置３１は、データベース３０１、第１通信部３０２、実行計画作成部３０３、計画実行部３０４及び第２通信部３０５を含む。
【００５０】
本実施形態において、データベース３０１は、第１ＤＢサーバ装置３１に備えられる不揮発性メモリ１２または他の記憶装置等によって実現される。データベース３０１には、上記したようにユーザによる検索対象となるデータが格納されている。
【００５１】
また、本実施形態において、各部３０２〜３０５の一部または全ては、第１ＤＢサーバ装置３１に備えられるＣＰＵ（つまり、第１ＤＢサーバ装置３１のコンピュータ）に所定のプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。なお、この所定のプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、この所定のプログラムは、例えばネットワークを介して第１ＤＢサーバ装置３１にダウンロードされても構わない。
【００５２】
ここでは、各部３０２〜３０５の一部または全てがソフトウェアによって実現されるものとして説明したが、当該各部３０２〜３０５の一部または全ては、例えばハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成として実現されてもよい。
【００５３】
第１通信部３０２は、統合サーバ装置２０との通信を実行するための機能部である。第１通信部３０２は、統合サーバ装置２０（第２通信部２０４）から送信されたクエリ（第１ＤＢサーバ装置３１のクエリ）及び送信先情報を受信する。
【００５４】
実行計画作成部３０３は、第１通信部３０２によって受信されたクエリに基づいてデータベース３０１に対する検索の実行計画を作成する。
【００５５】
計画実行部３０４は、実行計画作成部３０３によって作成された実行計画を実行する。これにより、計画実行部３０４は、第１ＤＢサーバ装置３１のクエリに基づいてデータベース３０１からデータを検索（取得）する。
【００５６】
第２通信部３０５は、第１通信部３０２によって受信された送信先情報によって示される送信先（例えば、クライアント端末１０）に、計画実行部３０４による検索結果（データ）を送信する。
【００５７】
なお、図５においては第１ＤＢサーバ装置３１の機能構成について説明したが、第２ＤＢサーバ装置３２の機能構成も第１ＤＢサーバ装置３１の機能構成と同様である。このため、以下においては、第２ＤＢサーバ装置３２の機能構成を説明する際にも、便宜的に、図５を用いて説明する。
【００５８】
次に、図６のシーケンスチャートを参照して、本実施形態に係るＤＢ管理システムの処理手順の一例について説明する。
【００５９】
本実施形態に係るＤＢ管理システムにおいてユーザがデータを検索する場合、クライアント端末１０は、ユーザの操作に応じてクライアントアプリケーション（プログラム）を起動する（ステップＳ１）。
【００６０】
ステップＳ１の処理が実行されると、クライアント端末１０のＵＩ処理部１０１は、データベースからデータを検索するためのクエリを入力するためのクエリ入力画面を表示する。ユーザは、クライアント端末１０に表示されたクエリ入力画面に対してクエリを入力（指定）することができる。
【００６１】
クエリ入力画面にクエリが入力された場合、ＵＩ処理部１０１は、当該クエリ（ＳＱＬ）を受け付け、当該クエリを取得する（ステップＳ２）。なお、ステップＳ２において取得されたクエリには、例えば第１ＤＢサーバ装置３１のクエリ及び第２ＤＢサーバ装置３２のクエリ等が含まれる。
【００６２】
クエリ送信部１０２は、ステップＳ２において取得されたクエリを統合サーバ装置２０に送信する（ステップＳ３）。
【００６３】
統合サーバ装置２０の第１通信部２０１は、ステップＳ３において送信されたクエリを受信する。実行計画作成部２０２は、第１通信部２０１によって受信されたクエリと格納部２０６に格納されているスキーマ情報及び統計情報とに基づいて、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２の各々に含まれるデータベースに対する検索の実行計画を作成する処理（以下、実行計画作成処理と表記）を実行する。
【００６４】
この実行計画作成処理において、第１通信部２０１によって受信されたクエリは、第１ＤＢサーバ装置３１のクエリ及び第２ＤＢサーバ装置３２のクエリに分解される。また、実行計画作成処理においては、第１ＤＢサーバ装置３１における検索結果及び第２ＤＢサーバ装置３２における検索結果の送信先（つまり、当該検索結果の統合処理を実行する主体）が決定される。なお、実行計画作成処理の詳細については後述する。
【００６５】
ステップＳ４の処理が実行されると、第１通信部２０１は、当該ステップＳ４において作成された実行計画をクライアント端末１０に送信する（ステップＳ５）。
【００６６】
一方、計画実行部２０３は、ステップＳ４において作成された実行計画を実行し、第１ＤＢサーバ装置３１のクエリ及び当該第１ＤＢサーバ装置３１における検索結果の送信先を示す送信先情報を第２通信部２０４を介して第１ＤＢサーバ装置３１に送信する（ステップＳ６）。
【００６７】
なお、第１ＤＢサーバ装置３１における検索結果の送信先は、クライアント端末１０である場合と統合サーバ装置２０である場合とがあるが、ここでは当該検索結果の送信先がクライアント端末１０であるものとして説明する。
【００６８】
第１ＤＢサーバ装置３１の第１通信部３０２は、ステップＳ６において送信されたクエリ及び送信先情報を受信する。実行計画作成部３０３は、第１通信部３０２によって受信されたクエリに基づいて第１ＤＢサーバ装置３１のデータベース３０１に対する検索の実行計画を作成する。計画実行部３０４は、実行計画作成部３０３によって作成された実行計画（つまり、第１ＤＢサーバ装置３１のクエリ）を実行する（ステップＳ７）。
【００６９】
ステップＳ７の処理が実行されることによって、データベース３０１から第１ＤＢサーバ装置３１のクエリに基づくデータが検索され、当該データが検索結果として取得される（ステップＳ８）。
【００７０】
ステップＳ８において取得されたデータは、第１通信部３０２によって受信された送信先情報に基づいて、第２通信部３０５を介してクライアント端末１０に送信される（ステップＳ９）。
【００７１】
同様に、統合サーバ装置２０の計画実行部２０３によってステップＳ４において作成された実行計画が実行された場合、計画実行部２０３は、第２ＤＢサーバ装置３２のクエリ及び第２ＤＢサーバ装置３２における検索結果の送信先を示す送信先情報を第２通信部２０４を介して第２ＤＢサーバ装置３２に送信する（ステップＳ１０）。
【００７２】
第２ＤＢサーバ装置３２における検索結果の送信先は、クライアント端末１０である場合と統合サーバ装置２０である場合とがあるが、ここでは当該検索結果の送信先がクライアント端末１０であるものとして説明する。
【００７３】
第２ＤＢサーバ装置３２の第１通信部３０２は、ステップＳ１０において送信されたクエリ及び送信先情報を受信する。実行計画作成部３０３は、第１通信部３０２によって受信されたクエリに基づいて第２ＤＢサーバ装置３２のデータベース３０１に対する検索の実行計画を作成する。計画実行部３０４は、実行計画作成部３０３によって作成された実行計画（つまり、第２ＤＢサーバ装置３２のクエリ）を実行する（ステップＳ１１）。
【００７４】
ステップＳ１１の処理が実行されることによって、データベース３０１から第２ＤＢサーバ装置３２のクエリに基づくデータが検索され、当該データが検索結果として取得される（ステップＳ１２）。
【００７５】
ステップＳ１２において取得されたデータは、第１通信部３０２によって受信された送信先情報に基づいて、第２通信部３０５を介してクライアント端末１０に送信される（ステップＳ１３）。
【００７６】
上記したステップＳ５において統合サーバ装置２０から送信された実行計画、ステップＳ９において第１ＤＢサーバ装置３１から送信されたデータ（検索結果）、及びステップＳ１３において第２ＤＢサーバ装置３２から送信されたデータ（検索結果）は、クライアント端末１０の結果受信部１０３によって受信される。
【００７７】
ここで、本実施形態において、クライアント端末１０の計画実行部１０４は、統合サーバ装置２０の計画実行部２０３のサブセットに相当する。計画実行部１０４は、結果受信部１０３によって受信された実行計画に基づいて、当該結果受信部１０３によって受信されたデータをユーザ（クライアント）に提供する処理（以下、クライアント処理と表記）を実行する（ステップＳ１４）。このクライアント処理の詳細については後述する。
【００７８】
次に、図７のフローチャートを参照して、上記した実行計画作成処理（図６に示すステップＳ４の処理）の処理手順の一例について説明する。なお、実行計画作成処理は、上記したように統合サーバ装置２０の実行計画作成部２０２によって実行される。
【００７９】
まず、実行計画作成部２０２は、クライアント端末１０から受信されたクエリと、格納部２０６に格納されているスキーマ情報及び統計情報とに基づいて実行計画を作成する（ステップＳ２１）。
【００８０】
ステップＳ２１において、実行計画作成部２０２は、クライアント端末１０から受信されたクエリを解釈し、当該クエリを第１ＤＢサーバ装置３１のクエリ及び第２ＤＢサーバ装置３２のクエリ（またはローカルな実行計画）に分解する。実行計画作成部２０２は、上記したスキーマ情報及び統計情報に基づいて、分解された第１ＤＢサーバ装置３１のクエリに基づいて第１ＤＢサーバ装置３１のデータベース３０１に対してどのような検索を実行するか、分解された第２ＤＢサーバ装置３２のクエリに基づいて第２ＤＢサーバ装置３２のデータベース３０１に対してどのような検索を実行するか、及び当該第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２における検索結果に対してどのような統合処理を実行するか等の実行計画を作成する。
【００８１】
また、実行計画作成部２０２は、ステップＳ２１において作成された実行計画に基づいて第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２において取得されるデータ（検索結果）の送信先を示す送信先情報を、当該実行計画に追加する。ここで実行計画に追加される送信先情報は、検索結果の送信先としてクライアント端末１０を示す情報であるものとする。
【００８２】
これによれば、全てのＤＢサーバ装置（第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２）が検索結果を直接クライアント端末１０に返却する（つまり、統合処理をクライアント端末１０で実行する）実行計画が作成される。
【００８３】
すなわち、上記したようなステップＳ２１の処理において作成される実行計画には、第１ＤＢサーバ装置３１のクエリ、当該第１ＤＢサーバ装置３１における検索結果の送信先を示す送信先情報、第２ＤＢサーバ装置３２のクエリ及び当該第２ＤＢサーバ装置３２における検索結果の送信先を示す送信先情報等が含まれる。
【００８４】
ステップＳ２１の処理が実行されると、実行計画作成部２０２は、当該ステップＳ２１において作成された実行計画に含まれる第１ＤＢサーバ装置３１のクエリ及び第２ＤＢサーバ装置３２のクエリ等に基づいて、上記した統合処理（第１ＤＢサーバ装置３１における検索結果及び第２ＤＢサーバ装置３２における検索結果を統合する処理）がクライアント端末１０で実行される際に当該クライアント端末１０において使用されることになるメモリ容量（以下、推定メモリ使用量と表記）を算出する（ステップＳ２２）。なお、ステップＳ２２において算出される推定メモリ使用量の具体例については後述する。
【００８５】
次に、実行計画作成部２０２は、ステップＳ２２において算出された推定メモリ使用量が予め定められた条件を満たすか否かを判定する（ステップＳ２３）。
【００８６】
ここで、統合サーバ装置２０においては、設定部２０５によってクライアント端末１０のメモリ使用量の上限値が設定されている。このメモリ使用量の上限値は、例えばクライアント端末１０に表示される所定の設定画面に対するユーザの操作に応じて設定されるものとする。具体的には、図８は、例えばカーソル４０１を１０ＭＢ〜１ＧＢの間で移動させることによって、当該１０ＭＢ〜１ＧＢの間の値をメモリ使用量の上限値として設定することができる設定画面４００を示している。ここでは１０ＭＢ（最小値）と１ＧＢ（最大値）との間で上限値が設定されるものとして説明したが、この最小値及び最大値は適宜変更されても構わない。また、メモリ使用量の上限値は、クライアント端末１０が備えるメモリの性能等に応じて予め定められた値であってもよい。
【００８７】
再び図７に戻ると、上記したステップＳ２３における条件は、ステップＳ２２において算出された推定メモリ使用量が上記したメモリ使用量の上限値以下であることを含む。このような条件によれば、推定メモリ使用量がメモリ使用量の上限値以下である場合、ステップＳ２３においては、当該推定メモリ使用量が条件を満たすと判定される。一方、推定メモリ使用量がメモリ使用量の上限値を超える場合、ステップＳ２３においては、当該推定メモリ使用量が条件を満たさないと判定される。
【００８８】
推定メモリ使用量が条件を満たすと判定された場合（ステップＳ２３のＹＥＳ）、図７に示す処理は終了される。
【００８９】
この場合、上記した図６に示すステップＳ５においては、ステップＳ２１において作成された実行計画（つまり、統合処理をクライアント端末１０で実行する実行計画）が統合サーバ装置２０からクライアント端末１０に送信される。なお、統合処理をクライアント端末１０で実行する実行計画である場合、検索結果の送信元を示す情報（つまり、検索結果が第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２からクライアント端末１０に送信されることを示す情報）が統合サーバ装置２０からクライアント端末１０に更に送信されてもよい。
【００９０】
また、上記した図６に示すステップＳ６においては、ステップＳ２１において作成された実行計画に含まれる第１ＤＢサーバ装置３１のクエリ及び送信先情報（送信先としてクライアント端末１０を示す情報）が統合サーバ装置２０から第１ＤＢサーバ装置３１に送信される。更に、上記した図６に示すステップＳ１０においては、ステップＳ２１において作成された実行計画に含まれる第１ＤＢサーバ装置３１のクエリ及び送信先情報（送信先としてクライアント端末１０を示す情報）が統合サーバ装置２０から第２ＤＢサーバ装置３２に送信される。
【００９１】
一方、推定メモリ使用量が条件を満たさないと判定された場合（ステップＳ２３のＮＯ）、実行計画作成部２０２は、ステップＳ２１において作成された実行計画に含まれる送信先情報（検索結果の送信先）を変更する（ステップＳ２４）。この場合、例えば検索結果の送信先を、クライアント端末１０から統合サーバ装置２０に変更する。
【００９２】
ステップＳ２４の処理が実行された場合、上記した図６に示すステップＳ５においては、統合処理を統合サーバ装置２０で実行する実行計画が統合サーバ装置２０からクライアント端末１０に送信される。
【００９３】
また、上記した図６に示すステップＳ６においては、第１ＤＢサーバ装置３１のクエリ及びステップＳ２４において送信先が変更された送信先情報（送信先として統合サーバ装置２０を示す情報）が統合サーバ装置２０から第１ＤＢサーバ装置３１に送信される。更に、上記した図６に示すステップＳ１０においては、第２ＤＢサーバ装置３２のクエリ及びステップＳ２４において送信先が変更された送信先情報送信先として統合サーバ装置２０を示す情報）が統合サーバ装置２０から第２ＤＢサーバ装置３２に送信される。
【００９４】
上記した図７に示す実行計画作成処理によれば、推定メモリ使用量が条件を満たす（例えば、メモリ使用量の上限値以下である）場合には各ＤＢサーバ装置における検索結果の送信先をクライアント端末１０とする実行計画が作成され、推定メモリ使用量が条件を満たさない（例えば、メモリ使用量の上限値を超える）場合には各ＤＢサーバ装置における検索結果の送信先を統合サーバ装置２０とする実行計画が作成される。
【００９５】
次に、図９のフローチャートを参照して、上記したクライアント処理（図６に示すステップＳ１４の処理）の処理手順の一例について説明する。
【００９６】
上記した図６において説明したように、クライアント処理が実行される前に、クライアント端末１０の結果受信部１０３は、実行計画を統合サーバ装置２０から受信する。
【００９７】
このため、計画実行部１０４は、結果受信部１０３によって受信された実行計画が空の実行計画であるか否かを判定する（ステップＳ３１）。
【００９８】
本実施形態において空の実行計画とは、統合処理を統合サーバ装置２０で実行する実行計画をいうものとする。なお、統合処理を統合サーバ装置２０で実行する実行計画とは、当該実行計画に含まれる全ての送信先情報が統合サーバ装置２０を示す（つまり、第１ＤＢサーバ装置３１における検索結果及び第２ＤＢサーバ装置３２における検索結果の送信先が統合サーバ装置２０である）実行計画をいう。
【００９９】
このため、統合処理を統合サーバ装置２０で実行する実行計画が結果受信部１０３によって受信された場合には、ステップＳ３１においては、結果受信部１０３によって受信された実行計画が空の実行計画であると判定される。一方、統合処理をクライアント端末１０で実行する実行計画が結果受信部１０３によって受信された場合には、ステップＳ３１においては、結果受信部１０３によって受信された実行計画が空の実行計画でないと判定される。なお、統合処理をクライアント端末１０で実行する実行計画とは、当該実行計画に含まれる送信先情報のうちの少なくとも１つがクライアント端末１０を示す（つまり、第１ＤＢサーバ装置３１における検索家か及び第２ＤＢサーバ装置３２における検索結果の送信先の少なくとも１つがクライアント端末１０である）実行計画である。
【０１００】
ここで、上記したように結果受信部１０３によって受信された実行計画が空の実行計画でない（つまり、統合処理がクライアント端末１０で実行される）場合には、第１ＤＢサーバ装置３１における検索結果は当該第１ＤＢサーバ装置３１からクライアント端末１０に直接送信され、第２ＤＢサーバ装置３２における検索結果は当該第２ＤＢサーバ装置３２からクライアント端末１０に直接送信される。この第１ＤＢサーバ装置３１における検索結果（データ）及び第２ＤＢサーバ装置３２における検索結果（データ）は、それぞれ結果受信部１０３によって受信される。
【０１０１】
このため、空の実行計画でないと判定された場合（ステップＳ３１のＮＯ）、計画実行部１０４は、結果受信部１０３によって受信された実行計画を実行し、結果受信部１０３によって受信された第１ＤＢサーバ装置３１における検索結果及び第２ＤＢサーバ装置３２を統合する（ステップＳ３２）。
【０１０２】
ステップＳ３２において統合された検索結果は、ＵＩ処理部１０１によってクライアント端末１０に表示される（ステップＳ３３）。
【０１０３】
一方、図６においては示されていないが、結果受信部１０３によって受信された実行計画が空の実行計画である（つまり、統合処理が統合サーバ装置２０で実行される）場合には、第１ＤＢサーバ装置３１における検索結果及び第２ＤＢサーバ装置３２における検索結果は第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２から統合サーバ装置２０に送信され、当該検索結果の統合処理は統合サーバ装置２０において実行される。また、統合サーバ装置２０において実行された統合処理の結果は、当該統合サーバ装置２０からクライアント端末１０に送信され、当該クライアント端末１０の結果受信部１０３によって受信される。
【０１０４】
このため、空の実行計画であると判定された場合（ステップＳ３１のＹＥＳ）、ステップＳ３２の処理は実行されず、結果受信部１０３によって受信された統合処理の結果がクライアント端末１０に表示される（ステップＳ３３）。
【０１０５】
上記した図９に示すクライアント処理によれば、統合処理をクライアント端末１０で実行する実行計画の場合には、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２における検索結果をクライアント端末１０で統合してユーザに提供することができる。
【０１０６】
以下、本実施形態に係るＤＢ管理システム１の動作の具体例について説明する。ここでは、ＤＢ管理システム１の第１〜第３動作例について説明する。
【０１０７】
まず、図１０を参照して、ＤＢ管理システム１の第１動作例の概要について説明する。ここでは、ＤＢ管理システム１が本実施形態におけるＤＢサーバ装置（例えば、第１ＤＢサーバ装置３１及び第２ＤＢサーバ装置３２等）としてＤＢサーバ装置Ｘ及びＹを備え、当該ＤＢサーバ装置Ｘ及びＹのデータベースにはそれぞれテーブルｔ１が格納されているものとする。
【０１０８】
ここで、クライアント端末１０に表示されるクエリ入力画面において、クエリ「SELECT*FROM X.t1 UNION SELECT*FROM Y.t1」が入力された場合を想定する。図１０の説明においては、このクエリを便宜的に対象クエリと称する。なお、対象クエリは、ＤＢサーバ装置Ｘのテーブルｔ１のデータを全て取得（検索）し、ＤＢサーバ装置Ｙのテーブルｔ１のデータを全て取得（検索）し、重複を排除（つまり、重複する行を削除）するように当該取得されたデータを統合してユーザに返却することを意味する。
【０１０９】
上記したクエリ入力画面に入力された対象クエリは、クライアント端末１０から統合サーバ装置２０に送信される（ステップＳ４１）。
【０１１０】
統合サーバ装置２０においては、対象クエリがＤＢサーバ装置Ｘのクエリ「SELECT*FROM t1」及びＤＢサーバ装置Ｙのクエリ「SELECT*FROM t1」に分解され、ＤＢサーバ装置Ｘのテーブルｔ１の全てのデータを取得し、ＤＢサーバ装置Ｙのテーブルｔ１の全てのデータを取得し、当該取得されたデータをクライアント端末１０で統合する実行計画が作成される（ステップＳ４２）。
【０１１１】
ここで、上記した統合処理がクライアント端末１０で実行される際の当該クライアント端末１０の推定メモリ使用量がメモリ使用量の上限値以下であるものとすると、上記したＤＢサーバ装置Ｘのクエリ「SELECT*FROM t1」及び送信先としてクライアント端末１０を示す送信先情報が統合サーバ装置２０からＤＢサーバ装置Ｘに送信される（ステップＳ４３）。
【０１１２】
この場合、ＤＢサーバ装置Ｘにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｘのクエリ「SELECT*FROM t1」に基づいてデータベースに格納されているテーブルｔ１から全てのデータが取得（検索）される（ステップＳ４４）。
【０１１３】
このようにＤＢサーバ装置Ｘにおいて取得されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｘからクライアント端末１０に送信される（ステップＳ４５）。
【０１１４】
同様に、ＤＢサーバ装置Ｙのクエリ「SELECT*FROM t1」及び送信先としてクライアント端末１０を示す送信先情報は、統合サーバ装置２０からＤＢサーバ装置Ｙに送信される（ステップＳ４６）。
【０１１５】
この場合、ＤＢサーバ装置Ｙにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｙのクエリ「SELECT*FROM t1」に基づいてデータベースに格納されているテーブルｔ１から全てのデータが取得（検索）される（ステップＳ４７）。
【０１１６】
このようにＤＢサーバ装置Ｙにおいて取得されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｙからクライアント端末１０に送信される（ステップＳ４８）。
【０１１７】
また、図１０には示されていないが、統合サーバ装置２０において作成された実行計画（統合処理をクライアント端末１０で実行する実行計画）は、当該統合サーバ装置２０からクライアント端末１０に送信される。
【０１１８】
このため、クライアント端末１０においては、統合サーバ装置２０から送信された実行計画に基づいて、ステップＳ４５においてＤＢサーバ装置Ｘから送信されたデータ（検索結果）及びステップＳ４８においてＤＢサーバ装置Ｙから送信されたデータ（検索結果）を統合する統合処理が実行される（ステップＳ４９）。このステップＳ４９における統合処理の結果（つまり、重複を排除するようにＤＢサーバ装置Ｘのテーブルｔ１のデータ及びＤＢサーバ装置Ｙのテーブルｔ１のデータを統合した結果）は、クライアント端末１０に表示されることによってユーザに提供される。
【０１１９】
ここで、クライアント端末１０、統合サーバ装置２０、ＤＢサーバ装置Ｘ及びＹを接続するネットワークの回線速度を１００ＭＢ／ｓ、１パケット送信のレイテンシ（遅延時間）を２ｍｓとして、図１０に示すように動作するＤＢ管理システムにおいて対象クエリが入力されてから検索結果がユーザに提供されるまでの時間について簡単に説明する。なお、ＤＢサーバ装置Ｘ及びＹのテーブルｔ１（検索対象）のデータサイズは５ＭＢであるものとする。
【０１２０】
この場合において、図１０に示すステップＳ４１において対象クエリがクライアント端末１０から統合サーバ装置２０に送信される時間は２ｍｓであるものとする。なお、対象クエリはデータサイズが小さいため、ここでは１パケットの送信に必要な時間（レイテンシ）と同じ時間であるものとする。
【０１２１】
次に、統合サーバ装置２０での実行計画の作成に必要な時間は１０ｍｓであるものとし、ＤＢサーバ装置Ｘのクエリ及び送信先情報を当該ＤＢサーバ装置Ｘに送信する時間、及びＤＢサーバ装置Ｙのクエリ及び送信先情報を当該ＤＢサーバ装置Ｙに送信する時間はそれぞれ２ｍｓとする。また、ＤＢサーバ装置Ｘ及びＹの各々で実行される検索処理に必要な時間は１００ｍｓであるものとする。
【０１２２】
ここで、上記したようにＤＢサーバ装置Ｘ及びＹのテーブルｔ１のデータサイズが５ＭＢであるものとすると、ＤＢサーバ装置Ｘからクライアント端末１０に検索結果（ＤＢサーバ装置Ｘのテーブルｔ１に保持されている全てのデータ）を送信する時間及びＤＢサーバ装置Ｙからクライアント端末１０に検索結果（つまり、ＤＢサーバ装置Ｙのテーブルｔ１に保持されている全てのデータ）を送信する時間は、それぞれ５（ＭＢ）／１００（ＭＢ／ｓ）＝５０ｍｓである。
【０１２３】
更に、ＤＢサーバ装置Ｘにおける検索結果及びＤＢサーバ装置Ｙにおける検索結果をクライアント端末１０で統合する統合処理に必要な時間は、５０ｍｓであるものとする。
【０１２４】
上記した時間で各処理が実行されるようにＤＢ管理システム１が動作した場合、対象クエリが入力されてから検索結果が提供されるまでの時間（つまり、図１０に示すステップＳ４１〜Ｓ４９が実行される時間）は２６４ｍｓとなる。
【０１２５】
上記したように本実施形態においては、ＤＢサーバ装置Ｘにおける検索結果及びＤＢサーバ装置Ｙにおける検索結果がそれぞれ直接クライアント端末１０に送信される（返される）構成であるが、本実施形態の比較例として、図１１に示すように動作するＤＢ管理システムを想定する。
【０１２６】
本実施形態の比較例に係るＤＢ管理システムは、ＤＢサーバ装置Ｘ及びＹにおける検索結果を統合サーバ装置２０を介してクライアント端末１０に送信する（返す）構成を有し、図１１に示すようにステップＳ５１〜Ｓ６０の処理が実行される。
【０１２７】
ここで、図１１に示すステップＳ５１〜Ｓ５９の処理は、ステップＳ５５及びＳ５８における検索結果の送信先、及びステップＳ５９における統合処理の主体が異なるものの、図１０に示すステップＳ４１〜Ｓ４９の処理に相当する。この場合、本実施形態に係るＤＢ管理システム１と比較して、本実施形態の比較例に係るＤＢ管理システムにおいては、検索結果を統合した結果を統合サーバ装置２０からクライアント端末１０に送信する処理（ステップＳ６０の処理）がオーバーヘッドとして発生する。
【０１２８】
このため、本実施形態に係るＤＢ管理システムにおいては、本実施形態の比較例に係るＤＢ管理システムと比較して、より高速に検索結果をユーザに対して提供することができるといえる。具体的には、例えば検索結果を統合した結果を統合サーバ装置２０からクライアント端末１０に送信する時間が例えば１０（ＭＢ）／１００（ＭＢ／ｓ）＝１００ｍｓであるものとすると、本実施形態に係るＤＢ管理システムにおいて検索結果をユーザに提供するまでの時間が上記したように２６４ｍｓであるのに対して、本実施形態の比較例に係るＤＢ管理システムにおいて検索結果をユーザに提供するまでの時間は２６４ｍｓ＋１００ｍｓ＝３６４ｍｓとなる。この場合、３６４ｍｓ／２６４ｍｓ≒１．３８となり、本実施形態に係るＤＢ管理システムは、本実施形態の比較例に係るＤＢ管理システムに対し、検索結果の提供を約３８％高速化することができる。
【０１２９】
なお、図１０においては対象クエリが「SELECT*FROM X.t1 UNION SELECT*FROM Y.t1」であるものとして説明したが、例えば対象クエリが「SELECT*FROM X.t1 UNION ALL SELECT*FROM Y.t1」である場合、当該対象クエリは、ＤＢサーバ装置Ｘのテーブルｔ１のデータを全て取得し、ＤＢサーバ装置Ｙのテーブルｔ１のデータを全て取得し、当該取得されたデータを重複を排除することなく返すことを意味する。
【０１３０】
この場合、上記した図１０において説明した対象クエリのように統合処理が実行されることによってデータサイズが小さくなることがないため、ＤＢサーバ装置Ｘ及びＹにおける検索結果を直接クライアント端末１０に送信する構成であっても、当該検索結果を統合サーバ装置２０を介してクライアント端末１０に送信する構成であっても、クライアント端末１０のメモリ使用量（推定メモリ使用量）は変わらない。
【０１３１】
このようにクライアント端末１０のメモリ使用量が変わらないようなクエリ（対象クエリ）が入力された場合には、上記した推定メモリ使用量及びメモリ使用量の上限値にかかわらず、検索結果が直接クライアント端末１０に返される構成（つまり、検索結果の送信先をクライアント端末１０とする実行計画が作成されるとともに、当該送信先は変更されない構成）としてもよい。このような構成によれば、図１０に示す場合と同様にオーバーヘッドを排除することができる。
【０１３２】
次に、図１２を参照して、ＤＢ管理システム１の第２動作例の概要について説明する。ここでは、ＤＢ管理システム１が本実施形態におけるＤＢサーバ装置としてＤＢサーバ装置Ｘ及びＹを備え、当該ＤＢサーバ装置Ｘ及びＹのデータベースにはそれぞれテーブルｔ１が格納されているものとする。
【０１３３】
ここで、クライアント端末１０に表示されるクエリ入力画面において、クエリ「SELECT*FROM X.t1 UNION SELECT*FROM Y.t1 ORDER BY col1 LIMIT 1000」が入力された場合を想定する。図１２の説明においては、このクエリを便宜的に対象クエリと称する。なお、対象クエリは、ＤＢサーバ装置Ｘのテーブルｔ１のデータをカラム名が「ｃｏｌ１」であるカラムの値（以下、単に「ｃｏｌ１」の値と表記）でソートした結果における下位１０００件（つまり、当該値が小さい方から１０００件）のデータを検索し、ＤＢサーバ装置Ｙのテーブルｔ１のデータを「ｃｏｌ１」の値でソートした結果における下位１０００件のデータを検索し、重複を排除するように当該検索されたデータを統合した上で「ｃｏｌ１」の値が下位１０００件のデータをユーザに返却することを意味する。
【０１３４】
上記したクエリ入力画面に入力された対象クエリは、クライアント端末１０から統合サーバ装置２０に送信される（ステップＳ６１）。
【０１３５】
統合サーバ装置２０においては、対象クエリがＤＢサーバ装置Ｘのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及びＤＢサーバ装置Ｙのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に分解され、ＤＢサーバ装置Ｘのテーブルｔ１から「ｃｏｌ１」の値が下位１０００件のデータを検索し、ＤＢサーバ装置Ｙのテーブルｔ１から「ｃｏｌ１」の値が下位１０００件のデータを検索し、当該検索されたデータをクライアント端末１０で重複を排除するように統合した上で「ｃｏｌ１」の値が下位１０００件のデータをユーザに返却する実行計画が作成される（ステップＳ６２）。
【０１３６】
ここで、上記した統合処理がクライアント端末１０で実行される際の当該クライアント端末１０の推定メモリ使用量が算出される。
【０１３７】
上記したＤＢサーバ装置Ｘのクエリに基づいてＤＢサーバ装置Ｘにおいて検索されるレコード（データ）の数は１０００件である。また、ＤＢサーバ装置Ｘのテーブルｔ１におけるレコードのデータサイズは、１ＫＢであり、統合サーバ装置２０において既知である（つまり、管理されている）ものとする。この場合、ＤＢサーバ装置Ｘおける検索結果（のデータサイズ）は、約１ＭＢ（１ＫＢ×１０００）であると推定される。なお、ＤＢサーバ装置Ｙにおける検索結果についても同様である。
【０１３８】
この場合において、クライアント端末１０においてＤＢサーバ装置Ｘ及びＹにおける検索結果を統合する場合、クライアント端末１０においては、ＤＢサーバ装置Ｘ及びＹの各々における検索結果を格納するためのメモリ容量が必要になる。すなわち、この場合には、１ＭＢ×２＝２ＭＢのメモリ容量が必要である。
【０１３９】
一方で、統合処理が実行された場合、ＤＢサーバ装置Ｘにおける検索結果（１ＭＢ）及びＤＢサーバ装置Ｙにおける検索結果（１ＭＢ）は重複を排除するようにソートマージされ、当該ソートマージされた結果において「ｃｏｌ１」の値が下位１０００件のデータが統合処理の結果として返される。よって、例えば統合サーバ装置２０で統合処理が実行された場合には、クライアント端末１０において必要なメモリ容量は統合処理の結果のデータサイズと同じ１ＭＢ（１ＫＢ×１０００）である。
【０１４０】
このため、図１２に示す例では、統合サーバ装置２０（設定部２０５）において設定されているメモリ使用量の上限値が２ＭＢ以上（つまり、推定メモリ使用量がメモリ使用量の上限値以下）であれば、ＤＢサーバ装置Ｘ及びＹにおける検索結果がクライアント端末１０に直接返され、当該クライアント端末１０において統合処理が実行されるものとする。
【０１４１】
具体的には、ＤＢサーバ装置Ｘのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及び送信先としてクライアント端末１０を示す送信先情報が統合サーバ装置２０からＤＢサーバ装置Ｘに送信される（ステップＳ６３）。
【０１４２】
この場合、ＤＢサーバ装置Ｘにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｘのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に基づいてデータベースに格納されているテーブルｔ１からデータが検索される（ステップＳ６４）。
【０１４３】
このようにＤＢサーバ装置Ｘにおいて検索されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｘからクライアント端末１０に送信される（ステップＳ６５）。
【０１４４】
同様に、ＤＢサーバ装置Ｙのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及び送信先としてクライアント端末１０を示す送信先情報は、統合サーバ装置２０からＤＢサーバ装置Ｙに送信される（ステップＳ６６）。
【０１４５】
この場合、ＤＢサーバ装置Ｙにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｙのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に基づいてデータベースに格納されているテーブルｔ１からデータが検索される（ステップＳ６７）。
【０１４６】
このようにＤＢサーバ装置Ｙにおいて検索されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｙからクライアント端末１０に送信される（ステップＳ６８）。
【０１４７】
クライアント端末１０においては、統合サーバ装置２０から送信された実行計画に基づいて、ステップＳ６５においてＤＢサーバ装置Ｘから送信されたデータ（検索結果）及びステップＳ６８においてＤＢサーバ装置Ｙから送信されたデータ（検索結果）を統合する統合処理が実行される（ステップＳ６９）。このステップＳ６９における統合処理の結果は、クライアント端末１０に表示されることによってユーザに提供される。
【０１４８】
図１２においては、統合サーバ装置２０において算出された推定メモリ使用量がメモリ使用量の上限値以下である場合のＤＢ管理システム１の動作例が示されているが、当該推定メモリ使用量がメモリ使用量の上限値を超える場合には、ＤＢサーバ装置Ｘ及びＹの検索結果はそれぞれ統合サーバ装置２０に送信され、当該検索結果の統合処理は統合サーバ装置２０で実行される。この場合には、上記したように約１ＭＢのデータ（統合結果）が統合サーバ装置２０からクライアント端末１０に返されるため、当該クライアント端末１０のメモリ使用量の上限値は１ＭＢ程度（つまり、２ＭＢ未満）でよい。
【０１４９】
また、図１２において説明した推定メモリ使用量の算出処理は一例であり、当該推定メモリ使用量は、例えば格納部２０６に格納されているスキーマ情報及び統計情報等に基づくＤＢサーバ装置Ｘ及びＹのデータベースに格納されているデータのサイズから算出されてもよい。なお、上記した図１０において説明したようにＤＢ管理システム１が動作する場合には、ＤＢサーバ装置Ｘ及びＹのデータベースに格納されているデータのサイズを取得可能であれば、当該データの全てがクライアント端末１０に返された際に必要なメモリ容量を推定することができる。
【０１５０】
次に、図１３を参照して、ＤＢ管理システム１の第３動作例の概要について説明する。ここでは、ＤＢ管理システム１が本実施形態におけるＤＢサーバ装置としてＤＢサーバ装置Ｘ、Ｙ及びＺを備え、当該ＤＢサーバ装置Ｘ、Ｙ及びＺのデータベースにはそれぞれテーブルｔ１が格納されているものとする。また、統合サーバ装置２０においては、クライアント端末１０のメモリ使用量の上限値として２ＭＢ以上３ＭＢ未満の値が設定されているものとする。
【０１５１】
ここで、クライアント端末１０に表示されるクエリ入力画面において、クエリ「SELECT*FROM X.t1 UNION SELECT*FROM Y.t1 UNION SELECT*FROM Z t1 ORDER BY col1 LIMIT 1000」が入力された場合を想定する。図１３の説明においては、このクエリを便宜的に対象クエリと称する。なお、対象クエリはＤＢサーバ装置Ｚからもデータを検索する点以外は図１２において説明したクエリと同様であるため、ここではその詳しい説明を省略する。
【０１５２】
上記したクエリ入力画面に入力された対象クエリは、クライアント端末１０から統合サーバ装置２０に送信される（ステップＳ７１）。
【０１５３】
統合サーバ装置２０においては、対象クエリがＤＢサーバ装置Ｘのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」、ＤＢサーバ装置Ｙのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及びＤＢサーバ装置Ｚのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に分解される。この場合、ＤＢサーバ装置Ｘのテーブルｔ１から「ｃｏｌ１」の値が下位１０００件のデータを検索し、ＤＢサーバ装置Ｙのテーブルｔ１から「ｃｏｌ１」の値が下位１０００件のデータを検索し、ＤＢサーバ装置Ｚのテーブルｔ１から「ｃｏｌ１」の値が下位１０００件のデータを検索し、当該検索されたデータをクライアント端末１０で重複を排除するように統合した上で「ｃｏｌ１」の値が下位１０００件のデータをユーザに返却する実行計画が作成される（ステップＳ７２）。
【０１５４】
ここで、上記した統合処理がクライアント端末１０で実行される際の当該クライアント端末１０の推定メモリ使用量が算出される。
【０１５５】
上記したＤＢサーバ装置Ｘのクエリに基づいてＤＢサーバ装置Ｘにおいて検索されるレコードの数は１０００件である。また、ＤＢサーバ装置Ｘのテーブルｔ１におけるレコードのデータサイズは、１ＫＢであり、統合サーバ装置２０において既知である（つまり、管理されている）ものとする。この場合、ＤＢサーバ装置Ｘにおける検索結果（のデータサイズ）は、約１ＭＢ（１ＫＢ×１０００）であると推定される。なお、ＤＢサーバ装置Ｙ及びＺにおける検索結果についても同様である。
【０１５６】
この場合において、クライアント端末１０でＤＢサーバ装置Ｘ、Ｙ及びＺにおける検索結果を統合する場合、クライアント端末１０においては、ＤＢサーバ装置Ｘ、Ｙ及びＺの各々における検索結果を格納するためのメモリ容量が必要になる。すなわち、この場合には、１ＭＢ×３＝３ＭＢのメモリ容量が必要である。
【０１５７】
ここで、統合サーバ装置３０において設定されているメモリ使用量の上限値が上記したように２ＭＢ以上３ＭＢ未満であるものとすると、クライアント端末１０のメモリ使用量（推定メモリ使用量）が当該上限値を超えているため、統合サーバ装置２０においては、例えばＤＢサーバ装置Ｘ及びＹにおける検索結果の送信先がクライアント端末１０から統合サーバ装置２０に変更される。
【０１５８】
この場合、ＤＢサーバ装置Ｘのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及び送信先として統合サーバ装置２０を示す送信先情報が統合サーバ装置２０からＤＢサーバ装置Ｘに送信される（ステップＳ７３）。
【０１５９】
ＤＢサーバ装置Ｘにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｘのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に基づいてデータベースに格納されているテーブルｔ１からデータが検索される（ステップＳ７４）。
【０１６０】
このようにＤＢサーバ装置Ｘにおいて検索されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｘから統合サーバ装置２０に送信される（ステップＳ７５）。
【０１６１】
同様に、ＤＢサーバ装置Ｙのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及び送信先として統合サーバ装置２０を示す送信先情報は、統合サーバ装置２０からＤＢサーバ装置Ｙに送信される（ステップＳ７６）。
【０１６２】
ＤＢサーバ装置Ｙにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｙのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に基づいてデータベースに格納されているテーブルｔ１からデータが検索される（ステップＳ７７）。
【０１６３】
このようにＤＢサーバ装置Ｙにおいて検索されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｙから統合サーバ装置２０に送信される（ステップＳ７８）。
【０１６４】
この場合、統合サーバ装置２０においては、ＤＢサーバ装置Ｘから送信された検索結果及びＤＢサーバ装置Ｙから送信された検索結果に対して統合処理が実行され、「ｃｏｌ１」の値が下位１０００件のデータが取得される（ステップＳ７９）。
【０１６５】
ステップＳ７９において取得されたデータ（検索結果）は、統合サーバ装置２０からクライアント端末１０に送信される（ステップＳ８０）。
【０１６６】
一方、ＤＢサーバ装置Ｚのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」及び送信先としてクライアント端末１０を示す送信先情報は、統合サーバ装置２０からＤＢサーバ装置Ｚに送信される（ステップＳ８１）。
【０１６７】
ＤＢサーバ装置Ｚにおいては、統合サーバ装置２０から送信されたＤＢサーバ装置Ｚのクエリ「SELECT*FROM.t1 ORDER BY col1 LIMIT 1000」に基づいてデータベースに格納されているテーブルｔ１からデータが検索される（ステップＳ８２）。
【０１６８】
このようにＤＢサーバ装置Ｚにおいて検索されたデータは、統合サーバ装置２０から送信された送信先情報に基づいて、ＤＢサーバ装置Ｚからクライアント端末１０に送信される（ステップＳ８３）。
【０１６９】
クライアント端末１０においては、統合サーバ装置２０から送信された実行計画に基づいて、ステップＳ８０において統合サーバ装置２０から送信されたデータ（検索結果）及びステップＳ８３においてＤＢサーバ装置Ｚから送信されたデータ（検索結果）を統合する統合処理が実行される（ステップＳ８４）。このステップＳ８４における統合処理の結果は、クライアント端末１０に表示されることによってユーザに提供される。
【０１７０】
なお、図１３に示すＤＢ管理システム１の第３動作例においては、統合処理がクライアント端末１０で実行される際の当該クライアント端末１０の推定メモリ使用量が統合サーバ装置２０から送信されるデータ（１ＭＢ）とＤＢサーバ装置Ｚから送信されるデータ（１ＭＢ）との合計２ＭＢとなる。上記したようにクライアント端末１０のメモリ使用量の上限値が２ＭＢ以上３ＭＢ未満であるものとすると、クライアント端末１０の推定メモリ使用量（２ＭＢ）はメモリ使用量の上限値以下である。
【０１７１】
図１３に示す例ではＤＢサーバ装置Ｘ及びＹの各々における検索結果が統合サーバ装置２０に送信され、ＤＢサーバ装置Ｚにおける検索結果のみがクライアント端末１０に直接送信されているが、例えばＤＢサーバ装置Ｘにおける検索結果が統合サーバ装置２０に送信され、ＤＢサーバ装置Ｙ及びＺの各々における検索結果がクライアント端末１０に直接送信される場合には、クライアント端末１０の推定メモリ使用量が３ＭＢとなるため、当該クライアント端末１０で統合処理を実行することはできない。
【０１７２】
更に、ＤＢサーバ装置Ｘ、Ｙ及びＺの各々における検索結果の全てが統合サーバ装置２０に送信される場合には、クライアント端末１０のメモリ使用量は１ＭＢでよいが、検索結果が統合サーバ装置２０を介してユーザに提供されるため、検索結果の提供を高速化することは困難である。
【０１７３】
このため、本実施形態においては、図１３において説明したように複数のＤＢサーバ装置Ｘ、Ｙ及びＺの各々における検索結果のうちの一部の送信先を統合サーバ装置２０に変更し、残りの送信先をクライアント端末１０とすることで、クライアント端末１０のメモリ使用量の抑制と検索結果の提供の高速化とを両立することができる。
【０１７４】
図１３においてはＤＢサーバ装置が３つである例が示されているが、ＤＢサーバ装置は４つ以上であってもよい。また、検索結果の送信先をクライアント端末１０から統合サーバ装置２０に変更するＤＢサーバ装置の数は、クライアント端末１０の推定メモリ使用量及びメモリ使用量の上限値に基づいて決定されればよい。具体的には、例えば検索結果の送信先をクライアント端末１０とするＤＢサーバ装置の数毎に応じたクライアント端末１０の推定メモリ使用量を算出し、当該推定メモリ使用量がメモリ使用量の上限値以下となるような数のＤＢサーバ装置の検索結果の送信先を変更すればよい。
【０１７５】
上記したように本実施形態において、クライアント端末１０（端末装置）は、データベースからデータを検索するためのクエリ（第１クエリ）を取得し、当該取得されたクエリを統合サーバ装置２０に送信する。統合サーバ装置２０は、クライアント端末１０から送信されたクエリを複数のＤＢサーバ装置３１及び３２の各々が有するデータベース３０１に対する複数のクエリ（第２クエリ）に分解し、当該複数のクエリの各々に基づくＤＢサーバ装置３１及び３２の各々における検索結果の送信先をクライアント端末１０とする実行計画を作成する。このように作成された実行計画を実行することによって、統合サーバ装置２０は、ＤＢサーバ装置３１のクエリ及びクライアント端末１０を示す送信先情報を当該ＤＢサーバ装置３１に送信し、ＤＢサーバ装置３２のクエリ及びクライアント端末１０を示す送信先情報を当該ＤＢサーバ装置３２に送信する。ＤＢサーバ装置３１及び３２の各々は、統合サーバ装置２０から送信されたクエリに基づいてデータベース３０１からデータを検索し、当該検索されたデータを検索結果として、統合サーバ装置２０から送信された送信先情報によって示されるクライアント端末１０に送信する。なお、本実施形態において、複数のＤＢサーバ装置３１及び３２の各々から送信されたデータは、クライアント端末１０において統合処理が実行されることによってユーザに提供される。
【０１７６】
本実施形態においては、このような構成により、統合サーバ装置２０を経由することなく各ＤＢサーバ装置３１及び３２における検索結果がクライアント端末１０に返却されるため、オーバーヘッドが発生せず、検索結果をより高速にユーザに提供することが可能となる。
【０１７７】
なお、本実施形態は、例えば上記したＵＮＩＯＮ及びＵＮＩＯＮ  ＡＬＬを含むクエリが指定（入力）される場合に、統合サーバ装置２０を経由せずにクライアント端末１０に検索結果を返却したことによるクライアント端末１０でのメモリ使用量増加が少なく有効となる場合が多いが、他のクエリが指定される場合に適用されてもよい。
【０１７８】
また、本実施形態においては、実行計画に基づいて統合処理に必要なクライアント端末１０のメモリ使用量（推定メモリ使用量）を算出し、当該算出された推定メモリ使用量に基づいて複数のＤＢサーバ装置３１及び３２における検索結果の送信先を変更する。このような構成によれば、クライアント端末１０の推定メモリ使用量を考慮して、ＤＢ管理システム１の動作（検索結果の統合処理をクライアント端末１０で実行するか統合サーバ装置２０で実行するか）を切り替えることができる。
【０１７９】
具体的には、統合サーバ装置２０においてはクライアント端末１０のメモリ使用量の上限値が設定されており、例えば図１２において説明したように、推定メモリ使用量がメモリ使用量の上限値を超える場合、ＤＢサーバ装置３１及び３２の各々における検索結果の全ての送信先をクライアント端末１０から統合サーバ装置２０に変更する。
【０１８０】
例えば必要最低限の機能のみを有する電子機器等がクライアント端末１０として用いられる場合があるが、本実施形態においては、このような構成により、クライアント端末１０で必要以上にメモリ容量が使用されることによって、当該クライアント端末１０が適切に動作しなくなることを回避することが可能となる。
【０１８１】
更に、推定メモリ使用量がメモリ使用量の上限値を超える場合には、複数のＤＢサーバ装置の各々における検索結果のうちの一部の送信先をクライアント端末１０から統合サーバ装置２０に変更する構成としてもよい。具体的には、上記した図１３に示す例では、複数のＤＢサーバ装置Ｘ、Ｙ及びＺのうち、ＤＢサーバ装置Ｘ及びＹにおける検索結果の送信先が統合サーバ装置２０に変更されている。本実施形態においては、このような構成により、クライアント端末１０のメモリ使用量の抑制及び検索結果の提供の高速化の両方を実現することができる。この検索結果の送信先をクライアント端末１０から統合サーバ装置２０に変更するＤＢサーバ装置の数は、上記したようにクライアント端末１０のメモリ使用量及びメモリ使用量の上限値に基づいて決定することができる。
【０１８２】
なお、クライアント端末１０の推定メモリ使用量は例えば複数のＤＢサーバ装置３１及び３２の各々が有するデータベース３０１に格納されているデータのサイズに基づいて算出されるが、当該推定メモリ使用量の算出には、例えば統合サーバ装置２０に含まれる格納部２０６に格納されているスキーマ情報及び統計情報等が用いられてもよい。
【０１８３】
ここで、本実施形態においてはクライアント端末１０のメモリ使用量（推定メモリ使用量）を算出するが、当該メモリ使用量は推定に基づくものであるため、推定メモリ使用量がメモリ使用量の上限値以下である場合であっても、実際のクライアント端末１０のメモリ使用量が当該上限値を超えてしまう場合がある。このため、例えば複数のＤＢサーバ装置の各々から返されるデータ（検索結果）のデータ量の合計が予め定められた値を超えた時点で、ＤＢ管理システム１の動作を停止する構成としてもよい。具体的には、クライアント端末１０において受信されるデータ量を監視しておき、当該データ量が予め定められた量を超えた場合に、当該クライアント端末１０から統合サーバ装置２０に対して動作の停止を通知するものとする。この場合、統合サーバ装置２０においては検索結果を統合サーバ装置２０を経由してクライアント端末１０に返す実行計画を再度作成（つまり、検索結果の送信先を変更）してＤＢ管理システム１の動作を再開するものとする。
【０１８４】
また、本実施形態においては、検索結果がユーザに提供される際に、当該検索結果がクライアント端末１０に直接返されたか、または統合サーバ装置２０を経由して返されたか（つまり、検索結果が返された経路）をユーザに通知する構成としてもよい。
【０１８５】
更に、上記した検索結果が返された経路をログとして例えば統合サーバ装置２０内に蓄積しておき、当該ログを統合サーバ装置２０またはＤＢサーバ装置３１及び３２の管理者等が閲覧することができるように構成されていてもよい。
【０１８６】
ここで、本実施形態においては、複数のＤＢサーバ装置３１及び３２における検索結果をクライアント端末１０に直接返し、統合処理をクライアント端末１０で実行することによって、検索結果を高速にユーザに提供することが可能であるが、この検索結果の提供を高速化するという観点においては、統合サーバ装置２０の機能を全てライブラリ化する（つまり、統合サーバ装置２０を設けない構成とする）ことが考えられる。
【０１８７】
しかしながら、ＤＢ管理システム１を使用するユーザが複数存在する（つまり、別マシンのクライアント端末１０が複数存在する）ことを考慮すると、統合サーバ装置２０の機能を全てライブラリ化する構成の場合には、当該複数のクライアント端末１０の各々において、実行計画の作成に必要な統計情報、複数のＤＢサーバ装置３１及び３２のスキーマ情報及び統合サーバ装置２０において管理しておく必要がある他のテーブルデータ等を共有することができない。また、クライアント端末１０のメモリ使用量の上限を超えるような検索を行うクエリに対応することができない。
【０１８８】
このため、本実施形態においては、上記したようにクライアント端末１０と統合サーバ装置２０と併存させる構成を採用することによって、統合サーバ装置２０を設けることによる利点を維持しつつ、検索結果の提供の高速化を実現することができる。
【０１８９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。  
【符号の説明】
【０１９０】
１０…クライアント端末、１１…ＣＰＵ、１２…不揮発性メモリ、１３…主メモリ、１４…ＢＩＯＳ−ＲＯＭ、１５…システムコントローラ、１６…入力デバイス、１７…表示デバイス、１８…通信デバイス、１９…ＥＣ、２０…統合サーバ装置、３１…第１ＤＢサーバ装置、３２…第２ＤＢサーバ装置、１０１…ＵＩ処理部（取得手段）、１０２…クエリ送信部、１０３…結果受信部、１０４…計画実行部、２０１…第１通信部、２０２…実行計画作成部、２０３…計画実行部、２０４…第２通信部、２０５…設定部、２０６…格納部、３０１…データベース、３０２…第１通信部、３０３…実行計画作成部、３０４…計画実行部（検索処理手段）、３０５…第２通信部。
【図１】
2020134961.tif 000003
【図２】
2020134961.tif 000004
【図３】
2020134961.tif 000005
【図４】
2020134961.tif 000006
【図５】
2020134961.tif 000007
【図６】
2020134961.tif 000008
【図７】
2020134961.tif 000009
【図８】
2020134961.tif 000010
【図９】
2020134961.tif 000011
【図１０】
2020134961.tif 000012
【図１１】
2020134961.tif 000013
【図１２】
2020134961.tif 000014
【図１３】
2020134961.tif 000015