(57)【特許請求の範囲】
【請求項１】
第１のデータベースにアクセスする第１の情報処理装置と、前記第１のデータベースの待機系である第２のデータベースにアクセスする第２の情報処理装置とを有し、
前記第１の情報処理装置は、前記第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第２の情報処理装置に送信する第１送信部、を備え、
前記第２の情報処理装置は、
前記第２のデータベースの特徴を示す第１の情報を前記第２のデータベースのデータの更新に応じて更新する更新処理部と、
前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
再生成した前記実行計画情報を前記第１の情報処理装置に送信する第２送信部と、を備える
ことを特徴とするデータベースシステム。
【請求項２】
請求項１において、
前記第１送信部は、前記問合せの実行に応じて生成された前記第１のデータベースの差分情報を、前記第２の情報処理装置に送信し、
前記更新処理部は、受信した前記差分情報に基づいて、前記第２のデータベース及び前記第１の情報を更新する、
データベースシステム。
【請求項３】
請求項１または２において、
前記第１の情報処理装置は、前記第２の情報処理装置から受信した、前記実行計画情報に基づいて前記問合せを実行する問合せ処理部を備える、
データベースシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記生成処理部は、
再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第２のデータベースのデータの変化率及び前記問合せの実行回数のうちの少なくともいずれかと前記問合せに対応する優先順位とを対応付けて記憶する記憶部を参照し、複数存在した前記実行計画情報に対応する前記問合せのそれぞれについての前記優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記生成処理部は、
前記第２のデータベースにアクセスすることによって、前記第２のデータベースに対するアクセスの性能に関する第２の情報を取得し、 
前記第１の情報と前記問合せとに加え、取得した前記第２の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースシステム。
【請求項６】
第１の情報処理装置は、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第１のデータベースの待機系である第２のデータベースにアクセスする第２の情報処理装置に送信し、
前記第２の情報処理装置は、前記第２のデータベースの特徴を示す第１の情報を、前記第２のデータベースのデータの更新に応じて更新し、前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、再生成した前記実行計画情報を前記第１の情報処理装置に送信する、
ことを特徴とするデータベースアクセス方法。
【請求項７】
第１の情報処理装置から、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信し、
前記第１のデータベースの待機系である第２のデータベースの特徴を示す第１の情報を、前記第２のデータベースのデータの更新に応じて更新し、
前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、
再生成した前記実行計画情報を前記第１の情報処理装置に送信する、
処理をコンピュータに実行させるデータベースアクセスプログラム。
【請求項８】
第１の情報処理装置から、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信する受信処理部と、
前記第１のデータベースの待機系である第２のデータベースの特徴を示す第１の情報を前記第２のデータベースのデータの更新に応じて更新する更新処理部と、
前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
再生成した前記実行計画情報を前記第１の情報処理装置に送信する第２送信部と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置に関する。
【背景技術】
【０００２】
データが格納されるデータベースを管理するデータベースシステムがある。データベースシステムは、クライアントから問合せ（ＳＱＬ（Structured Query Language）コマンド）を受け、ＳＱＬコマンドを実行するために最も効率が良いデータベースのアクセス経路（実行計画情報、アクセスプランともいう）を選択する。そして、データベースシステムは、アクセスプランにしたがってＳＱＬコマンドを実行し、データベースのアクセス処理を実現する。
【０００３】
ＳＱＬコマンドの処理に要する時間は、アクセスプランに応じて変化する。データベースシステムは、データベースの特徴情報（最適化情報ともいう）に基づいて、複数のアクセス経路の候補から、処理時間が最小となるアクセス経路をアクセスプランとして生成する。アクセスプランの生成に関する技術に関しては、例えば、特許文献１に記載される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１６８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、データベースシステムは、データベースの各レコードをスキャンして最適化情報を更新するため、データベースのレコード数が膨大である場合、更新処理の負荷が増加する。このため、データベースシステムが、業務処理を行う業務時間帯に最適化情報を更新する場合、業務処理に遅延が生じる場合がある。
【０００６】
したがって、運用担当者は、例えば、業務時間帯に最適化情報の更新を行わず、業務時間帯の後のメンテナンス処理を行う時間帯等に、最適化情報の更新を行う。ただし、業務時間帯に、最適化情報の更新を行わないことにより、最適化情報と実際のデータベースの状態との間に相違が生じる。実際のデータベースの状態に即していない最適化情報に基づくことにより、データベースシステムは、最適なアクセスプランを生成できない場合がある。
【０００７】
１つの側面では、本発明は、コンピュータの処理負荷を抑えたアクセスプランを生成するデータベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の態様によれば、第１データベースにアクセスする第１の情報処理装置と、前記第１データベースの待機系である第２データベースにアクセスする第２の情報処理装置とを有し、前記第１の情報処理装置は、前記第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第２の情報処理装置に送信する第１送信部、を備え、前記第２の情報処理装置は、前記第２のデータベースの特徴を示す第１の情報を前記第２のデータベースのデータの更新に応じて更新する更新処理部と、前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、再生成した前記実行計画情報を前記第１の情報処理装置に送信する第２送信部と、を備える。
【発明の効果】
【０００９】
１つの側面では、コンピュータの処理負荷を抑えたアクセスプランを生成できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態におけるデータベースシステムの構成を説明する図である。
【図２】比較例における、ミラーリングシステムの処理の流れを模式的に説明する図である。
【図３】アクセスプランＡＰの一例を示す図である。
【図４】アクセスプランＡＰの生成から破棄までの処理の流れを説明する図である。
【図５】本実施の形態におけるデータベースシステムの処理の流れを説明するフローチャート図である。
【図６】本実施の形態における副系のデータベースサーバ１００が再生成した、アクセスプランＡＰｒの一例を示す図である。
【図７】正系のＤＢアクセスプログラムが生成したアクセスプランＡＰ（図３）にしたがって、ＳＱＬコマンドｓｑを実行した場合の処理時間を示す図である。
【図８】副系のＤＢアクセスプログラムが再生成したアクセスプランＡＰｒ（図６）にしたがって、ＳＱＬコマンドｓｑを実行した場合の処理時間を示す図である。
【図９】本実施の形態における正系のデータベースサーバ（第１の情報処理装置）２００のハードウェア構成図である。
【図１０】図９に示した、正系のデータベースサーバ２００のソフトウェアブロックの構成図である。
【図１１】本実施の形態における副系のデータベースサーバ（第２の情報処理装置）１００のハードウェア構成図である。
【図１２】図１１に示した、副系のデータベースサーバ１００のソフトウェアブロックの構成図である。
【図１３】本実施の形態における、正系のデータベースサーバ２００のＤＢアクセスプログラム２２０、及び、副系のデータベースサーバ１００のＤＢアクセスプログラム１２０の処理の詳細を模式的に説明する図である。
【図１４】正系のデータベースサーバ２００の最適化情報２３１の一例を示す図である。
【図１５】更新最適化情報１３１ｒの一例を示す図である。
【図１６】正系のＤＢアクセスプログラム２２０による、アクセスプランＡＰの再生成の指示処理の流れを説明する図である。
【図１７】正系のＤＢアクセスプログラム２２０による、副系のアクセスプログラムによって再生成されたアクセスプランＡＰの受信処理の流れを説明する図である。
【図１８】副系のＤＢアクセスプログラム１２０による、アクセスプランＡＰの再生成処理を説明するフローチャート図である。
【図１９】図１８のフローチャート図の工程Ｓ４８の処理の詳細を説明するフローチャート図である。
【図２０】図１８のフローチャート図の工程Ｓ４３の処理の詳細を説明するフローチャート図である。
【図２１】アクセスプランＡＰを再生成するＳＱＬコマンドｓｑの優先順位を説明する図である。
【図２２】図１９のフローチャート図の工程Ｓ５２の処理の詳細を説明するフローチャート図である。
【発明を実施するための形態】
【００１１】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
［データベースシステム］
図１は、本実施の形態におけるデータベースシステムの構成を説明する図である。図１に示すデータベースシステムは、正系のデータベースサーバ２００、副系のデータベースサーバ１００、及び、アプリケーションサーバ３００を有する。正系のデータベースサーバ２００、副系のデータベースサーバ１００、及び、アプリケーションサーバ３００は、相互に接続する。また、正系、副系のデータベースサーバ１００、２００は、それぞれ、データベース１０５、２０５を有する。
【００１３】
図１に示すデータベースシステムは、ミラーリングシステムである。ミラーリングシステムは、ハードウェア、ソフトウェアを含め、業務で運用するデータベースサーバを二重化したシステムである。副系のデータベースサーバ１００は、正系のデータベースサーバ２００の待機系のサーバである。
【００１４】
即ち、副系のデータベースサーバ１００のハードウェアは、正系のデータベースサーバ２００のハードウェアと同様のスペックを有する。また、副系のデータベース１０５のデータベース（副系のデータベース１０５ともいう）は、正系のデータベースサーバ２００のデータベース（正系のデータベース２０５ともいう）と同様の情報を有する。
【００１５】
また、図１に示す、正系、副系のデータベース１０５、２０５は、例えば、リレーショナル型のデータベースである。それぞれのデータベース１０５、２０５は、データを格納する複数のテーブルと、テーブルに格納されたデータを示すインデックス（索引）情報を格納するインデックスとを有する。
【００１６】
図１に示すアプリケーションサーバ３００は、アプリケーションを実行して、業務の処理を行う。アプリケーションサーバ３００は、正系のデータベース２０５にアクセスする場合、ＳＱＬ（Structured Query Language）コマンドを、正系のデータベースサーバ２００に送信する。ＳＱＬコマンド（問合せ）は、データベースに対するデータのアクセス処理や、データベースの定義を指示するデータベース言語（問い合わせ言語）である。
【００１７】
正系のデータベースサーバ２００は、ＳＱＬコマンドの受信に応じて、データベース２０５に対するアクセス処理を行う。アクセス処理は、例えば、データの検索（SELECT）、追加（INSERT）、削除（DELETE）、更新（UPDATE）等を示す。
【００１８】
また、正系のデータベースサーバ２００は、データベース２０５の更新に応じて、更新された情報を含む更新差分データ１４１を生成し、副系のデータベースサーバ１００に送信する。副系のデータベースサーバ１００は、受信した更新差分データ１４１にしたがって、データベース１０５を更新する。
【００１９】
このように、ミラーリングシステムでは、正系のデータベースサーバ２００がアプリケーションサーバ３００からの要求に応じて更新したデータを、逐一、副系のデータベース１０５に反映する。これにより、副系のデータベース１０５は、正系のデータベース２０５と同一の情報を保持する。
【００２０】
［比較例］
図２は、比較例における、ミラーリングシステムの処理の流れを模式的に説明する図である。図２は、正系のデータベースサーバ２００ｘ、及び、副系のデータベースサーバ１００ｘを示す。正系、副系のデータベースサーバ１００ｘ、２００ｘでは、データベース１０５ｘ、２０５ｘに関する一連の処理、管理処理を行うＤＢ（DataBase：ＤＢ）アクセスプログラム（図２に図示せず）がそれぞれ動作する。
【００２１】
正系のデータベースサーバ２００ｘのＤＢアクセスプログラムは、アプリケーションサーバの要求に応じて、実行対象のＳＱＬｓｑコマンドと最適化情報２３１ｘとに基づいて、アクセスプランＡＰを生成する。最適化情報２３１ｘは、データベース２０５ｘが有するレコード群の特徴を示す情報である。
【００２２】
アクセスプランＡＰは、ＳＱＬｓｑコマンドを実行する際の、最適な、データベースのアクセス経路を示す。アクセス経路は、ＳＱＬｓｑコマンドを実行するために、いずれのテーブルやインデックスに、いずれの順にアクセスするか等を示す計画である。最適なアクセス経路は、ＳＱＬｓｑコマンドの処理時間（応答時間）が最小となるアクセス経路である。
【００２３】
正系のＤＢアクセスプログラムは、アクセスプランＡＰにしたがって、ＳＱＬｓｑコマンドを実行して、データベース２０５ｘに対するアクセス処理を行う。正系のＤＢアクセスプログラムは、データベース２０５ｘの更新情報に基づいて更新差分データ１４１ｘを生成し、副系のデータベースサーバ１００ｘに送信する。
【００２４】
副系のデータベースサーバ１００ｘのＤＢアクセスプログラムは、受信した更新差分データ１４１ｘに基づいてデータベース１０５ｘを更新する。これにより、副系のデータベース１０５ｘは、正系のデータベース２０５ｘと同様の内容を保持する。
【００２５】
［アクセスプランＡＰ］
図３は、アクセスプランＡＰの一例を示す図である。図３に示すアクセスプランＡＰは、ＳＱＬコマンド「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」ｓｑを実行する際のアクセス経路のプランを示す。
【００２６】
本実施の形態におけるデータベース１０５、２０５は、例えば、項目「COL01」、及び、項目「COL02」を有するテーブル「PRE1_TBL」を有する。また、データベースは、項目「COL01」をキーとして有するインデックス「TBL11_DSO_I」、及び、項目「COL02」をキーとして有するインデックス「TBL12_DSO_I」を有する。
【００２７】
ＳＱＬコマンドｓｑ「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」は、テーブル「PRE1_TBL」から、項目「COL02」が値「20」であって、項目「COL01」が値「10」のレコードの検索を指示する問合せである。
【００２８】
図３に示すアクセスプランＡＰは、インデックス「TBL11_DSO_I」にアクセスして、ＳＱＬコマンドｓｑを実行する計画を示す。具体的に、アクセスプランＡＰは、インデックス「TBL11_DSO_I」にアクセスして、項目「COL01」が値「10」のレコードを抽出する第１工程ｆ１と、抽出結果に基づいて項目「COL02」が値「20」のレコードを抽出する第２工程ｆ２とを有する。
【００２９】
より具体的に、第１工程ｆ１は、インデックス「TBL11_DSO_I」にアクセスして、項目「COL01」が値「10」のレコードを抽出し、テーブル「SORT0001」に挿入する工程を示す。第２工程ｆ２は、テーブル「SORT0001」とテーブル「PRE1_TBL」とをスキャンして、項目「COL02」が値「20」であるレコードを抽出する工程を示す。
【００３０】
［アクセスプランＡＰの生成から破棄まで］
図４は、アクセスプランＡＰの生成から破棄までの処理の流れを説明する図である。図４は、アプリケーションサーバ３００で動作するプログラムｐｒの一例を示す。アプリケーションのプログラムｐｒは、ＳＱＬコマンドｓｑを呼出すことによって、データベース（例えば、図１の２０５）へのアクセス処理を実現する。
【００３１】
プログラムｐｒは、ＳＱＬコマンドｓｑのアクセスプランＡＰを生成して、アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行し、アクセスプランＡＰを破棄する一連の処理を指示する記述（ＳＱＬ文）を有する。
【００３２】
具体的に、図４に示すように、プログラムｐｒは、アクセス処理を指示するＳＱＬコマンドｓｑの前に、当該ＳＱＬコマンドｓｑのアクセスプランＡＰの生成を指示するＳＱＬ文ｃ１を有する。また、プログラムｐｒは、生成したアクセスプランＡＰに基づくＳＱＬコマンドｓｑの実行を指示するＳＱＬ文ｃ２、及び、アクセスプランＡＰを破棄するＳＱＬ文ｃ３を有する。ＳＱＬ文ｃ２は、アクセス処理の実行回数（ｎ回）の指定を含む。
【００３３】
［最適化情報の更新］
ＤＢアクセスプログラムは、例えば、任意に入力される、最適化情報の更新を指示するコマンド等にしたがって、最適化情報を更新する。最適化情報は、データベースの特徴を示す情報である。最適化情報は、例えば、インデックスにおける値の種類の数（以下、種類数ともいう）や、テーブルのレコード数等を示す。
【００３４】
ＤＢアクセスプログラムは、データベースが有するレコード群をスキャンすることによって、最適化情報を更新する。したがって、レコード数が膨大である場合、最適化情報の更新処理の負荷は高く、最適化情報の更新処理に要する時間も長くなる。
【００３５】
これにより、業務処理を行う時間帯（以下、業務時間帯ともいう）に最適化情報の更新処理を行う場合、ＤＢアクセスプログラムの負荷が増大してアクセス処理の応答時間が長くなり、業務処理に遅延が生じる場合がある。このため、運用担当者は、例えば、業務時間帯の後のメンテナンス期間や、業務の少ない夜間の時間帯等に、最適化情報の更新処理を指示する。
【００３６】
ただし、データベースのレコードは業務時間帯に大きく変動し得るため、業務時間帯に最適化情報が大きく変動し得る。業務時間帯に最適化情報の更新処理を行わないことにより、実際のデータベースの状態と最適化情報との間に相違が生じる。つまり、最適化情報が、実際のデータベースの状態と連動していない状態が生じ得る。
【００３７】
図２で前述したとおり、ＤＢアクセスプログラムは、最適化情報に基づいて、ＳＱＬコマンドｓｑのアクセスプランＡＰを生成する。実際のデータベースの状態と連動していない最適化情報に基づくことによって、最適なアクセスプランＡＰを生成できない場合が生じる。最適なアクセスプランＡＰを生成するために、データベースの状態に即した最適化情報に基づいて、アクセスプランＡＰを生成することが望ましい。
【００３８】
［本実施の形態の概要］
本実施の形態におけるデータベースシステムは、第１データベースにアクセスする第１の情報処理装置と、第１データベースの待機系である第２データベースにアクセスする第２の情報処理装置とを有する。
【００３９】
第１の情報処理装置は、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、第２の情報処理装置に送信する第１送信部、を有する。
【００４０】
第２の情報処理装置は、第２のデータベースの特徴を示す第１の情報を第２のデータベースのデータの更新に応じて更新する更新処理部を有する。また、第２の情報処理装置は、第１の情報と問合せとに基づいて、再生成の対象の実行計画情報を再生成する生成処理部と、再生成した実行計画情報を第１の情報処理装置に送信する第２送信部と、を有する。
【００４１】
これにより、第２の情報処理装置は、第２のデータベースのデータの更新に応じて更新した第１の情報に基づいて、最適な実行計画情報を再生成できる。そして、第１の情報処理装置は、最適な実行計画情報にしたがって問合せを実行することによって、問合せの処理時間を短縮できる。また、第１の情報処理装置は、第１の情報の更新処理を行わないことにより、コンピュータの処理負荷の増大を抑制し、業務処理の遅延の発生を回避できる。
【００４２】
図５は、本実施の形態におけるデータベースシステムの処理の流れを説明するフローチャート図である。第１の情報処理装置は正系のデータベースサーバ２００（図１）に、第２の情報処理装置は副系のデータベースサーバ１００（図１）に対応する。また、第１のデータベースは正系のデータベース２０５（図１）に、第２のデータベースは、副系のデータベース１０５（図１）に対応する。
【００４３】
Ｓ１１：正系のデータベースサーバ２００は、正系のデータベース２０５に対する実行計画情報（アクセスプランＡＰ）のうち、再生成の対象の実行計画情報に対応する問合せ（ＳＱＬコマンドｓｑ）を、副系のデータベースサーバ１００に送信する。
【００４４】
正系のデータベースサーバ２００は、例えば、複数のＳＱＬコマンドｓｑを並行して実行する。例えば、正系のデータベースサーバ２００は、実行中のＳＱＬコマンドｓｑのアクセスプランＡＰのうち、再生成することによって効果が生じ得る更新や検索等を指示するＳＱＬコマンドｓｑを、副系のデータベースサーバ１００に送信する。
【００４５】
Ｓ１２：副系のデータベースサーバ１００は、副系のデータベース１０５の特徴を示す第１の情報（最適化情報）を、副系のデータベース１０５のデータの更新に応じて更新する。前述したとおり、第１の情報（最適化情報）は、例えば、副系のデータベース１０５の所定の項目の値の種類の数（種類数）や、レコード数のいずれか、または両方を示す。
【００４６】
Ｓ１３：副系のデータベースサーバ１００は、第１の情報（最適化情報）と問合せ（ＳＱＬコマンドｓｑ）とに基づいて実行計画情報（アクセスプランＡＰ）を再生成する。即ち、副系のデータベースサーバ１００は、正系のデータベース２０５から受信したＳＱＬコマンドｓｑと、最新の状態に更新された最適化情報とに基づいて、アクセスプランＡＰを生成する。これにより、副系のデータベースサーバ１００は、実際のデータベース１０５の状態に即した最適化情報に基づいて、最適なアクセスプランＡＰを生成できる。
【００４７】
Ｓ１４：副系のデータベースサーバ１００は、再生成した実行計画情報（アクセスプランＡＰ）を正系のデータベースサーバ２００に送信する。図４で前述したとおり、複数（ｎ回）回実行されるＳＱＬコマンドｓｑがある。ｎ回分のＳＱＬコマンドｓｑの実行が完了していない場合、正系のＤＢアクセスプログラムは、当該ＳＱＬコマンドｓｑのアクセスプランＡＰを、副系のＤＢアクセスプログラムが再生成したアクセスプランＡＰに置き換える。
【００４８】
これにより、正系のデータベースサーバ２００は、最新のデータベース２０５の特徴を示す最適化情報に基づくアクセスプランＡＰにしたがって、ＳＱＬコマンドｓｑを実行できる。この結果、ＳＱＬコマンドｓｑの処理時間が短縮され、データベース２０５に対するアクセス処理の性能が向上する。また、正系のデータベースサーバ２００は、アクセスプランＡＰの再生成のために最適化情報の更新処理を行わないことにより、コンピュータの処理負荷を抑えたアクセスプランＡＰを生成できる。
【００４９】
［再生成したアクセスプラン］
図６は、本実施の形態における副系のデータベースサーバ１００が再生成した、アクセスプランＡＰｒの一例を示す図である。図６に示すアクセスプランＡＰｒは、図３に示したアクセスプランＡＰと同一のＳＱＬコマンドｓｑに対応するアクセスプランである。ＳＱＬコマンドｓｑは、図３に示したとおりである。
【００５０】
図６に示すアクセスプランＡＰｒは、最新の状態に更新された最適化情報に基づくアクセスプランである。本実施の形態例では、データベース１０５に対するアクセス処理の結果、インデックス「TBL12_DSO_I」の値の種類数が、インデックス「TBL11_DSO_I」に対して多くなる場合を例示する。つまり、アクセス処理の結果、項目「COL02」の値の種類数が、項目「COL01」の値の種類数より大きくなった場合を示す。
【００５１】
図６に示すアクセスプランＡＰｒは、インデックス「TBL12_DSO_I」にアクセスして、ＳＱＬコマンドｓｑを実行する計画を示す。具体的に、アクセスプランＡＰｒは、インデックス「TBL12_DSO_I」にアクセスして、項目「COL02」が値「20」のレコードを抽出する第１工程ｆ１１と、抽出結果に基づいて項目「COL01」が値「10」のレコードを抽出する第２工程ｆ１２とを有する。
【００５２】
より具体的に、第１工程ｆ１１は、インデックス「TBL12_DSO_I」にアクセスして、項目「COL02」が値「20」のレコードを抽出し、テーブル「SORT0001」に挿入する工程を示す。第２工程ｆ１２は、テーブル「SORT0001」とテーブル「PRE1_TBL」とをスキャンして、項目「COL01」が値「10」であるレコードを抽出する工程を示す。
【００５３】
前述したとおり、本実施の形態例では、インデックス「TBL12_DSO_I」の種類数は、インデックス「TBL11_DSO_I」に対して多い。これにより、インデックス「TBL12_DSO_I」にアクセスすることによって、第１工程で抽出するレコードをより効果的に、絞り込むことが可能になる。第１工程で抽出するレコード数が少ないことにより、処理時間を短縮可能になる。また、第２工程で参照する、第１工程で抽出されたレコード数が少ないことにより、第２工程の処理時間を短縮可能になる。
【００５４】
したがって、図６に示すアクセスプランＡＰｒによると、インデックス「TBL12_DSO_I」にアクセスすることによって、より効率的に、アクセス処理（SELECT）を行うことが可能になる。即ち、データベース１０５の実際の状態を反映した最適化情報に基づくことにより、データベース１０５の特徴に則した、最適なアクセスプランＡＰｒを生成可能になる。
【００５５】
次に、図７、図８にしたがって、図３、図６に示したアクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行したことによる、処理時間（コスト）の短縮例を説明する。
【００５６】
［処理時間］
図７は、正系のＤＢアクセスプログラムが生成したアクセスプランＡＰ（図３）にしたがって、ＳＱＬコマンドｓｑを実行した場合の処理時間を示す図である。図７は、処理時間とアクセス履歴とを有する、ＳＱＬコマンドｓｑのトレース情報ＴＲ１を示す。情報ｈ１、ｈ２については、図２２にしたがって後述する。
【００５７】
図７に示す矢印Ｙ１は、ＳＱＬコマンドｓｑ「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」の処理が完了するまでの処理時間「038ms」を示す。矢印Ｙ２に示す処理時間「009ms」、及び、矢印Ｙ３に示す処理時間「016ms」は、処理時間「038ms」の内訳の時間を示す。
【００５８】
具体的に、矢印Ｙ２に示す処理時間「009ms」は、インデックス「TBL11_DSO_I」から、項目「COL01」が値「10」のレコードを抽出する第１工程（図３のｆ１）の処理時間を示す。また、矢印Ｙ３に示す処理時間「016ms」は、抽出結果に基づいて項目「COL02」が値「20」のレコードを抽出する第２工程（図３のｆ２）の処理時間を示す。
【００５９】
図８は、副系のＤＢアクセスプログラムが再生成したアクセスプランＡＰｒ（図６）にしたがって、ＳＱＬコマンドｓｑを実行した場合の処理時間を示す図である。図８は、処理時間とアクセス履歴とを有する、ＳＱＬコマンドｓｑのトレース情報ＴＲ２を示す。情報ｈ１１、ｈ１２については、図２２にしたがって後述する。
【００６０】
図８に示す矢印Ｙ１１は、ＳＱＬコマンドｓｑ「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」の処理が完了するまでの処理時間「011ms」を示す。また、矢印Ｙ１２に示す処理時間「000ms」、及び、矢印Ｙ１３に示す処理時間「010ms」は、処理時間「011ms」の内訳の時間を示す。
【００６１】
具体的に、矢印Ｙ１２に示す処理時間「000ms」は、インデックス「TBL12_DSO_I」から、項目「COL02」が値「20」のレコードを抽出する第１工程（図６のｆ１１）の処理時間を示す。また、矢印Ｙ１３に示す処理時間「010ms」は、抽出結果に基づいて項目「COL01」が値「10」のレコードを抽出する第２工程（図６のｆ１２）の処理時間を示す。
【００６２】
図７、図８に示すように、副系のＤＢアクセスプログラムが再生成したアクセスプランＡＰｒにしたがって、ＳＱＬコマンドｓｑを実行することによって、ＳＱＬコマンドｓｑの処理時間が、時間「038ms」から時間「011ms」に短縮されている。
【００６３】
次に、図９〜図１２にしたがって、正系、副系のデータベースサーバ１００、２００のハードウェア構成、及び、ソフトウェアブロック図を説明する。
【００６４】
［正系のデータベースサーバ２００のハードウェア構成図］
図９は、本実施の形態における正系のデータベースサーバ（第１の情報処理装置）２００のハードウェア構成図である。データベースサーバ２００は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）２０１、メインメモリ２１０や補助記憶装置２１１等を備えるメモリ２０２、通信インタフェース部２０３、ディスクインタフェース部２０４、データベース２０５を有する。各部は、バス２０６を介して相互に接続する。
【００６５】
ＣＰＵ２０１は、バス２０６を介してメモリ２０２等と接続するとともに、データベースサーバ全体の制御を行う。通信インタフェース部２０３は、副系のデータベースサーバ１００や、アプリケーションサーバ３００（図１）と接続し、データの送受信を行う。
【００６６】
ＲＡＭ（Random Access Memory：ＲＡＭ）等を示すメインメモリ２１０は、ＣＰＵ２０１が処理を行うデータ等を記憶する。メインメモリ２１０は、アクセスプラン格納領域ＡＰや、性能情報格納領域２３２を有する。
【００６７】
アクセスプラン格納領域ＡＰのアクセスプラン（以下、アクセスプランＡＰと称する）は、実行中のＳＱＬコマンドｓｑのアクセスプランＡＰを示す。アクセスプランＡＰの詳細は、図３に示したとおりである。性能情報格納領域２３２の性能情報（以下、性能情報２３２と称する）は、データベース２０５に対するアクセス処理の性能に関する情報を示す。
【００６８】
補助記憶装置２１１は、ＣＰＵ２０１が実行するオペレーションシステムのプログラムを格納する領域（図示せず）や、ＤＢアクセスプログラム格納領域２２０、最適化情報格納領域等２３１を有する。補助記憶装置２１１は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等を示す。
【００６９】
ＤＢアクセスプログラム格納領域２２０のＤＢアクセスプログラム（以下、ＤＢアクセスプログラム２２０と称する）は、ＣＰＵ２０１の実行によって、データベース管理システム（DataBase Management System：ＤＢＭＳ）の処理を実現する。ＤＢＭＳの処理は、例えば、データベース２０５に対するアクセスの制御や、データベース２０５の管理処理等を示す。
【００７０】
最適化情報格納領域２３１の最適化情報（以下、最適化情報２３１と称する）は、データベース２０５の特徴を示す情報である。正系の最適化情報２３１の詳細は、図１４にしたがって後述する。
【００７１】
［正系のソフトウェアブロック図］
図１０は、図９に示した、正系のデータベースサーバ２００のソフトウェアブロックの構成図である。図１０に示すように、正系のＤＢアクセスプログラム２２０は、アクセス管理モジュール２２１、アクセスモジュール２２２、同期管理モジュール２２３を有する。
【００７２】
アクセス管理モジュール２２１は、アプリケーションサーバ３００から受信した、アクセスプランＡＰの生成指示（図４のｃ１）にしたがって、ＳＱＬコマンドｓｑのアクセスプランＡＰを生成する。アクセス管理モジュール２２１は、ＳＱＬコマンドｓｑと最適化情報２３１とに基づいて、メモリ２１０上にアクセスプランＡＰを生成する。
【００７３】
また、アクセス管理モジュール２２２は、副系のデータベースサーバ１００から、再生成したアクセスプランＡＰｒを受信した場合に、メモリ２１０上のアクセスプランＡＰを、受信したアクセスプランＡＰｒに置き換える。
【００７４】
アクセスモジュール２２２は、アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行し、データベース２０５のアクセス処理を行う。また、アクセスモジュール２２２は、最適化情報の更新指示に応じて、最適化情報２３１を更新する。
【００７５】
同期管理モジュール２２３は、データベース２０５に更新が生じた場合に、データベース２０５の更新情報を示す更新差分データ１４１を生成し、副系のデータベースサーバ１００に送信する。また、同期管理モジュール２２３は、アクセスプランＡＰの再生成対象のＳＱＬコマンドｓｑと、アクセスプランＡＰとを、副系のデータベースサーバ１００に送信する。
【００７６】
［副系のデータベースサーバ１００のハードウェア構成図］
図１１は、本実施の形態における副系のデータベースサーバ（第２の情報処理装置）１００のハードウェア構成図である。データベースサーバ１００は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、メインメモリ１１０や補助記憶装置１１１等を備えるメモリ１０２、通信インタフェース部１０３、ディスクインタフェース部１０４、データベース１０５を有する。各部は、バス１０６を介して相互に接続する。
【００７７】
ＣＰＵ１０１は、バス１０６を介してメモリ１０２等と接続するとともに、データベースサーバ全体の制御を行う。通信インタフェース部１０３は、正系のデータベースサーバ２００や、アプリケーションサーバ３００（図１）と接続し、データの送受信を行う。
【００７８】
ＲＡＭ（Random Access Memory：ＲＡＭ）等を示すメインメモリ１１０は、ＣＰＵ１０１が処理を行うデータ等を記憶する。メインメモリ１１０は、性能情報格納領域１３２や、更新最適化情報格納領域１３１ｒを有する。
【００７９】
性能情報格納領域１３２の性能情報（以下、性能情報１３２と称する）は、データベース１０５に対するアクセス処理の性能に関する情報を示す。更新最適化情報格納領域１３１ｒの更新最適化情報（以下、更新最適化情報１３１ｒと称する）は、最新のデータベース１０５の特徴を示す情報であって、アクセスプランＡＰの再生成のために参照する情報を示す。更新最適化情報１３１ｒの詳細は、図１５にしたがって後述する。
【００８０】
副系のデータベースサーバ１００は、正系のデータベースサーバ２００の待機系のサーバであるため、最適化情報を正系と同様の状態に維持する必要がある。したがって、副系のＤＢアクセスプログラム１２０は、正規の最適化情報１３１とは別に、メモリ１１０上に更新最適化情報１３１ｒを保持する。
【００８１】
補助記憶装置１１１は、ＣＰＵ１０１が実行するオペレーションシステムのプログラムを格納する領域（図示せず）や、ＤＢアクセスプログラム格納領域１２０、最適化情報格納領域１３１、正系情報格納領域１４０等を有する。補助記憶装置１１１は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等を示す。
【００８２】
ＤＢアクセスプログラム格納領域１２０のＤＢアクセスプログラム（以下、ＤＢアクセスプログラム１２０と称する）は、ＣＰＵ１０１の実行によって、ＤＢＭＳの処理を実現する。ＤＢＭＳの処理は、データベース１０５に対するアクセスの制御や、データベース１０５の管理処理等を示す。
【００８３】
最適化情報格納領域１３１の最適化情報（以下、最適化情報１３１と称する）は、データベース１０５の特徴を示す情報である。また、最適化情報１３１は、副系のデータベースサーバ１００の正規の最適化情報であって、正系の最適化情報２３１と同様の情報を有する。
【００８４】
正系情報格納領域１４０の正系情報（以下、正系情報１４０と称する）は、正系のＤＢアクセスプログラム２２０から受信した情報を示す。正系情報１４０は、例えば、更新差分データ１４１、正系のＤＢアクセスプログラム１２０が生成した正系のアクセスプランＡＰ、及び、アクセスプランＡＰの再生成対象のＳＱＬコマンドｓｑ等を含む。更新差分データ１４１は、データベース２０５の更新情報を有するバイナリデータである。
【００８５】
［副系のソフトウェアブロック図］
図１２は、図１１に示した、副系のデータベースサーバ１００のソフトウェアブロックの構成図である。図１２に示すように、副系のＤＢアクセスプログラム１２０は、アクセスプラン再生成モジュール１２１、アクセスモジュール１２２、同期管理モジュール１２３を有する。
【００８６】
同期管理モジュール１２３は、正系情報１４０の更新差分データ１４１に基づいて、データベース１０５を更新する。アクセスモジュール１２２は、データベース１０５のアクセス処理を行う。例えば、アクセスモジュール１２２は、アプリケーションサーバ３００や、ユーザインタフェース等によるアクセス要求等にしたがって、データの参照等のアクセス処理を行う。また、アクセスモジュール１２２は、最適化情報の更新指示に応じて、正規の最適化情報１３１を更新する。
【００８７】
アクセスプラン再生成モジュール１２１は、更新差分データ１４１に基づいて、メモリ１１０上の更新最適化情報１３１ｒを更新する。また、アクセスプラン再生成モジュール１２１は、正系情報１４０のＳＱＬコマンドｓｑと、更新最適化情報１３１ｒとに基づいて、新アクセスプランＡＰｒを生成する。
【００８８】
そして、アクセスプラン再生成モジュール１２１は、再生成した新アクセスプランＡＰｒの処理時間が、正系情報１４０のアクセスプランＡＰの処理時間より短い場合に、アクセスプランＡＰｒを正系のデータベースサーバ２００に送信する。
【００８９】
次に、図１５にしたがって、本実施の形態におけるＤＢＭＳの処理の詳細を説明する。
【００９０】
［処理の流れ］
図１３は、本実施の形態における、正系のデータベースサーバ２００のＤＢアクセスプログラム２２０、及び、副系のデータベースサーバ１００のＤＢアクセスプログラム１２０の処理の詳細を模式的に説明する図である。
【００９１】
図２の比較例と同様にして、正系のＤＢアクセスプログラム２２０は、アプリケーションサーバ３００からのアクセス要求に応じて、ＳＱＬコマンドｓｑと最適化情報２３１とに基づいて、アクセスプランＡＰを生成する。そして、正系のＤＢアクセスプログラム１２０は、生成したアクセスプランＡＰにしたがって、ＳＱＬコマンドｓｑを実行する。
【００９２】
（正系の最適化情報２３１）
図１４は、正系のデータベースサーバ２００の最適化情報２３１の一例を示す図である。図１４は、最適化情報２３１の一例として、レコード数「Records」ｇ１、値の種類数「Different key」ｇ２、ｇ３を示す。運用担当者は、業務に影響を生じさせないために、例えば、メンテナンス期間に、最適化情報２３１の更新処理を指示する。
【００９３】
図１４の最適化情報２３１によると、テーブル「TBL1_DSI」のレコード数は値「217563」である。また、インデックス「TBL11_DSI_I」の値種類数は値「407」、インデックス「TBL12_DSI_I」の値種類数は、値「388」である。つまり、インデックス「TBL12_DSI_I」の値種類数は、インデックス「TBL11_DSI_I」に対して少ない。
【００９４】
したがって、ＤＢアクセスプログラム２２０は、図３に示したアクセスプランＡＰを生成する。図１３に戻り、ＳＱＬコマンドｓｑを実行すると、ＤＢアクセスプログラム２２０は、更新差分データ１４１を生成する。そして、ＤＢアクセスプログラム２２０は、更新差分データ１４１、アクセスプランＡＰの再生成対象のＳＱＬコマンドｓｑ、及び、アクセスプランＡＰを、副系のデータベースサーバ１００に送信する（ａ１）。
【００９５】
副系のＤＢアクセスプログラム１２０は、更新差分データ１４１を受信すると、更新差分データ１４１に基づいて、副系のデータベース１０５を更新する（ａ２）。これにより、副系のデータベース１０５は、正系のデータベース２０５と同一の状態に更新される。また、副系のＤＢアクセスプログラム１２０は、受信した更新差分データ１４１に基づいて、メモリ１１０上に保持した更新最適化情報１３１ｒを更新する（ａ３）。
【００９６】
前述したとおり、更新最適化情報１３１ｒは、副系のデータベース１０５の正規の最適化情報１３１とは異なる情報である。更新最適化情報１３１ｒは、副系のデータベース１０５の最新の状態に基づくのに対し、正規の最適化情報１３１は、正系の最適化情報２３１と同様の状態に維持される。
【００９７】
（更新最適化情報１３１ｒ）
図１５は、更新最適化情報１３１ｒの一例を示す図である。図１５の更新最適化情報１３１ｒは、図１４に示した最適化情報２３１に対し、テーブル「TBL1_DSI」のレコード数ｇ１１が値「563613」に増加している。また、図１４に示した最適化情報２３１に対し、インデックス「TBL11_DSI_I」の値の種類数ｇ１２は、値「407」から値「456」に増加し、インデックス「TBL12_DSI_I」の値の種類数ｇ１３は、値「388」から値「1236」に増加している。
【００９８】
図１５の更新最適化情報１３１ｒによると、インデックス「TBL12_DSO_I」の値種類数ｇ１３は、インデックス「TBL11_DSO_I」の値種類数ｇ１２に対して多い。これは、データベースへのアクセス処理の結果、図１４に示した最適化情報２３１に対し、項目「COL02」の値の種類が、項目「COL01」より分散した場合を示す。
【００９９】
このように、正系のデータベースサーバ２００は、ＳＱＬコマンドｓｑ（問合せ）に応じて生成された正系のデータベース２０５の差分情報（更新差分データ１４１）を、副系のデータベースサーバ１００に送信する。そして、副系のデータベースサーバ１００は、受信した差分情報（更新差分データ１４１）に基づいて、副系のデータベース１０５及び更新最適化情報１３１ｒ（第１の情報）を更新する。
【０１００】
更新差分データ１４１に基づくことにより、副系のデータベースサーバ１００は、レコード群をスキャンすることなく、簡易に更新最適化情報１３１ｒを更新できる。したがって、副系のデータベースサーバ１００は、負荷を増大させることなく、効率的に、更新最適化情報１３１ｒを、実際の副系のデータベース１０５に基づく最新の状態に更新できる。
【０１０１】
図１３に戻り、副系のＤＢアクセスプログラム１２０は、所定期間におけるデータベース１０５のデータの変化率が基準値を超える場合に、図１５に示した更新最適化情報１３１ｒに基づいて、ＳＱＬコマンドｓｑの新アクセスプランＡＰｒを生成する（ａ４）。つまり、副系のデータベースサーバ１００は、副系のデータベース１０５のデータの変化率が基準値を超えた場合に、アクセスプランＡＰを再生成する。
【０１０２】
所定期間におけるデータの変化率が基準値を超えた場合、更新最適化情報２３１ｒが大きく変化するため、最適なアクセス経路が変化する可能性が高い。したがって、副系のＤＢアクセスプログラム１２０は、データの変化率が基準値を超えた場合にアクセスプランＡＰを再生成することによって、最適なアクセス経路が変化する可能性があるタイミングに、適切にアクセスプランＡＰを再生成できる。
【０１０３】
また、副系のＤＢアクセスプログラム１２０は、受信したＳＱＬコマンドｓｑの順番ではなく、データの変化率や実行回数等に基づいて判定した優先順位にしたがって、ＳＱＬコマンドｓｑのアクセスプランＡＰを生成する。
【０１０４】
実行回数の多いＳＱＬコマンドｓｑは、実行回数が多いことにより、処理時間の改善度合いが高い。また、データの変化率の高いテーブルにアクセスするＳＱＬコマンドｓｑは、更新最適化情報２３１ｒが大きく変化していることにより、最適なアクセス経路が変化する可能性が高い。
【０１０５】
一方、ＳＱＬコマンドｓｑの受信順にアクセスプランＡＰを再生成すると、改善効果が高いＳＱＬコマンドｓｑのアクセスプランＡＰの再生成処理が後回しになる場合がある。したがって、副系のデータベースサーバ１００は、再生成の対象の実行計画情報（アクセスプランＡＰ）が複数存在する場合、問合せの優先順位を判定する。副系のデータベースサーバ１００は、ＳＱＬコマンドｓｑ（問合せ）によりアクセスされる副系のデータベース１０５のデータの変化率、問合せの実行回数のいずれかまたは両方に基づいて、問合せの優先順位を判定する。
【０１０６】
そして、副系のデータベースサーバ１００は、優先順位の高い実行計画情報（アクセスプランＡＰ）を優先的に再生成する。これにより、改善の度合いが高いＳＱＬコマンドｓｑのアクセスプランＡＰを優先的に最適化可能になり、正系のデータベース１０５へのアクセス処理をより効率化することが可能になる。
【０１０７】
次に、副系のＤＢアクセスプログラム１２０は、再生成したアクセスプランＡＰｒの処理時間が、正系のアクセスプランＡＰの処理時間より短い場合に、再生成したアクセスプランＡＰｒを、正系のＤＢアクセスプログラム１２０に送信する（ａ５）。ＳＱＬコマンドｓｑの処理時間は、更新最適化情報１３１ｒに加え、環境要因や性能情報１３２等の影響に応じて変動する場合がある。したがって、再生成したアクセスプランＡＰｒの処理時間が、再生成する前のアクセスプランＡＰに対して、必ずしも、短縮されているとは限らない。
【０１０８】
このため、正系のデータベースサーバ２００は、再生成の対象の実行計画情報（アクセスプランＡＰ）を、副系のデータベースサーバ１００にさらに送信する。そして、副系のデータベースサーバ１００は、再生成したアクセスプランＡＰｒに基づくアクセスに要する時間（処理時間）が、受信したアクセスプランＡＰに基づく処理時間より短い場合に、アクセスプランＡＰｒを正系のデータベースサーバ２００に送信する。
【０１０９】
つまり、アクセスプランＡＰを再生成した場合であっても、正系のデータベースサーバ２００から受信したアクセスプランＡＰに基づく処理時間が最小である場合、副系のデータベースサーバ１００は、再生成したアクセスプランＡＰｒを送信しない。これにより、正系のＤＢアクセスプログラム２２０は、処理時間が短縮される最適なアクセスプランＡＰのみを取得できるとともに、不要な通信処理を省略できる。
【０１１０】
アクセスプランＡＰｒを受信した場合、正系のＤＢアクセスプログラム１２０は、保持しているアクセスプランＡＰに上書きし（ａ６）、更新後のアクセスプランＡＰｒにしたがって、ＳＱＬコマンドｓｑを実行する。即ち、正系のデータベースサーバ２００は、副系のデータベースサーバ１００から受信した、アクセスプランＡＰに基づいてＳＱＬコマンドｓｑ（問合せ）を実行する。
【０１１１】
これにより、正系のデータベースサーバ２００は、実際の副系のデータベース１０５を反映した更新最適化情報１３１ｒに基づく、最適なアクセスプランＡＰｒにしたがって、ＳＱＬコマンドｓｑを実行することで、処理時間を短縮できる。
【０１１２】
このように、本実施の形態におけるデータベースシステムは、更新差分データ１４１を反映する際に、更新差分データ１４１に基づいて、メモリ１１０上に保持する更新最適化情報１３１ｒを更新する。これにより、副系のＤＢアクセスプログラム１２０は、データベース１０５の状態に即した更新最適化情報１３１ｒに基づいて、最適なアクセスプランＡＰｒを生成できる。また、副系の正規の最適化情報１３１は、正系の最適化情報２３１と同様の状態に維持される。
【０１１３】
また、正系のデータベースサーバ２００は、最適化情報２３１の更新処理を行わないことにより、コンピュータの処理負荷を抑えたアクセスプランＡＰを生成でき、データベース２０５に対するアクセス処理を効率化できる。これにより、ミラーリングシステムを適切に管理しながら、ミラーリングシステムの副系のデータベースサーバ１００を利用することによって、正系の業務処理をより効率的に行うことを可能にする。
【０１１４】
［性能情報１３２］
なお、図１３は、副系のＤＢアクセスプログラム１２０が、ＳＱＬコマンドｓｑと更新最適化情報１３１ｒに基づいて、アクセスプランＡＰｒを生成する場合を例示した。副系のデータベースサーバ１００は、第１の情報（更新最適化情報１３１ｒ）と問合せ（ＳＱＬコマンドｓｑ）とに加え、副系のデータベース１０５に対するアクセスの性能に関する第２の情報（性能情報１３２）に基づいてアクセスプランＡＰを再生成してもよい。
【０１１５】
性能情報１３２は、データベースに対するアクセスの性能に関する情報を示す。性能情報１３２は、例えば、副系のデータベース１０５に対するアクセスのＩ／Ｏ回数、アクセスのＩ／Ｏ時間、問合せを実行する際のプロセッサの使用時間等を示す。また、性能情報１３２は、問合せ（ＳＱＬコマンドｓｑ）によりアクセスされる対象のレコード群の共有ディスクにおけるヒット率、問合せによりアクセスされる各アクセスのレコード数等を示す。性能情報１３２は、上記の情報のいずれかまたはその組合せであってもよい。
【０１１６】
例えば、表結合（ＪＯＩＮ）を指示するＳＱＬコマンドｓｑのアクセスプログラムを生成する場合、ＤＢアクセスプログラム１２０は、レコード数に応じて行の結合方法を選択し、アクセスプランＡＰを生成する。具体的に、例えば、ＤＢアクセスプログラム１２０は、レコード数が所定値を超えた場合、アクセスプランＡＰにおける結合方法を、方法「FETCH_JOIN」から、方法「MARGE_JOIN」に切り替える。
【０１１７】
ただし、更新最適化情報１３１ｒのみに基づいてアクセスプランＡＰを再生成する場合、方法「MARGE_JOIN」に切り替えたことによって、処理時間が長くなる場合がある。具体的に、結合対象のテーブルのＩ／Ｏの性能が高い（即ち、Ｉ／Ｏ処理時間が短い）場合、ＳＱＬコマンドｓｑの処理時間が長くなる場合がある。
【０１１８】
したがって、副系のＤＢアクセスプログラム１２０、さらに性能情報１３２に基づくことによって、総合的に適切なアクセスプランＡＰを生成できる。これにより、ＳＱＬコマンドｓｑの処理時間をさらに短縮可能になる。処理の詳細は、図２２にしたがって後述する。
【０１１９】
次に、図１６、図１７のフローチャート図にしたがって、正系のデータベースサーバ２００のＤＢアクセスプログラム２２０の処理の詳細を説明する。
【０１２０】
［正系のＤＢアクセスプログラム２２０の処理の流れ］
図１６は、正系のＤＢアクセスプログラム２２０による、アクセスプランＡＰの再生成の指示処理の流れを説明する図である。
【０１２１】
Ｓ２１：正系のＤＢアクセスプログラム２２０のアクセス管理モジュール２２１は、ＳＱＬコマンドｓｑの実行指示に応じて、ＳＱＬコマンドｓｑのアクセスプランＡＰを生成する。アクセス管理モジュール２２１は、ＳＱＬコマンドｓｑと最適化情報２３１とに基づいて、図３に示したアクセスプランＡＰを生成する。
【０１２２】
Ｓ２２：アクセスモジュール２２２は、生成したアクセスプランＡＰにしたがって、ＳＱＬコマンドｓｑを実行する。例えば、ＳＱＬコマンドｓｑを所定回数実行する場合、ＳＱＬコマンドｓｑを１回実行し、工程Ｓ２３に遷移する。
【０１２３】
Ｓ２３：同期管理モジュール２２３は、更新前後のデータベースに基づいて、更新差分データ１４１を生成する。更新差分データ１４１は、例えば、レコードの更新内容を示すバイナリデータである。
【０１２４】
Ｓ２４：アクセス管理モジュール２２１は、実行したＳＱＬコマンドｓｑのアクセスプランＡＰが、再生成対象のアクセスプランＡＰであるか否かを判定する。例えば、テーブル内のレコードの全件削除や、レコードの追加等を指示するＳＱＬコマンドｓｑの場合、複数のアクセス経路は生じ難い。したがって、アクセス管理モジュール２２１は、例えば、レコードの全件削除や、レコードの追加等を示すＳＱＬコマンドｓｑのアクセスプランＡＰを、再生成の対象としない。
【０１２５】
Ｓ２５：再生成対象のアクセスプランＡＰである場合（Ｓ２４のＹｅｓ）、アクセス管理モジュール２２１は、更新差分データ１４１、ＳＱＬコマンドｓｑ、及び、アクセスプランＡＰを、副系のＤＢアクセスプログラム１２０に送信する。
【０１２６】
Ｓ２６：一方、再生成対象のアクセスプランＡＰではない場合（Ｓ２４のＮｏ）、アクセス管理モジュール２２１は、更新差分データ１４１を、副系のＤＢアクセスプログラム１２０に送信する。
【０１２７】
図１７は、正系のＤＢアクセスプログラム２２０による、副系のアクセスプログラムによって再生成されたアクセスプランＡＰの受信処理の流れを説明する図である。
【０１２８】
Ｓ３１：アクセス管理モジュール２２１は、副系のアクセスプログラムから、再生成したアクセスプランＡＰｒを受信した否かを判定する。
【０１２９】
Ｓ３２：アクセスプランＡＰｒを受信した場合（Ｓ３１のＹｅｓ）、アクセス管理モジュール２２１は、受信したアクセスプランＡＰｒを、実行中のアクセスプランＡＰに更新する。そして、アクセス管理モジュール２２１は、更新後のアクセスプランＡＰｒにしたがって、ＳＱＬコマンドｓｑを残回数分、実行する。これにより、正系のＤＢアクセスプログラム２２０は、ＳＱＬコマンドｓｑの処理時間を短縮できる。
【０１３０】
［副系のＤＢアクセスプログラム１２０の処理の流れ］
次に、図１８〜図２２のフローチャート図にしたがって、副系のデータベースサーバ１００のＤＢアクセスプログラム１２０の処理の詳細を説明する。
【０１３１】
図１８は、副系のＤＢアクセスプログラム１２０による、アクセスプランＡＰの再生成処理を説明するフローチャート図である。
【０１３２】
Ｓ４１：同期管理モジュール１２３は、更新差分データ１４１を受信したか否かを判定する。
【０１３３】
Ｓ４２：更新差分データ１４１を受信した場合（Ｓ４１のＹｅｓ）、同期管理モジュール１２３は、更新差分データ１４１に基づいて副系のデータベース１０５を更新する。
【０１３４】
Ｓ４３：アクセスプラン再生成モジュール１２１は、更新差分データ１４１に基づいて、メモリ１１０上に保持する更新最適化情報１３１ｒを更新する。工程Ｓ４３の処理の詳細は、図２０にしたがって後述する。
【０１３５】
Ｓ４４：アクセスプラン再生成モジュール１２１は、更新差分データ１４１に加えて、アクセスプランＡＰを再生成する対象のＳＱＬコマンドｓｑ、及び、当該ＳＱＬコマンドｓｑのアクセスプランＡＰを受信したか否かを判定する。
【０１３６】
Ｓ４５：ＳＱＬコマンドｓｑ及び正系のアクセスプランＡＰを受信した場合（Ｓ４４のＹｅｓ）、アクセスプラン再生成モジュール１２１は、ＳＱＬコマンドｓｑがアクセス対象とするデータベース１０５の、所定期間におけるデータの変化率を算出する。例えば、アクセスプラン再生成モジュール１２１は、全体のレコード件数に対する更新レコード件数に基づいて、変化率を算出する。
【０１３７】
Ｓ４６：アクセスプラン再生成モジュール１２１は、工程Ｓ４５で算出した変化率が基準値を超えるか否かを判定する。基準値は、例えば２０％である。ただし、この例に限定されるものではなく、基準値は検証等に応じて決定される。
【０１３８】
Ｓ４７：変化率が基準値を超える場合（Ｓ４６のＹｅｓ）、アクセスプラン再生成モジュール１２１は、アクセスプランＡＰを再生成する対象のＳＱＬコマンドｓｑが複数、存在する場合、アクセスプランＡＰを再生成するＳＱＬコマンドｓｑの優先順序を判定する。ＳＱＬコマンドｓｑの優先順序については、図２１にしたがって後述する。
【０１３９】
Ｓ４８：アクセスプラン再生成モジュール１２１は、工程Ｓ４７で判定した優先順番にしたがって、順次、アクセスプランＡＰを再生成する。アクセスプランＡＰを再生成の処理の詳細は、図１９にしたがって後述する。
【０１４０】
Ｓ４９：アクセスプラン再生成モジュール１２１は、再生成したアクセスプランＡＰｒの処理時間が、正系のアクセスプランＡＰの処理時間より短いか否かを判定する。
【０１４１】
Ｓ５０：アクセスプランＡＰｒの処理時間が短い場合（Ｓ４９のＹｅｓ）、アクセスプラン再生成モジュール１２１は、再生成したアクセスプランＡＰｒを、正系のＤＢアクセスプログラム２２０に送信する。
【０１４２】
一方、アクセスプランＡＰｒの処理時間が長い場合（Ｓ４９のＮｏ）、アクセスプラン再生成モジュール１２１は、再生成したアクセスプランＡＰｒを、正系のＤＢアクセスプログラム２２０に送信しない。これにより、不要な通信処理を省略可能になる。
【０１４３】
［図１８のＳ４８：アクセスプランＡＰの再生成処理］
図１９は、図１８のフローチャート図の工程Ｓ４８の処理の詳細を説明するフローチャート図である。工程Ｓ４８では、アクセスプラン再生成モジュール１２１は、ＳＱＬコマンドｓｑのアクセスプランＡＰを再生成する。
【０１４４】
Ｓ５１：アクセスプラン再生成モジュール１２１は、更新最適化情報１３１ｒに基づいて、ＳＱＬコマンドｓｑのアクセスプランＡＰを複数、生成する。例えば、アクセスプラン再生成モジュール１２１は、処理時間が一定範囲の収まる複数のアクセスプランＡＰを生成する。
【０１４５】
Ｓ５２：アクセスプラン再生成モジュール１２１は、工程Ｓ５１で生成した複数のアクセスプランＡＰから、性能情報１３２に基づいてアクセスプランＡＰを抽出し、候補アクセスプランＡＰとする。工程Ｓ５２の処理の詳細は、図２２にしたがって後述する。
【０１４６】
Ｓ５３：アクセスプラン再生成モジュール１２１は、正系のアクセスプランＡＰの処理時間を基準時間にセットする。
【０１４７】
Ｓ５４：アクセスプラン再生成モジュール１２１は、候補アクセスプランＡＰを選択し、選択した候補アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを疑似的に実行し、処理時間を取得する。即ち、アクセスプラン再生成モジュール１２１は、ＳＱＬコマンドｓｑをシミュレートすることによって、処理時間を取得する。疑似的に実行することによって、副系のデータベース１０５に更新は生じない。
【０１４８】
Ｓ５５：アクセスプラン再生成モジュール１２１は、セットした基準時間に対して、選択した候補アクセスプランＡＰの処理時間が短いか否かを判定する。
【０１４９】
Ｓ５６：候補アクセスプランＡＰの処理時間が短い場合（Ｓ５５のＹｅｓ）、アクセスプラン再生成モジュール１２１は、選択した候補アクセスプランＡＰの処理時間を基準時間にセットする。
【０１５０】
Ｓ５７：一方、候補アクセスプランＡＰの処理時間が長い場合（Ｓ５５のＮｏ）、アクセスプラン再生成モジュール１２１は、候補アクセスプランＡＰの疑似実行を中断する。
【０１５１】
Ｓ５８：アクセスプラン再生成モジュール１２１は、抽出した、全ての候補アクセスプランＡＰを実行したか否かを判定する。
【０１５２】
Ｓ５９：全ての候補アクセスプランＡＰを実行した場合（Ｓ５８のＹｅｓ）、アクセスプラン再生成モジュール１２１は、基準時間に対応するアクセスプランＡＰを、最適なアクセスプランＡＰとして決定する。即ち、アクセスプラン再生成モジュール１２１は、処理時間が最小となるアクセスプランＡＰを決定する。
【０１５３】
一方、未実行の候補アクセスプランＡＰがある場合（Ｓ５８のＮｏ）、アクセスプラン再生成モジュール１２１は、工程Ｓ５４の処理に遷移し、別の候補アクセスプランＡＰを選択する。
【０１５４】
なお、一部のＳＱＬコマンドｓｑは、副問合せを含む。異なるＳＱＬコマンドｓｑの間で、共通の副問合せを含む場合がある。したがって、アクセスプラン再生成モジュール１２１は、副問合せ単位に処理時間を取得し、管理しておいてもよい。
【０１５５】
これにより、同一の副問合せを含むＳＱＬコマンドｓｑの処理時間を算出する場合に、保持している副問合せの処理時間を再利用できる。これにより、アクセスプラン再生成モジュール１２１は、副問合せを含むＳＱＬコマンドｓｑの処理時間を、より簡易に、算出できる。
【０１５６】
［図１８のＳ４３：更新最適化情報１３１ｒの更新処理］
図２０は、図１８のフローチャート図の工程Ｓ４３の処理の詳細を説明するフローチャート図である。アクセスプラン再生成モジュール１２１は、工程Ｓ４３の処理として、更新差分データ１４１に基づいて、メモリに保持した更新最適化情報１３１ｒを更新する。図１４、図１５に示したとおり、本実施の形態における更新最適化情報１３１ｒは、レコード数「Records」、及び、値種類数「Different key」を含む。
【０１５７】
Ｓ６１：アクセスプラン再生成モジュール１２１は、更新差分データ１４１が、データの追加「INSERT」を示すか否かを判定する。
【０１５８】
Ｓ６２：データの追加「INSERT」を示す場合（Ｓ６１のＹｅｓ）、アクセスプラン再生成モジュール１２１は、追加の対象となるテーブルのレコード数「Records」をインクリメントする。
【０１５９】
Ｓ６３：アクセスプラン再生成モジュール１２１は、追加される値が、追加対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
【０１６０】
Ｓ６４：前後のいずれの値とも異なる場合（Ｓ６３のＮｏ）、アクセスプラン再生成モジュール１２１は、値種類数「Different key」をインクリメントする。一方、前後のいずれかの値と同一である場合（Ｓ６３のＹｅｓ）、アクセスプラン再生成モジュール１２１は、値種類数「Different key」を更新しない。
【０１６１】
Ｓ６５：一方、更新差分データ１４１がデータの追加「INSERT」を示していない場合（Ｓ６１のＮｏ）、アクセスプラン再生成モジュール１２１は、更新差分データ１４１が、データの削除「DELETE」を示すか否かを判定する。
【０１６２】
Ｓ６６：データの削除「DELETE」を示す場合（Ｓ６５のＹｅｓ）、アクセスプラン再生成モジュール１２１は、削除の対象となるテーブルのレコード数「Records」をデクリメントする。
【０１６３】
Ｓ６７：アクセスプラン再生成モジュール１２１は、削除される値が、削除対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
【０１６４】
Ｓ６８：前後のいずれの値とも異なる場合（Ｓ６７のＮｏ）、アクセスプラン再生成モジュール１２１は、値種類数「Different key」をデクリメントする。一方、前後のいずれかの値と同一である場合（Ｓ６７のＹｅｓ）、アクセスプラン再生成モジュール１２１は、値種類数「Different key」を更新しない。
【０１６５】
Ｓ６９：更新差分データ１４１がデータの削除「DELETE」を示していない場合（Ｓ６５のＮｏ）、アクセスプラン再生成モジュール１２１は、更新処理で追加される値が、更新対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
【０１６６】
Ｓ７０：前後のいずれの値とも異なる場合（Ｓ６９のＮｏ）、アクセスプラン再生成モジュール１２１は、値種類数「Different key」をインクリメントする。
【０１６７】
Ｓ７１：次に、アクセスプラン再生成モジュール１２１は、更新処理で削除される値が、更新対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
【０１６８】
Ｓ７２：前後のいずれの値とも異なる場合（Ｓ７１のＮｏ）、アクセスプラン再生成モジュール１２１は、値種類数「Different key」をデクリメントする。
【０１６９】
このように、本実施の形態における副系のＤＢアクセスプログラム１２０は、副系のデータベース１０５のレコードを逐一スキャンすることなく、更新差分データ１４１に基づいて、簡易に、更新最適化情報１３１ｒを更新できる。これにより、副系のＤＢアクセスプログラム１２０は、副系のデータベースサーバ１００に負荷をかけることなく、効率的に、更新最適化情報１３１ｒを更新できる。したがって、ＤＢアクセスプログラム１２０は、アクセスプランＡＰｒをタイムリーに生成できる。
【０１７０】
［アクセスプランＡＰを再生成するＳＱＬコマンドｓｑの順番］
図２１は、アクセスプランＡＰを再生成するＳＱＬコマンドｓｑの優先順位を説明する図である。図２１に示す表Ｈ１は、アクセスプランＡＰを再生成する対象のＳＱＬコマンドｓｑ、ＳＱＬコマンドｓｑの実行回数、ＳＱＬコマンドｓｑがアクセス対象とするテーブルのデータの変化率、アクセスプランＡＰの再生成の優先順位の情報を有する。
【０１７１】
アクセスプラン再生成モジュール１２１は、ＳＱＬコマンドｓｑの実行回数、及び、データの変化率のいずれか、または両方にしたがって、アクセスプランＡＰの再生成の優先順位を決定する。データの変化率は、例えば、所定期間における変化率を示す。
【０１７２】
本実施の形態では、第１のデータ群にアクセスする第１の問合せ（ＳＱＬコマンドｓｑ）の優先順位は、第１のデータ群より変化率が低い第２のデータ群にアクセスする第２の問合せ（ＳＱＬコマンドｓｑ）の優先順位より高い。前述したとおり、データの変化率が高いテーブルにアクセスするＳＱＬコマンドｓｑのアクセスプランＡＰは、再生成に応じて、アクセス経路が変更する可能性が高く、改善効果が高い。
【０１７３】
したがって、アクセスプラン再生成モジュール１２１は、データの変化率が高いデータ群にアクセスするＳＱＬコマンドｓｑのアクセスプランＡＰを優先して再生成することによって、正系のデータベース２０５のアクセス処理の処理時間をより効果的に短縮できる。
【０１７４】
また、本実施の形態におけるアクセスプラン再生成モジュール１２１によると、第３の問合せ（ＳＱＬコマンドｓｑ）の優先順位は、第３の問合せに対して実行回数が少ない第４の問合せ（ＳＱＬコマンドｓｑ）より高い。前述したとおり、実行回数の多いＳＱＬコマンドｓｑのアクセスプランＡＰは、再生成することによる改善効果が高い。したがって、アクセスプラン再生成モジュール１２１は、実行回数が多いＳＱＬコマンドｓｑのアクセスプランＡＰを優先して再生成することによって、正系のデータベース２０５のアクセス処理の応答時間をより効果的に短縮できる。
【０１７５】
図２１に示す表によると、項番「２」のＳＱＬコマンドｓｑ（SELECT）の実行回数は「98回」であって、データの変化率は「40％」である。また、項番「３」のＳＱＬコマンドｓｑ（SELECT）の実行回数は「60回」であって、データの変化率は「52％」である。
【０１７６】
項番「２」のＳＱＬコマンドｓｑによるデータの変化率は、項番「３」のＳＱＬコマンドｓｑに対して小さいものの、実行回数は、項番「３」のＳＱＬコマンドｓｑに対して大幅に大きい。したがって、アクセスプラン再生成モジュール１２１は、図２１に示す複数のＳＱＬコマンドｓｑから、項番「２」のＳＱＬコマンドｓｑを、アクセスプランＡＰを最優先して再生成するＳＱＬコマンドｓｑとして決定する。
【０１７７】
また、アクセスプラン再生成モジュール１２１は、項番「３」のＳＱＬコマンドｓｑを、次に優先してアクセスプランＡＰを再生成するＳＱＬコマンドｓｑとして決定する。同様にして、アクセスプラン再生成モジュール１２１は、実行回数、及び、変化率に基づいて、各ＳＱＬコマンドｓｑの優先順位を判定する。
【０１７８】
なお、図２１では、ＳＱＬコマンドｓｑの実行回数とデータの変化率とに基づいて優先順位を判定する場合を例示した。ただし、この例に限定されるものではなく、実行回数とデータの変化率のいずれか一方に基づいて優先順位を判定してもよい。
【０１７９】
［図１９のＳ５２：性能情報１３２に基づくアクセスプランＡＰの抽出］
図２２は、図１９のフローチャート図の工程Ｓ５２の処理の詳細を説明するフローチャート図である。アクセスプラン再生成モジュール１２１は、複数のアクセスプランＡＰから、性能情報１３２に基づいてアクセスプランＡＰを抽出し、候補アクセスプランＡＰとする。
【０１８０】
Ｓ８１：アクセスプラン再生成モジュール１２１は、例えば、Ｉ／Ｏ回数、Ｉ／Ｏ処理時間、ＣＰＵ使用率、共有ディスクのヒット率、アクセス処理の対象のレコード件数等に基づいて、各アクセスプランＡＰの処理時間を算出する。
【０１８１】
アクセスプランＡＰに応じて、アクセス対象のテーブルやインデックスが異なる。テーブルやインデックスに応じて、性能情報１３２が異なることにより、処理時間が変化する場合がある。したがって、アクセスプラン再生成モジュール１２１は、更新最適化情報１３１ｒに加えて、性能情報１３２に基づいて、アクセスプランＡＰを抽出する。これにより、アクセスプラン再生成モジュール１２１は、環境等に基づくアクセス性能を考慮した、より最適なアクセスプランＡＰを生成できる。
【０１８２】
幅系のデータベースサーバ１００のハードウェアのスペックは、正系のデータベースサーバ２００のハードウェアスペックと同様である。したがって、アクセスプラン再生成モジュール１２１は、副系のデータベースサーバ１００の性能情報１３２を利用することができる。
【０１８３】
また、アクセスプラン再生成モジュール１２１は、例えば、オペレーションシステムのコマンドやＡＰＩ（Application Programming Interface：ＡＰＩ）等を使用することによって、性能情報１３２を取得できる。または、アクセスプラン再生成モジュール１２１は、正系のデータベースサーバ２００の性能情報２３２を、さらに取得してもよい。
【０１８４】
具体的に、共有ディスクのヒット率は、アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行する際に、アクセスが生じたページの、共有ディスク（共有メモリ等）におけるヒット率を示す。またＩ／Ｏ回数は、アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行する際に生じるファイルのＩ／Ｏの回数を示す。
【０１８５】
Ｉ／Ｏ処理時間は、アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行する際の、アクセス対象のテーブルのＩ／Ｏ処理に要する時間を示す。テーブルに応じて、当該テーブルを記憶する物理ディスクが異なる場合がある。物理ディスクに応じて、Ｉ／Ｏ処理時間が異なる。また、ＣＰＵ使用時間は、アクセスプランＡＰにしたがってＳＱＬコマンドｓｑを実行する際の、ＣＰＵの使用時間を示す。
【０１８６】
また、アクセス処理の対象のレコード件数は、図１４、図１５に示した、トレース情報ＴＲ１、ＴＲ２の項目「access (read/ins/del/upd)」の情報ｈ１〜ｈ１２を示す。アクセス処理の対象のレコード件数がより少なく抑えられる場合、処理時間は短くなる。
【０１８７】
アクセスプラン再生成モジュール１２１は、各アクセスプランＡＰを採用した場合の性能情報１３２を参照して、処理時間を算出する。なお、性能情報１３２によっては、他の性能情報１３２の間で、処理時間がトレードオフの関係を有する。例えば、Ｉ／Ｏ回数が少ないものの、ＣＰＵ使用時間が多くなるアクセスプランＡＰがある。したがって、アクセスプラン再生成モジュール１２１は、例えば、複数の性能情報１３２の組合せに基づいて、アクセスプランＡＰの処理時間を算出する。
【０１８８】
Ｓ８２：アクセスプラン再生成モジュール１２１は、正系のアクセスプランＡＰの処理時間よりも、算出した処理時間が短いアクセスプランＡＰを、候補アクセスプランＡＰとして抽出する。
【０１８９】
［他の実施の形態例］
なお、本実施の形態では、アクセスプランＡＰを再生成する際に、ＳＱＬコマンドｓｑを疑似実行して、処理時間を取得する場合を例示した。ただし、この例に限定されるものではない。ＤＢアクセスプログラム１２０は、処理時間の算出処理にしたがって、ＳＱＬコマンドｓｑの処理時間を取得してもよい。
【０１９０】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１９１】
（付記１）
第１データベースにアクセスする第１の情報処理装置と、前記第１データベースの待機系である第２データベースにアクセスする第２の情報処理装置とを有し、
前記第１の情報処理装置は、前記第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第２の情報処理装置に送信する第１送信部、を備え、
前記第２の情報処理装置は、
前記第２のデータベースの特徴を示す第１の情報を前記第２のデータベースのデータの更新に応じて更新する更新処理部と、
前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
再生成した前記実行計画情報を前記第１の情報処理装置に送信する第２送信部と、を備える
ことを特徴とするデータベースシステム。
【０１９２】
（付記２）
付記１において、
前記第１送信部は、前記問合せの実行に応じて生成された前記第１のデータベースの差分情報を、前記第２の情報処理装置に送信し、
前記更新処理部は、受信した前記差分情報に基づいて、前記第２のデータベース及び前記第１の情報を更新する、
データベースシステム。
【０１９３】
（付記３）
付記１または２において、
前記第１の情報処理装置は、前記第２の情報処理装置から受信した、前記実行計画情報に基づいて前記問合せを実行する問合せ処理部を備える、
データベースシステム。
【０１９４】
（付記４）
付記１乃至３のいずれかにおいて、
前記生成処理部は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第２のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、前記問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースシステム。
【０１９５】
（付記５）
付記４において、
第１のデータ群にアクセスする第１の問合せの優先順位は、前記第１のデータ群より前記変化率が低い第２のデータ群にアクセスする第２の問合せの優先順位より高い、
データベースシステム。
【０１９６】
（付記６）
付記４において、
第３の問合せの優先順位は、前記第３の問合せに対して前記実行回数が少ない第４の問合せより高い、
データベースシステム。
【０１９７】
（付記７）
付記１乃至６のいずれかにおいて、
前記第１送信部は、前記再生成の対象の実行計画情報を、前記第２の情報処理装置にさらに送信し、
前記第２送信部は、前記再生成した実行計画情報に基づく前記問合せの実行に要する時間が、前記第１の情報処理装置から受信した前記再生成の対象の実行計画情報に基づく前記問合せの実行に要する時間より短い場合に、前記再生成した実行計画情報を前記第１の情報処理装置に送信する、
データベースシステム。
【０１９８】
（付記８）
付記１乃至７のいずれかにおいて、
前記生成処理部は、前記第２のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
データベースシステム。
【０１９９】
（付記９）
付記１乃至８のいずれかにおいて、
前記生成処理部は、前記第１の情報と前記問合せとに加え、前記第２のデータベースに対するアクセスの性能に関する第２の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースシステム。
【０２００】
（付記１０）
付記１乃至９のいずれかにおいて、
前記第１の情報は、前記第２のデータベースの所定の項目の値の種類数、前記第２のデータベースのレコード数のいずれか、または両方を示す、
データベースシステム。
【０２０１】
（付記１１）
付記１乃至１０のいずれかにおいて、
前記第２の情報は、前記第２のデータベースに対するアクセスのＩ／Ｏ回数、前記アクセスのＩ／Ｏ時間、前記問合せを実行する際のプロセッサの使用時間、前記問合せによりアクセスされる対象のレコード群の共有ディスクにおけるヒット率、前記問合せによりアクセスされる各アクセスのレコード数、のいずれかまたはその組合せを示す、
データベースシステム。
【０２０２】
（付記１２）
第１の情報処理装置は、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第１データベースの待機系である第２データベースにアクセスする第２の情報処理装置に送信し、
前記第２の情報処理装置は、前記第２のデータベースの特徴を示す第１の情報を、前記第２のデータベースのデータの更新に応じて更新し、前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、再生成した前記実行計画情報を前記第１の情報処理装置に送信する、
ことを特徴とするデータベースアクセス方法。
【０２０３】
（付記１３）
付記１２において、
前記第１の情報処理装置は、前記問合せの実行に応じて生成された前記第１のデータベースの差分情報を、前記第２の情報処理装置に送信し、
前記第２の情報処理装置は、受信した前記差分情報に基づいて、前記第２のデータベース及び前記第１の情報を更新する、
データベースアクセス方法。
【０２０４】
（付記１４）
付記１２または１３において、
前記第１の情報処理装置は、前記第２の情報処理装置から受信した、前記実行計画情報に基づいて前記問合せを実行する、
データベースアクセス方法。
【０２０５】
（付記１５）
付記１２乃至１４のいずれかにおいて、
前記第２の情報処理装置は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第２のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、前記問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースアクセス方法。
【０２０６】
（付記１６）
付記１２乃至１５のいずれかにおいて、
前記第２の情報処理装置は、前記第２のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
データベースアクセス方法。
【０２０７】
（付記１７）
付記１２乃至１６のいずれかにおいて、
前記第２の情報処理装置は、前記第１の情報と前記問合せとに加え、前記第２のデータベースに対するアクセスの性能に関する第２の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースアクセス方法。
【０２０８】
（付記１８）
第１の情報処理装置から、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信し、
前記第１データベースの待機系である第２のデータベースの特徴を示す第１の情報を、前記第２のデータベースのデータの更新に応じて更新し、
前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、
再生成した前記実行計画情報を前記第１の情報処理装置に送信する、
処理をコンピュータに実行させるデータベースアクセスプログラム。
【０２０９】
（付記１９）
付記１８において、
前記受信は、前記問合せの実行に応じて生成された前記第１のデータベースの差分情報を受信し、
前記更新は、受信した前記差分情報に基づいて、前記第２のデータベース及び前記第１の情報を更新する、
データベースアクセスプログラム。
【０２１０】
（付記２０）
付記１８または１９のいずれかにおいて、
前記再生成は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第２のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースアクセスプログラム。
【０２１１】
（付記２１）
付記１８乃至２０のいずれかにおいて、
前記再生成は、前記第２のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
データベースアクセスプログラム。
【０２１２】
（付記２２）
付記１８乃至２１のいずれかにおいて、
前記再生成は、前記第１の情報と前記問合せとに加え、前記第２のデータベースに対するアクセスの性能に関する第２の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースアクセスプログラム。
【０２１３】
（付記２３）
第１の情報処理装置から、第１のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信する受信処理部と、
前記第１データベースの待機系である第２のデータベースの特徴を示す第１の情報を前記第２のデータベースのデータの更新に応じて更新する更新処理部と、
前記第１の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
再生成した前記実行計画情報を前記第１の情報処理装置に送信する第２送信部と、
を備えることを特徴とする情報処理装置。
【０２１４】
（付記２４）
付記２３において、
前記受信処理部は、前記問合せの実行に応じて生成された前記第１のデータベースの差分情報を受信し、
前記更新処理部は、受信した前記差分情報に基づいて、前記第２のデータベース及び前記第１の情報を更新する、
情報処理装置。
【０２１５】
（付記２５）
付記２３または２４のいずれかにおいて、
前記生成処理部は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第２のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
情報処理装置。
【０２１６】
（付記２６）
付記２３乃至２５のいずれかにおいて、
前記生成処理部は、前記第２のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
情報処理装置。
【０２１７】
（付記２７）
付記２３乃至２６のいずれかにおいて、
前記生成処理部は、前記第１の情報と前記問合せとに加え、前記第２のデータベースに対するアクセスの性能に関する第２の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
情報処理装置。
【符号の説明】
【０２１８】
１００：副系のデータベースサーバ、１０５：副系のデータベース、１２０：副系のＤＢアクセスプログラム、２００：正系のデータベースサーバ、２０５：正系のデータベース、２２０：正系のＤＢアクセスプログラム、３００：アプリケーションサーバ
【図１】
0006531587.tif 000002
【図２】
0006531587.tif 000003
【図３】
0006531587.tif 000004
【図４】
0006531587.tif 000005
【図５】
0006531587.tif 000006
【図６】
0006531587.tif 000007
【図７】
0006531587.tif 000008
【図８】
0006531587.tif 000009
【図９】
0006531587.tif 000010
【図１０】
0006531587.tif 000011
【図１１】
0006531587.tif 000012
【図１２】
0006531587.tif 000013
【図１３】
0006531587.tif 000014
【図１４】
0006531587.tif 000015
【図１５】
0006531587.tif 000016
【図１６】
0006531587.tif 000017
【図１７】
0006531587.tif 000018
【図１８】
0006531587.tif 000019
【図１９】
0006531587.tif 000020
【図２０】
0006531587.tif 000021
【図２１】
0006531587.tif 000022
【図２２】
0006531587.tif 000023