JP2017058947A - データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置 - Google Patents

データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置 Download PDF

Info

Publication number
JP2017058947A
JP2017058947A JP2015183154A JP2015183154A JP2017058947A JP 2017058947 A JP2017058947 A JP 2017058947A JP 2015183154 A JP2015183154 A JP 2015183154A JP 2015183154 A JP2015183154 A JP 2015183154A JP 2017058947 A JP2017058947 A JP 2017058947A
Authority
JP
Japan
Prior art keywords
database
information
access
processing apparatus
regenerated
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.)
Granted
Application number
JP2015183154A
Other languages
English (en)
Other versions
JP6531587B2 (ja
Inventor
則久 湯山
Norihisa Yuyama
則久 湯山
泰裕 鈴木
Yasuhiro Suzuki
泰裕 鈴木
直樹 中戸川
Naoki Nakatogawa
直樹 中戸川
藤井 久也
Hisaya Fujii
久也 藤井
佳弘 辻川
Yoshihiro Tsujikawa
佳弘 辻川
修志 関谷
Nobuyuki Sekiya
修志 関谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015183154A priority Critical patent/JP6531587B2/ja
Priority to US15/248,133 priority patent/US20170075955A1/en
Publication of JP2017058947A publication Critical patent/JP2017058947A/ja
Application granted granted Critical
Publication of JP6531587B2 publication Critical patent/JP6531587B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 コンピュータの処理負荷を抑えたアクセスプランを生成するデータベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置を提供する。【解決手段】 第1データベースにアクセスする第1の情報処理装置と、前記第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置とを有し、前記第1の情報処理装置は、前記第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第2の情報処理装置に送信する第1送信部、を備え、前記第2の情報処理装置は、前記第2のデータベースの特徴を示す第1の情報を前記第2のデータベースのデータの更新に応じて更新する更新処理部と、前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、再生成した前記実行計画情報を前記第1の情報処理装置に送信する第2送信部と、を備える。【選択図】図5

Description

本発明は、データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置に関する。
データが格納されるデータベースを管理するデータベースシステムがある。データベースシステムは、クライアントから問合せ(SQL(Structured Query Language)コマンド)を受け、SQLコマンドを実行するために最も効率が良いデータベースのアクセス経路(実行計画情報、アクセスプランともいう)を選択する。そして、データベースシステムは、アクセスプランにしたがってSQLコマンドを実行し、データベースのアクセス処理を実現する。
SQLコマンドの処理に要する時間は、アクセスプランに応じて変化する。データベースシステムは、データベースの特徴情報(最適化情報ともいう)に基づいて、複数のアクセス経路の候補から、処理時間が最小となるアクセス経路をアクセスプランとして生成する。アクセスプランの生成に関する技術に関しては、例えば、特許文献1に記載される。
特開2003−316811号公報
しかしながら、データベースシステムは、データベースの各レコードをスキャンして最適化情報を更新するため、データベースのレコード数が膨大である場合、更新処理の負荷が増加する。このため、データベースシステムが、業務処理を行う業務時間帯に最適化情報を更新する場合、業務処理に遅延が生じる場合がある。
したがって、運用担当者は、例えば、業務時間帯に最適化情報の更新を行わず、業務時間帯の後のメンテナンス処理を行う時間帯等に、最適化情報の更新を行う。ただし、業務時間帯に、最適化情報の更新を行わないことにより、最適化情報と実際のデータベースの状態との間に相違が生じる。実際のデータベースの状態に即していない最適化情報に基づくことにより、データベースシステムは、最適なアクセスプランを生成できない場合がある。
1つの側面では、本発明は、コンピュータの処理負荷を抑えたアクセスプランを生成するデータベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置を提供することを目的とする。
第1の態様によれば、第1データベースにアクセスする第1の情報処理装置と、前記第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置とを有し、前記第1の情報処理装置は、前記第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第2の情報処理装置に送信する第1送信部、を備え、前記第2の情報処理装置は、前記第2のデータベースの特徴を示す第1の情報を前記第2のデータベースのデータの更新に応じて更新する更新処理部と、前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、再生成した前記実行計画情報を前記第1の情報処理装置に送信する第2送信部と、を備える。
1つの側面では、コンピュータの処理負荷を抑えたアクセスプランを生成できる。
本実施の形態におけるデータベースシステムの構成を説明する図である。 比較例における、ミラーリングシステムの処理の流れを模式的に説明する図である。 アクセスプランAPの一例を示す図である。 アクセスプランAPの生成から破棄までの処理の流れを説明する図である。 本実施の形態におけるデータベースシステムの処理の流れを説明するフローチャート図である。 本実施の形態における副系のデータベースサーバ100が再生成した、アクセスプランAPrの一例を示す図である。 正系のDBアクセスプログラムが生成したアクセスプランAP(図3)にしたがって、SQLコマンドsqを実行した場合の処理時間を示す図である。 副系のDBアクセスプログラムが再生成したアクセスプランAPr(図6)にしたがって、SQLコマンドsqを実行した場合の処理時間を示す図である。 本実施の形態における正系のデータベースサーバ(第1の情報処理装置)200のハードウェア構成図である。 図9に示した、正系のデータベースサーバ200のソフトウェアブロックの構成図である。 本実施の形態における副系のデータベースサーバ(第2の情報処理装置)100のハードウェア構成図である。 図11に示した、副系のデータベースサーバ100のソフトウェアブロックの構成図である。 本実施の形態における、正系のデータベースサーバ200のDBアクセスプログラム220、及び、副系のデータベースサーバ100のDBアクセスプログラム120の処理の詳細を模式的に説明する図である。 正系のデータベースサーバ200の最適化情報231の一例を示す図である。 更新最適化情報131rの一例を示す図である。 正系のDBアクセスプログラム220による、アクセスプランAPの再生成の指示処理の流れを説明する図である。 正系のDBアクセスプログラム220による、副系のアクセスプログラムによって再生成されたアクセスプランAPの受信処理の流れを説明する図である。 副系のDBアクセスプログラム120による、アクセスプランAPの再生成処理を説明するフローチャート図である。 図18のフローチャート図の工程S48の処理の詳細を説明するフローチャート図である。 図18のフローチャート図の工程S43の処理の詳細を説明するフローチャート図である。 アクセスプランAPを再生成するSQLコマンドsqの優先順位を説明する図である。 図19のフローチャート図の工程S52の処理の詳細を説明するフローチャート図である。
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[データベースシステム]
図1は、本実施の形態におけるデータベースシステムの構成を説明する図である。図1に示すデータベースシステムは、正系のデータベースサーバ200、副系のデータベースサーバ100、及び、アプリケーションサーバ300を有する。正系のデータベースサーバ200、副系のデータベースサーバ100、及び、アプリケーションサーバ300は、相互に接続する。また、正系、副系のデータベースサーバ100、200は、それぞれ、データベース105、205を有する。
図1に示すデータベースシステムは、ミラーリングシステムである。ミラーリングシステムは、ハードウェア、ソフトウェアを含め、業務で運用するデータベースサーバを二重化したシステムである。副系のデータベースサーバ100は、正系のデータベースサーバ200の待機系のサーバである。
即ち、副系のデータベースサーバ100のハードウェアは、正系のデータベースサーバ200のハードウェアと同様のスペックを有する。また、副系のデータベース105のデータベース(副系のデータベース105ともいう)は、正系のデータベースサーバ200のデータベース(正系のデータベース205ともいう)と同様の情報を有する。
また、図1に示す、正系、副系のデータベース105、205は、例えば、リレーショナル型のデータベースである。それぞれのデータベース105、205は、データを格納する複数のテーブルと、テーブルに格納されたデータを示すインデックス(索引)情報を格納するインデックスとを有する。
図1に示すアプリケーションサーバ300は、アプリケーションを実行して、業務の処理を行う。アプリケーションサーバ300は、正系のデータベース205にアクセスする場合、SQL(Structured Query Language)コマンドを、正系のデータベースサーバ200に送信する。SQLコマンド(問合せ)は、データベースに対するデータのアクセス処理や、データベースの定義を指示するデータベース言語(問い合わせ言語)である。
正系のデータベースサーバ200は、SQLコマンドの受信に応じて、データベース205に対するアクセス処理を行う。アクセス処理は、例えば、データの検索(SELECT)、追加(INSERT)、削除(DELETE)、更新(UPDATE)等を示す。
また、正系のデータベースサーバ200は、データベース205の更新に応じて、更新された情報を含む更新差分データ141を生成し、副系のデータベースサーバ100に送信する。副系のデータベースサーバ100は、受信した更新差分データ141にしたがって、データベース105を更新する。
このように、ミラーリングシステムでは、正系のデータベースサーバ200がアプリケーションサーバ300からの要求に応じて更新したデータを、逐一、副系のデータベース105に反映する。これにより、副系のデータベース105は、正系のデータベース205と同一の情報を保持する。
[比較例]
図2は、比較例における、ミラーリングシステムの処理の流れを模式的に説明する図である。図2は、正系のデータベースサーバ200x、及び、副系のデータベースサーバ100xを示す。正系、副系のデータベースサーバ100x、200xでは、データベース105x、205xに関する一連の処理、管理処理を行うDB(DataBase:DB)アクセスプログラム(図2に図示せず)がそれぞれ動作する。
正系のデータベースサーバ200xのDBアクセスプログラムは、アプリケーションサーバの要求に応じて、実行対象のSQLsqコマンドと最適化情報231xとに基づいて、アクセスプランAPを生成する。最適化情報231xは、データベース205xが有するレコード群の特徴を示す情報である。
アクセスプランAPは、SQLsqコマンドを実行する際の、最適な、データベースのアクセス経路を示す。アクセス経路は、SQLsqコマンドを実行するために、いずれのテーブルやインデックスに、いずれの順にアクセスするか等を示す計画である。最適なアクセス経路は、SQLsqコマンドの処理時間(応答時間)が最小となるアクセス経路である。
正系のDBアクセスプログラムは、アクセスプランAPにしたがって、SQLsqコマンドを実行して、データベース205xに対するアクセス処理を行う。正系のDBアクセスプログラムは、データベース205xの更新情報に基づいて更新差分データ141xを生成し、副系のデータベースサーバ100xに送信する。
副系のデータベースサーバ100xのDBアクセスプログラムは、受信した更新差分データ141xに基づいてデータベース105xを更新する。これにより、副系のデータベース105xは、正系のデータベース205xと同様の内容を保持する。
[アクセスプランAP]
図3は、アクセスプランAPの一例を示す図である。図3に示すアクセスプランAPは、SQLコマンド「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」sqを実行する際のアクセス経路のプランを示す。
本実施の形態におけるデータベース105、205は、例えば、項目「COL01」、及び、項目「COL02」を有するテーブル「PRE1_TBL」を有する。また、データベースは、項目「COL01」をキーとして有するインデックス「TBL11_DSO_I」、及び、項目「COL02」をキーとして有するインデックス「TBL12_DSO_I」を有する。
SQLコマンドsq「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」は、テーブル「PRE1_TBL」から、項目「COL02」が値「20」であって、項目「COL01」が値「10」のレコードの検索を指示する問合せである。
図3に示すアクセスプランAPは、インデックス「TBL11_DSO_I」にアクセスして、SQLコマンドsqを実行する計画を示す。具体的に、アクセスプランAPは、インデックス「TBL11_DSO_I」にアクセスして、項目「COL01」が値「10」のレコードを抽出する第1工程f1と、抽出結果に基づいて項目「COL02」が値「20」のレコードを抽出する第2工程f2とを有する。
より具体的に、第1工程f1は、インデックス「TBL11_DSO_I」にアクセスして、項目「COL01」が値「10」のレコードを抽出し、テーブル「SORT0001」に挿入する工程を示す。第2工程f2は、テーブル「SORT0001」とテーブル「PRE1_TBL」とをスキャンして、項目「COL02」が値「20」であるレコードを抽出する工程を示す。
[アクセスプランAPの生成から破棄まで]
図4は、アクセスプランAPの生成から破棄までの処理の流れを説明する図である。図4は、アプリケーションサーバ300で動作するプログラムprの一例を示す。アプリケーションのプログラムprは、SQLコマンドsqを呼出すことによって、データベース(例えば、図1の205)へのアクセス処理を実現する。
プログラムprは、SQLコマンドsqのアクセスプランAPを生成して、アクセスプランAPにしたがってSQLコマンドsqを実行し、アクセスプランAPを破棄する一連の処理を指示する記述(SQL文)を有する。
具体的に、図4に示すように、プログラムprは、アクセス処理を指示するSQLコマンドsqの前に、当該SQLコマンドsqのアクセスプランAPの生成を指示するSQL文c1を有する。また、プログラムprは、生成したアクセスプランAPに基づくSQLコマンドsqの実行を指示するSQL文c2、及び、アクセスプランAPを破棄するSQL文c3を有する。SQL文c2は、アクセス処理の実行回数(n回)の指定を含む。
[最適化情報の更新]
DBアクセスプログラムは、例えば、任意に入力される、最適化情報の更新を指示するコマンド等にしたがって、最適化情報を更新する。最適化情報は、データベースの特徴を示す情報である。最適化情報は、例えば、インデックスにおける値の種類の数(以下、種類数ともいう)や、テーブルのレコード数等を示す。
DBアクセスプログラムは、データベースが有するレコード群をスキャンすることによって、最適化情報を更新する。したがって、レコード数が膨大である場合、最適化情報の更新処理の負荷は高く、最適化情報の更新処理に要する時間も長くなる。
これにより、業務処理を行う時間帯(以下、業務時間帯ともいう)に最適化情報の更新処理を行う場合、DBアクセスプログラムの負荷が増大してアクセス処理の応答時間が長くなり、業務処理に遅延が生じる場合がある。このため、運用担当者は、例えば、業務時間帯の後のメンテナンス期間や、業務の少ない夜間の時間帯等に、最適化情報の更新処理を指示する。
ただし、データベースのレコードは業務時間帯に大きく変動し得るため、業務時間帯に最適化情報が大きく変動し得る。業務時間帯に最適化情報の更新処理を行わないことにより、実際のデータベースの状態と最適化情報との間に相違が生じる。つまり、最適化情報が、実際のデータベースの状態と連動していない状態が生じ得る。
図2で前述したとおり、DBアクセスプログラムは、最適化情報に基づいて、SQLコマンドsqのアクセスプランAPを生成する。実際のデータベースの状態と連動していない最適化情報に基づくことによって、最適なアクセスプランAPを生成できない場合が生じる。最適なアクセスプランAPを生成するために、データベースの状態に即した最適化情報に基づいて、アクセスプランAPを生成することが望ましい。
[本実施の形態の概要]
本実施の形態におけるデータベースシステムは、第1データベースにアクセスする第1の情報処理装置と、第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置とを有する。
第1の情報処理装置は、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、第2の情報処理装置に送信する第1送信部、を有する。
第2の情報処理装置は、第2のデータベースの特徴を示す第1の情報を第2のデータベースのデータの更新に応じて更新する更新処理部を有する。また、第2の情報処理装置は、第1の情報と問合せとに基づいて、再生成の対象の実行計画情報を再生成する生成処理部と、再生成した実行計画情報を第1の情報処理装置に送信する第2送信部と、を有する。
これにより、第2の情報処理装置は、第2のデータベースのデータの更新に応じて更新した第1の情報に基づいて、最適な実行計画情報を再生成できる。そして、第1の情報処理装置は、最適な実行計画情報にしたがって問合せを実行することによって、問合せの処理時間を短縮できる。また、第1の情報処理装置は、第1の情報の更新処理を行わないことにより、コンピュータの処理負荷の増大を抑制し、業務処理の遅延の発生を回避できる。
図5は、本実施の形態におけるデータベースシステムの処理の流れを説明するフローチャート図である。第1の情報処理装置は正系のデータベースサーバ200(図1)に、第2の情報処理装置は副系のデータベースサーバ100(図1)に対応する。また、第1のデータベースは正系のデータベース205(図1)に、第2のデータベースは、副系のデータベース105(図1)に対応する。
S11:正系のデータベースサーバ200は、正系のデータベース205に対する実行計画情報(アクセスプランAP)のうち、再生成の対象の実行計画情報に対応する問合せ(SQLコマンドsq)を、副系のデータベースサーバ100に送信する。
正系のデータベースサーバ200は、例えば、複数のSQLコマンドsqを並行して実行する。例えば、正系のデータベースサーバ200は、実行中のSQLコマンドsqのアクセスプランAPのうち、再生成することによって効果が生じ得る更新や検索等を指示するSQLコマンドsqを、副系のデータベースサーバ100に送信する。
S12:副系のデータベースサーバ100は、副系のデータベース105の特徴を示す第1の情報(最適化情報)を、副系のデータベース105のデータの更新に応じて更新する。前述したとおり、第1の情報(最適化情報)は、例えば、副系のデータベース105の所定の項目の値の種類の数(種類数)や、レコード数のいずれか、または両方を示す。
S13:副系のデータベースサーバ100は、第1の情報(最適化情報)と問合せ(SQLコマンドsq)とに基づいて実行計画情報(アクセスプランAP)を再生成する。即ち、副系のデータベースサーバ100は、正系のデータベース205から受信したSQLコマンドsqと、最新の状態に更新された最適化情報とに基づいて、アクセスプランAPを生成する。これにより、副系のデータベースサーバ100は、実際のデータベース105の状態に即した最適化情報に基づいて、最適なアクセスプランAPを生成できる。
S14:副系のデータベースサーバ100は、再生成した実行計画情報(アクセスプランAP)を正系のデータベースサーバ200に送信する。図4で前述したとおり、複数(n回)回実行されるSQLコマンドsqがある。n回分のSQLコマンドsqの実行が完了していない場合、正系のDBアクセスプログラムは、当該SQLコマンドsqのアクセスプランAPを、副系のDBアクセスプログラムが再生成したアクセスプランAPに置き換える。
これにより、正系のデータベースサーバ200は、最新のデータベース205の特徴を示す最適化情報に基づくアクセスプランAPにしたがって、SQLコマンドsqを実行できる。この結果、SQLコマンドsqの処理時間が短縮され、データベース205に対するアクセス処理の性能が向上する。また、正系のデータベースサーバ200は、アクセスプランAPの再生成のために最適化情報の更新処理を行わないことにより、コンピュータの処理負荷を抑えたアクセスプランAPを生成できる。
[再生成したアクセスプラン]
図6は、本実施の形態における副系のデータベースサーバ100が再生成した、アクセスプランAPrの一例を示す図である。図6に示すアクセスプランAPrは、図3に示したアクセスプランAPと同一のSQLコマンドsqに対応するアクセスプランである。SQLコマンドsqは、図3に示したとおりである。
図6に示すアクセスプランAPrは、最新の状態に更新された最適化情報に基づくアクセスプランである。本実施の形態例では、データベース105に対するアクセス処理の結果、インデックス「TBL12_DSO_I」の値の種類数が、インデックス「TBL11_DSO_I」に対して多くなる場合を例示する。つまり、アクセス処理の結果、項目「COL02」の値の種類数が、項目「COL01」の値の種類数より大きくなった場合を示す。
図6に示すアクセスプランAPrは、インデックス「TBL12_DSO_I」にアクセスして、SQLコマンドsqを実行する計画を示す。具体的に、アクセスプランAPrは、インデックス「TBL12_DSO_I」にアクセスして、項目「COL02」が値「20」のレコードを抽出する第1工程f11と、抽出結果に基づいて項目「COL01」が値「10」のレコードを抽出する第2工程f12とを有する。
より具体的に、第1工程f11は、インデックス「TBL12_DSO_I」にアクセスして、項目「COL02」が値「20」のレコードを抽出し、テーブル「SORT0001」に挿入する工程を示す。第2工程f12は、テーブル「SORT0001」とテーブル「PRE1_TBL」とをスキャンして、項目「COL01」が値「10」であるレコードを抽出する工程を示す。
前述したとおり、本実施の形態例では、インデックス「TBL12_DSO_I」の種類数は、インデックス「TBL11_DSO_I」に対して多い。これにより、インデックス「TBL12_DSO_I」にアクセスすることによって、第1工程で抽出するレコードをより効果的に、絞り込むことが可能になる。第1工程で抽出するレコード数が少ないことにより、処理時間を短縮可能になる。また、第2工程で参照する、第1工程で抽出されたレコード数が少ないことにより、第2工程の処理時間を短縮可能になる。
したがって、図6に示すアクセスプランAPrによると、インデックス「TBL12_DSO_I」にアクセスすることによって、より効率的に、アクセス処理(SELECT)を行うことが可能になる。即ち、データベース105の実際の状態を反映した最適化情報に基づくことにより、データベース105の特徴に則した、最適なアクセスプランAPrを生成可能になる。
次に、図7、図8にしたがって、図3、図6に示したアクセスプランAPにしたがってSQLコマンドsqを実行したことによる、処理時間(コスト)の短縮例を説明する。
[処理時間]
図7は、正系のDBアクセスプログラムが生成したアクセスプランAP(図3)にしたがって、SQLコマンドsqを実行した場合の処理時間を示す図である。図7は、処理時間とアクセス履歴とを有する、SQLコマンドsqのトレース情報TR1を示す。情報h1、h2については、図22にしたがって後述する。
図7に示す矢印Y1は、SQLコマンドsq「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」の処理が完了するまでの処理時間「038ms」を示す。矢印Y2に示す処理時間「009ms」、及び、矢印Y3に示す処理時間「016ms」は、処理時間「038ms」の内訳の時間を示す。
具体的に、矢印Y2に示す処理時間「009ms」は、インデックス「TBL11_DSO_I」から、項目「COL01」が値「10」のレコードを抽出する第1工程(図3のf1)の処理時間を示す。また、矢印Y3に示す処理時間「016ms」は、抽出結果に基づいて項目「COL02」が値「20」のレコードを抽出する第2工程(図3のf2)の処理時間を示す。
図8は、副系のDBアクセスプログラムが再生成したアクセスプランAPr(図6)にしたがって、SQLコマンドsqを実行した場合の処理時間を示す図である。図8は、処理時間とアクセス履歴とを有する、SQLコマンドsqのトレース情報TR2を示す。情報h11、h12については、図22にしたがって後述する。
図8に示す矢印Y11は、SQLコマンドsq「SELECT*FROM PRE_SCH.PRE1_TBL WHERE COL02=20 AND COL01=10」の処理が完了するまでの処理時間「011ms」を示す。また、矢印Y12に示す処理時間「000ms」、及び、矢印Y13に示す処理時間「010ms」は、処理時間「011ms」の内訳の時間を示す。
具体的に、矢印Y12に示す処理時間「000ms」は、インデックス「TBL12_DSO_I」から、項目「COL02」が値「20」のレコードを抽出する第1工程(図6のf11)の処理時間を示す。また、矢印Y13に示す処理時間「010ms」は、抽出結果に基づいて項目「COL01」が値「10」のレコードを抽出する第2工程(図6のf12)の処理時間を示す。
図7、図8に示すように、副系のDBアクセスプログラムが再生成したアクセスプランAPrにしたがって、SQLコマンドsqを実行することによって、SQLコマンドsqの処理時間が、時間「038ms」から時間「011ms」に短縮されている。
次に、図9〜図12にしたがって、正系、副系のデータベースサーバ100、200のハードウェア構成、及び、ソフトウェアブロック図を説明する。
[正系のデータベースサーバ200のハードウェア構成図]
図9は、本実施の形態における正系のデータベースサーバ(第1の情報処理装置)200のハードウェア構成図である。データベースサーバ200は、例えば、CPU(Central Processing Unit:CPU)201、メインメモリ210や補助記憶装置211等を備えるメモリ202、通信インタフェース部203、ディスクインタフェース部204、データベース205を有する。各部は、バス206を介して相互に接続する。
CPU201は、バス206を介してメモリ202等と接続するとともに、データベースサーバ全体の制御を行う。通信インタフェース部203は、副系のデータベースサーバ100や、アプリケーションサーバ300(図1)と接続し、データの送受信を行う。
RAM(Random Access Memory:RAM)等を示すメインメモリ210は、CPU201が処理を行うデータ等を記憶する。メインメモリ210は、アクセスプラン格納領域APや、性能情報格納領域232を有する。
アクセスプラン格納領域APのアクセスプラン(以下、アクセスプランAPと称する)は、実行中のSQLコマンドsqのアクセスプランAPを示す。アクセスプランAPの詳細は、図3に示したとおりである。性能情報格納領域232の性能情報(以下、性能情報232と称する)は、データベース205に対するアクセス処理の性能に関する情報を示す。
補助記憶装置211は、CPU201が実行するオペレーションシステムのプログラムを格納する領域(図示せず)や、DBアクセスプログラム格納領域220、最適化情報格納領域等231を有する。補助記憶装置211は、HDD(Hard disk drive:HDD)、不揮発性半導体メモリ等を示す。
DBアクセスプログラム格納領域220のDBアクセスプログラム(以下、DBアクセスプログラム220と称する)は、CPU201の実行によって、データベース管理システム(DataBase Management System:DBMS)の処理を実現する。DBMSの処理は、例えば、データベース205に対するアクセスの制御や、データベース205の管理処理等を示す。
最適化情報格納領域231の最適化情報(以下、最適化情報231と称する)は、データベース205の特徴を示す情報である。正系の最適化情報231の詳細は、図14にしたがって後述する。
[正系のソフトウェアブロック図]
図10は、図9に示した、正系のデータベースサーバ200のソフトウェアブロックの構成図である。図10に示すように、正系のDBアクセスプログラム220は、アクセス管理モジュール221、アクセスモジュール222、同期管理モジュール223を有する。
アクセス管理モジュール221は、アプリケーションサーバ300から受信した、アクセスプランAPの生成指示(図4のc1)にしたがって、SQLコマンドsqのアクセスプランAPを生成する。アクセス管理モジュール221は、SQLコマンドsqと最適化情報231とに基づいて、メモリ210上にアクセスプランAPを生成する。
また、アクセス管理モジュール222は、副系のデータベースサーバ100から、再生成したアクセスプランAPrを受信した場合に、メモリ210上のアクセスプランAPを、受信したアクセスプランAPrに置き換える。
アクセスモジュール222は、アクセスプランAPにしたがってSQLコマンドsqを実行し、データベース205のアクセス処理を行う。また、アクセスモジュール222は、最適化情報の更新指示に応じて、最適化情報231を更新する。
同期管理モジュール223は、データベース205に更新が生じた場合に、データベース205の更新情報を示す更新差分データ141を生成し、副系のデータベースサーバ100に送信する。また、同期管理モジュール223は、アクセスプランAPの再生成対象のSQLコマンドsqと、アクセスプランAPとを、副系のデータベースサーバ100に送信する。
[副系のデータベースサーバ100のハードウェア構成図]
図11は、本実施の形態における副系のデータベースサーバ(第2の情報処理装置)100のハードウェア構成図である。データベースサーバ100は、例えば、CPU(Central Processing Unit:CPU)101、メインメモリ110や補助記憶装置111等を備えるメモリ102、通信インタフェース部103、ディスクインタフェース部104、データベース105を有する。各部は、バス106を介して相互に接続する。
CPU101は、バス106を介してメモリ102等と接続するとともに、データベースサーバ全体の制御を行う。通信インタフェース部103は、正系のデータベースサーバ200や、アプリケーションサーバ300(図1)と接続し、データの送受信を行う。
RAM(Random Access Memory:RAM)等を示すメインメモリ110は、CPU101が処理を行うデータ等を記憶する。メインメモリ110は、性能情報格納領域132や、更新最適化情報格納領域131rを有する。
性能情報格納領域132の性能情報(以下、性能情報132と称する)は、データベース105に対するアクセス処理の性能に関する情報を示す。更新最適化情報格納領域131rの更新最適化情報(以下、更新最適化情報131rと称する)は、最新のデータベース105の特徴を示す情報であって、アクセスプランAPの再生成のために参照する情報を示す。更新最適化情報131rの詳細は、図15にしたがって後述する。
副系のデータベースサーバ100は、正系のデータベースサーバ200の待機系のサーバであるため、最適化情報を正系と同様の状態に維持する必要がある。したがって、副系のDBアクセスプログラム120は、正規の最適化情報131とは別に、メモリ110上に更新最適化情報131rを保持する。
補助記憶装置111は、CPU101が実行するオペレーションシステムのプログラムを格納する領域(図示せず)や、DBアクセスプログラム格納領域120、最適化情報格納領域131、正系情報格納領域140等を有する。補助記憶装置111は、HDD(Hard disk drive:HDD)、不揮発性半導体メモリ等を示す。
DBアクセスプログラム格納領域120のDBアクセスプログラム(以下、DBアクセスプログラム120と称する)は、CPU101の実行によって、DBMSの処理を実現する。DBMSの処理は、データベース105に対するアクセスの制御や、データベース105の管理処理等を示す。
最適化情報格納領域131の最適化情報(以下、最適化情報131と称する)は、データベース105の特徴を示す情報である。また、最適化情報131は、副系のデータベースサーバ100の正規の最適化情報であって、正系の最適化情報231と同様の情報を有する。
正系情報格納領域140の正系情報(以下、正系情報140と称する)は、正系のDBアクセスプログラム220から受信した情報を示す。正系情報140は、例えば、更新差分データ141、正系のDBアクセスプログラム120が生成した正系のアクセスプランAP、及び、アクセスプランAPの再生成対象のSQLコマンドsq等を含む。更新差分データ141は、データベース205の更新情報を有するバイナリデータである。
[副系のソフトウェアブロック図]
図12は、図11に示した、副系のデータベースサーバ100のソフトウェアブロックの構成図である。図12に示すように、副系のDBアクセスプログラム120は、アクセスプラン再生成モジュール121、アクセスモジュール122、同期管理モジュール123を有する。
同期管理モジュール123は、正系情報140の更新差分データ141に基づいて、データベース105を更新する。アクセスモジュール122は、データベース105のアクセス処理を行う。例えば、アクセスモジュール122は、アプリケーションサーバ300や、ユーザインタフェース等によるアクセス要求等にしたがって、データの参照等のアクセス処理を行う。また、アクセスモジュール122は、最適化情報の更新指示に応じて、正規の最適化情報131を更新する。
アクセスプラン再生成モジュール121は、更新差分データ141に基づいて、メモリ110上の更新最適化情報131rを更新する。また、アクセスプラン再生成モジュール121は、正系情報140のSQLコマンドsqと、更新最適化情報131rとに基づいて、新アクセスプランAPrを生成する。
そして、アクセスプラン再生成モジュール121は、再生成した新アクセスプランAPrの処理時間が、正系情報140のアクセスプランAPの処理時間より短い場合に、アクセスプランAPrを正系のデータベースサーバ200に送信する。
次に、図15にしたがって、本実施の形態におけるDBMSの処理の詳細を説明する。
[処理の流れ]
図13は、本実施の形態における、正系のデータベースサーバ200のDBアクセスプログラム220、及び、副系のデータベースサーバ100のDBアクセスプログラム120の処理の詳細を模式的に説明する図である。
図2の比較例と同様にして、正系のDBアクセスプログラム220は、アプリケーションサーバ300からのアクセス要求に応じて、SQLコマンドsqと最適化情報231とに基づいて、アクセスプランAPを生成する。そして、正系のDBアクセスプログラム120は、生成したアクセスプランAPにしたがって、SQLコマンドsqを実行する。
(正系の最適化情報231)
図14は、正系のデータベースサーバ200の最適化情報231の一例を示す図である。図14は、最適化情報231の一例として、レコード数「Records」g1、値の種類数「Different key」g2、g3を示す。運用担当者は、業務に影響を生じさせないために、例えば、メンテナンス期間に、最適化情報231の更新処理を指示する。
図14の最適化情報231によると、テーブル「TBL1_DSI」のレコード数は値「217563」である。また、インデックス「TBL11_DSI_I」の値種類数は値「407」、インデックス「TBL12_DSI_I」の値種類数は、値「388」である。つまり、インデックス「TBL12_DSI_I」の値種類数は、インデックス「TBL11_DSI_I」に対して少ない。
したがって、DBアクセスプログラム220は、図3に示したアクセスプランAPを生成する。図13に戻り、SQLコマンドsqを実行すると、DBアクセスプログラム220は、更新差分データ141を生成する。そして、DBアクセスプログラム220は、更新差分データ141、アクセスプランAPの再生成対象のSQLコマンドsq、及び、アクセスプランAPを、副系のデータベースサーバ100に送信する(a1)。
副系のDBアクセスプログラム120は、更新差分データ141を受信すると、更新差分データ141に基づいて、副系のデータベース105を更新する(a2)。これにより、副系のデータベース105は、正系のデータベース205と同一の状態に更新される。また、副系のDBアクセスプログラム120は、受信した更新差分データ141に基づいて、メモリ110上に保持した更新最適化情報131rを更新する(a3)。
前述したとおり、更新最適化情報131rは、副系のデータベース105の正規の最適化情報131とは異なる情報である。更新最適化情報131rは、副系のデータベース105の最新の状態に基づくのに対し、正規の最適化情報131は、正系の最適化情報231と同様の状態に維持される。
(更新最適化情報131r)
図15は、更新最適化情報131rの一例を示す図である。図15の更新最適化情報131rは、図14に示した最適化情報231に対し、テーブル「TBL1_DSI」のレコード数g11が値「563613」に増加している。また、図14に示した最適化情報231に対し、インデックス「TBL11_DSI_I」の値の種類数g12は、値「407」から値「456」に増加し、インデックス「TBL12_DSI_I」の値の種類数g13は、値「388」から値「1236」に増加している。
図15の更新最適化情報131rによると、インデックス「TBL12_DSO_I」の値種類数g13は、インデックス「TBL11_DSO_I」の値種類数g12に対して多い。これは、データベースへのアクセス処理の結果、図14に示した最適化情報231に対し、項目「COL02」の値の種類が、項目「COL01」より分散した場合を示す。
このように、正系のデータベースサーバ200は、SQLコマンドsq(問合せ)に応じて生成された正系のデータベース205の差分情報(更新差分データ141)を、副系のデータベースサーバ100に送信する。そして、副系のデータベースサーバ100は、受信した差分情報(更新差分データ141)に基づいて、副系のデータベース105及び更新最適化情報131r(第1の情報)を更新する。
更新差分データ141に基づくことにより、副系のデータベースサーバ100は、レコード群をスキャンすることなく、簡易に更新最適化情報131rを更新できる。したがって、副系のデータベースサーバ100は、負荷を増大させることなく、効率的に、更新最適化情報131rを、実際の副系のデータベース105に基づく最新の状態に更新できる。
図13に戻り、副系のDBアクセスプログラム120は、所定期間におけるデータベース105のデータの変化率が基準値を超える場合に、図15に示した更新最適化情報131rに基づいて、SQLコマンドsqの新アクセスプランAPrを生成する(a4)。つまり、副系のデータベースサーバ100は、副系のデータベース105のデータの変化率が基準値を超えた場合に、アクセスプランAPを再生成する。
所定期間におけるデータの変化率が基準値を超えた場合、更新最適化情報231rが大きく変化するため、最適なアクセス経路が変化する可能性が高い。したがって、副系のDBアクセスプログラム120は、データの変化率が基準値を超えた場合にアクセスプランAPを再生成することによって、最適なアクセス経路が変化する可能性があるタイミングに、適切にアクセスプランAPを再生成できる。
また、副系のDBアクセスプログラム120は、受信したSQLコマンドsqの順番ではなく、データの変化率や実行回数等に基づいて判定した優先順位にしたがって、SQLコマンドsqのアクセスプランAPを生成する。
実行回数の多いSQLコマンドsqは、実行回数が多いことにより、処理時間の改善度合いが高い。また、データの変化率の高いテーブルにアクセスするSQLコマンドsqは、更新最適化情報231rが大きく変化していることにより、最適なアクセス経路が変化する可能性が高い。
一方、SQLコマンドsqの受信順にアクセスプランAPを再生成すると、改善効果が高いSQLコマンドsqのアクセスプランAPの再生成処理が後回しになる場合がある。したがって、副系のデータベースサーバ100は、再生成の対象の実行計画情報(アクセスプランAP)が複数存在する場合、問合せの優先順位を判定する。副系のデータベースサーバ100は、SQLコマンドsq(問合せ)によりアクセスされる副系のデータベース105のデータの変化率、問合せの実行回数のいずれかまたは両方に基づいて、問合せの優先順位を判定する。
そして、副系のデータベースサーバ100は、優先順位の高い実行計画情報(アクセスプランAP)を優先的に再生成する。これにより、改善の度合いが高いSQLコマンドsqのアクセスプランAPを優先的に最適化可能になり、正系のデータベース105へのアクセス処理をより効率化することが可能になる。
次に、副系のDBアクセスプログラム120は、再生成したアクセスプランAPrの処理時間が、正系のアクセスプランAPの処理時間より短い場合に、再生成したアクセスプランAPrを、正系のDBアクセスプログラム120に送信する(a5)。SQLコマンドsqの処理時間は、更新最適化情報131rに加え、環境要因や性能情報132等の影響に応じて変動する場合がある。したがって、再生成したアクセスプランAPrの処理時間が、再生成する前のアクセスプランAPに対して、必ずしも、短縮されているとは限らない。
このため、正系のデータベースサーバ200は、再生成の対象の実行計画情報(アクセスプランAP)を、副系のデータベースサーバ100にさらに送信する。そして、副系のデータベースサーバ100は、再生成したアクセスプランAPrに基づくアクセスに要する時間(処理時間)が、受信したアクセスプランAPに基づく処理時間より短い場合に、アクセスプランAPrを正系のデータベースサーバ200に送信する。
つまり、アクセスプランAPを再生成した場合であっても、正系のデータベースサーバ200から受信したアクセスプランAPに基づく処理時間が最小である場合、副系のデータベースサーバ100は、再生成したアクセスプランAPrを送信しない。これにより、正系のDBアクセスプログラム220は、処理時間が短縮される最適なアクセスプランAPのみを取得できるとともに、不要な通信処理を省略できる。
アクセスプランAPrを受信した場合、正系のDBアクセスプログラム120は、保持しているアクセスプランAPに上書きし(a6)、更新後のアクセスプランAPrにしたがって、SQLコマンドsqを実行する。即ち、正系のデータベースサーバ200は、副系のデータベースサーバ100から受信した、アクセスプランAPに基づいてSQLコマンドsq(問合せ)を実行する。
これにより、正系のデータベースサーバ200は、実際の副系のデータベース105を反映した更新最適化情報131rに基づく、最適なアクセスプランAPrにしたがって、SQLコマンドsqを実行することで、処理時間を短縮できる。
このように、本実施の形態におけるデータベースシステムは、更新差分データ141を反映する際に、更新差分データ141に基づいて、メモリ110上に保持する更新最適化情報131rを更新する。これにより、副系のDBアクセスプログラム120は、データベース105の状態に即した更新最適化情報131rに基づいて、最適なアクセスプランAPrを生成できる。また、副系の正規の最適化情報131は、正系の最適化情報231と同様の状態に維持される。
また、正系のデータベースサーバ200は、最適化情報231の更新処理を行わないことにより、コンピュータの処理負荷を抑えたアクセスプランAPを生成でき、データベース205に対するアクセス処理を効率化できる。これにより、ミラーリングシステムを適切に管理しながら、ミラーリングシステムの副系のデータベースサーバ100を利用することによって、正系の業務処理をより効率的に行うことを可能にする。
[性能情報132]
なお、図13は、副系のDBアクセスプログラム120が、SQLコマンドsqと更新最適化情報131rに基づいて、アクセスプランAPrを生成する場合を例示した。副系のデータベースサーバ100は、第1の情報(更新最適化情報131r)と問合せ(SQLコマンドsq)とに加え、副系のデータベース105に対するアクセスの性能に関する第2の情報(性能情報132)に基づいてアクセスプランAPを再生成してもよい。
性能情報132は、データベースに対するアクセスの性能に関する情報を示す。性能情報132は、例えば、副系のデータベース105に対するアクセスのI/O回数、アクセスのI/O時間、問合せを実行する際のプロセッサの使用時間等を示す。また、性能情報132は、問合せ(SQLコマンドsq)によりアクセスされる対象のレコード群の共有ディスクにおけるヒット率、問合せによりアクセスされる各アクセスのレコード数等を示す。性能情報132は、上記の情報のいずれかまたはその組合せであってもよい。
例えば、表結合(JOIN)を指示するSQLコマンドsqのアクセスプログラムを生成する場合、DBアクセスプログラム120は、レコード数に応じて行の結合方法を選択し、アクセスプランAPを生成する。具体的に、例えば、DBアクセスプログラム120は、レコード数が所定値を超えた場合、アクセスプランAPにおける結合方法を、方法「FETCH_JOIN」から、方法「MARGE_JOIN」に切り替える。
ただし、更新最適化情報131rのみに基づいてアクセスプランAPを再生成する場合、方法「MARGE_JOIN」に切り替えたことによって、処理時間が長くなる場合がある。具体的に、結合対象のテーブルのI/Oの性能が高い(即ち、I/O処理時間が短い)場合、SQLコマンドsqの処理時間が長くなる場合がある。
したがって、副系のDBアクセスプログラム120、さらに性能情報132に基づくことによって、総合的に適切なアクセスプランAPを生成できる。これにより、SQLコマンドsqの処理時間をさらに短縮可能になる。処理の詳細は、図22にしたがって後述する。
次に、図16、図17のフローチャート図にしたがって、正系のデータベースサーバ200のDBアクセスプログラム220の処理の詳細を説明する。
[正系のDBアクセスプログラム220の処理の流れ]
図16は、正系のDBアクセスプログラム220による、アクセスプランAPの再生成の指示処理の流れを説明する図である。
S21:正系のDBアクセスプログラム220のアクセス管理モジュール221は、SQLコマンドsqの実行指示に応じて、SQLコマンドsqのアクセスプランAPを生成する。アクセス管理モジュール221は、SQLコマンドsqと最適化情報231とに基づいて、図3に示したアクセスプランAPを生成する。
S22:アクセスモジュール222は、生成したアクセスプランAPにしたがって、SQLコマンドsqを実行する。例えば、SQLコマンドsqを所定回数実行する場合、SQLコマンドsqを1回実行し、工程S23に遷移する。
S23:同期管理モジュール223は、更新前後のデータベースに基づいて、更新差分データ141を生成する。更新差分データ141は、例えば、レコードの更新内容を示すバイナリデータである。
S24:アクセス管理モジュール221は、実行したSQLコマンドsqのアクセスプランAPが、再生成対象のアクセスプランAPであるか否かを判定する。例えば、テーブル内のレコードの全件削除や、レコードの追加等を指示するSQLコマンドsqの場合、複数のアクセス経路は生じ難い。したがって、アクセス管理モジュール221は、例えば、レコードの全件削除や、レコードの追加等を示すSQLコマンドsqのアクセスプランAPを、再生成の対象としない。
S25:再生成対象のアクセスプランAPである場合(S24のYes)、アクセス管理モジュール221は、更新差分データ141、SQLコマンドsq、及び、アクセスプランAPを、副系のDBアクセスプログラム120に送信する。
S26:一方、再生成対象のアクセスプランAPではない場合(S24のNo)、アクセス管理モジュール221は、更新差分データ141を、副系のDBアクセスプログラム120に送信する。
図17は、正系のDBアクセスプログラム220による、副系のアクセスプログラムによって再生成されたアクセスプランAPの受信処理の流れを説明する図である。
S31:アクセス管理モジュール221は、副系のアクセスプログラムから、再生成したアクセスプランAPrを受信した否かを判定する。
S32:アクセスプランAPrを受信した場合(S31のYes)、アクセス管理モジュール221は、受信したアクセスプランAPrを、実行中のアクセスプランAPに更新する。そして、アクセス管理モジュール221は、更新後のアクセスプランAPrにしたがって、SQLコマンドsqを残回数分、実行する。これにより、正系のDBアクセスプログラム220は、SQLコマンドsqの処理時間を短縮できる。
[副系のDBアクセスプログラム120の処理の流れ]
次に、図18〜図22のフローチャート図にしたがって、副系のデータベースサーバ100のDBアクセスプログラム120の処理の詳細を説明する。
図18は、副系のDBアクセスプログラム120による、アクセスプランAPの再生成処理を説明するフローチャート図である。
S41:同期管理モジュール123は、更新差分データ141を受信したか否かを判定する。
S42:更新差分データ141を受信した場合(S41のYes)、同期管理モジュール123は、更新差分データ141に基づいて副系のデータベース105を更新する。
S43:アクセスプラン再生成モジュール121は、更新差分データ141に基づいて、メモリ110上に保持する更新最適化情報131rを更新する。工程S43の処理の詳細は、図20にしたがって後述する。
S44:アクセスプラン再生成モジュール121は、更新差分データ141に加えて、アクセスプランAPを再生成する対象のSQLコマンドsq、及び、当該SQLコマンドsqのアクセスプランAPを受信したか否かを判定する。
S45:SQLコマンドsq及び正系のアクセスプランAPを受信した場合(S44のYes)、アクセスプラン再生成モジュール121は、SQLコマンドsqがアクセス対象とするデータベース105の、所定期間におけるデータの変化率を算出する。例えば、アクセスプラン再生成モジュール121は、全体のレコード件数に対する更新レコード件数に基づいて、変化率を算出する。
S46:アクセスプラン再生成モジュール121は、工程S45で算出した変化率が基準値を超えるか否かを判定する。基準値は、例えば20%である。ただし、この例に限定されるものではなく、基準値は検証等に応じて決定される。
S47:変化率が基準値を超える場合(S46のYes)、アクセスプラン再生成モジュール121は、アクセスプランAPを再生成する対象のSQLコマンドsqが複数、存在する場合、アクセスプランAPを再生成するSQLコマンドsqの優先順序を判定する。SQLコマンドsqの優先順序については、図21にしたがって後述する。
S48:アクセスプラン再生成モジュール121は、工程S47で判定した優先順番にしたがって、順次、アクセスプランAPを再生成する。アクセスプランAPを再生成の処理の詳細は、図19にしたがって後述する。
S49:アクセスプラン再生成モジュール121は、再生成したアクセスプランAPrの処理時間が、正系のアクセスプランAPの処理時間より短いか否かを判定する。
S50:アクセスプランAPrの処理時間が短い場合(S49のYes)、アクセスプラン再生成モジュール121は、再生成したアクセスプランAPrを、正系のDBアクセスプログラム220に送信する。
一方、アクセスプランAPrの処理時間が長い場合(S49のNo)、アクセスプラン再生成モジュール121は、再生成したアクセスプランAPrを、正系のDBアクセスプログラム220に送信しない。これにより、不要な通信処理を省略可能になる。
[図18のS48:アクセスプランAPの再生成処理]
図19は、図18のフローチャート図の工程S48の処理の詳細を説明するフローチャート図である。工程S48では、アクセスプラン再生成モジュール121は、SQLコマンドsqのアクセスプランAPを再生成する。
S51:アクセスプラン再生成モジュール121は、更新最適化情報131rに基づいて、SQLコマンドsqのアクセスプランAPを複数、生成する。例えば、アクセスプラン再生成モジュール121は、処理時間が一定範囲の収まる複数のアクセスプランAPを生成する。
S52:アクセスプラン再生成モジュール121は、工程S51で生成した複数のアクセスプランAPから、性能情報132に基づいてアクセスプランAPを抽出し、候補アクセスプランAPとする。工程S52の処理の詳細は、図22にしたがって後述する。
S53:アクセスプラン再生成モジュール121は、正系のアクセスプランAPの処理時間を基準時間にセットする。
S54:アクセスプラン再生成モジュール121は、候補アクセスプランAPを選択し、選択した候補アクセスプランAPにしたがってSQLコマンドsqを疑似的に実行し、処理時間を取得する。即ち、アクセスプラン再生成モジュール121は、SQLコマンドsqをシミュレートすることによって、処理時間を取得する。疑似的に実行することによって、副系のデータベース105に更新は生じない。
S55:アクセスプラン再生成モジュール121は、セットした基準時間に対して、選択した候補アクセスプランAPの処理時間が短いか否かを判定する。
S56:候補アクセスプランAPの処理時間が短い場合(S55のYes)、アクセスプラン再生成モジュール121は、選択した候補アクセスプランAPの処理時間を基準時間にセットする。
S57:一方、候補アクセスプランAPの処理時間が長い場合(S55のNo)、アクセスプラン再生成モジュール121は、候補アクセスプランAPの疑似実行を中断する。
S58:アクセスプラン再生成モジュール121は、抽出した、全ての候補アクセスプランAPを実行したか否かを判定する。
S59:全ての候補アクセスプランAPを実行した場合(S58のYes)、アクセスプラン再生成モジュール121は、基準時間に対応するアクセスプランAPを、最適なアクセスプランAPとして決定する。即ち、アクセスプラン再生成モジュール121は、処理時間が最小となるアクセスプランAPを決定する。
一方、未実行の候補アクセスプランAPがある場合(S58のNo)、アクセスプラン再生成モジュール121は、工程S54の処理に遷移し、別の候補アクセスプランAPを選択する。
なお、一部のSQLコマンドsqは、副問合せを含む。異なるSQLコマンドsqの間で、共通の副問合せを含む場合がある。したがって、アクセスプラン再生成モジュール121は、副問合せ単位に処理時間を取得し、管理しておいてもよい。
これにより、同一の副問合せを含むSQLコマンドsqの処理時間を算出する場合に、保持している副問合せの処理時間を再利用できる。これにより、アクセスプラン再生成モジュール121は、副問合せを含むSQLコマンドsqの処理時間を、より簡易に、算出できる。
[図18のS43:更新最適化情報131rの更新処理]
図20は、図18のフローチャート図の工程S43の処理の詳細を説明するフローチャート図である。アクセスプラン再生成モジュール121は、工程S43の処理として、更新差分データ141に基づいて、メモリに保持した更新最適化情報131rを更新する。図14、図15に示したとおり、本実施の形態における更新最適化情報131rは、レコード数「Records」、及び、値種類数「Different key」を含む。
S61:アクセスプラン再生成モジュール121は、更新差分データ141が、データの追加「INSERT」を示すか否かを判定する。
S62:データの追加「INSERT」を示す場合(S61のYes)、アクセスプラン再生成モジュール121は、追加の対象となるテーブルのレコード数「Records」をインクリメントする。
S63:アクセスプラン再生成モジュール121は、追加される値が、追加対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
S64:前後のいずれの値とも異なる場合(S63のNo)、アクセスプラン再生成モジュール121は、値種類数「Different key」をインクリメントする。一方、前後のいずれかの値と同一である場合(S63のYes)、アクセスプラン再生成モジュール121は、値種類数「Different key」を更新しない。
S65:一方、更新差分データ141がデータの追加「INSERT」を示していない場合(S61のNo)、アクセスプラン再生成モジュール121は、更新差分データ141が、データの削除「DELETE」を示すか否かを判定する。
S66:データの削除「DELETE」を示す場合(S65のYes)、アクセスプラン再生成モジュール121は、削除の対象となるテーブルのレコード数「Records」をデクリメントする。
S67:アクセスプラン再生成モジュール121は、削除される値が、削除対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
S68:前後のいずれの値とも異なる場合(S67のNo)、アクセスプラン再生成モジュール121は、値種類数「Different key」をデクリメントする。一方、前後のいずれかの値と同一である場合(S67のYes)、アクセスプラン再生成モジュール121は、値種類数「Different key」を更新しない。
S69:更新差分データ141がデータの削除「DELETE」を示していない場合(S65のNo)、アクセスプラン再生成モジュール121は、更新処理で追加される値が、更新対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
S70:前後のいずれの値とも異なる場合(S69のNo)、アクセスプラン再生成モジュール121は、値種類数「Different key」をインクリメントする。
S71:次に、アクセスプラン再生成モジュール121は、更新処理で削除される値が、更新対象のテーブルのインデックスにおける、前後のいずれかの値と同一であるか否かを判定する。
S72:前後のいずれの値とも異なる場合(S71のNo)、アクセスプラン再生成モジュール121は、値種類数「Different key」をデクリメントする。
このように、本実施の形態における副系のDBアクセスプログラム120は、副系のデータベース105のレコードを逐一スキャンすることなく、更新差分データ141に基づいて、簡易に、更新最適化情報131rを更新できる。これにより、副系のDBアクセスプログラム120は、副系のデータベースサーバ100に負荷をかけることなく、効率的に、更新最適化情報131rを更新できる。したがって、DBアクセスプログラム120は、アクセスプランAPrをタイムリーに生成できる。
[アクセスプランAPを再生成するSQLコマンドsqの順番]
図21は、アクセスプランAPを再生成するSQLコマンドsqの優先順位を説明する図である。図21に示す表H1は、アクセスプランAPを再生成する対象のSQLコマンドsq、SQLコマンドsqの実行回数、SQLコマンドsqがアクセス対象とするテーブルのデータの変化率、アクセスプランAPの再生成の優先順位の情報を有する。
アクセスプラン再生成モジュール121は、SQLコマンドsqの実行回数、及び、データの変化率のいずれか、または両方にしたがって、アクセスプランAPの再生成の優先順位を決定する。データの変化率は、例えば、所定期間における変化率を示す。
本実施の形態では、第1のデータ群にアクセスする第1の問合せ(SQLコマンドsq)の優先順位は、第1のデータ群より変化率が低い第2のデータ群にアクセスする第2の問合せ(SQLコマンドsq)の優先順位より高い。前述したとおり、データの変化率が高いテーブルにアクセスするSQLコマンドsqのアクセスプランAPは、再生成に応じて、アクセス経路が変更する可能性が高く、改善効果が高い。
したがって、アクセスプラン再生成モジュール121は、データの変化率が高いデータ群にアクセスするSQLコマンドsqのアクセスプランAPを優先して再生成することによって、正系のデータベース205のアクセス処理の処理時間をより効果的に短縮できる。
また、本実施の形態におけるアクセスプラン再生成モジュール121によると、第3の問合せ(SQLコマンドsq)の優先順位は、第3の問合せに対して実行回数が少ない第4の問合せ(SQLコマンドsq)より高い。前述したとおり、実行回数の多いSQLコマンドsqのアクセスプランAPは、再生成することによる改善効果が高い。したがって、アクセスプラン再生成モジュール121は、実行回数が多いSQLコマンドsqのアクセスプランAPを優先して再生成することによって、正系のデータベース205のアクセス処理の応答時間をより効果的に短縮できる。
図21に示す表によると、項番「2」のSQLコマンドsq(SELECT)の実行回数は「98回」であって、データの変化率は「40%」である。また、項番「3」のSQLコマンドsq(SELECT)の実行回数は「60回」であって、データの変化率は「52%」である。
項番「2」のSQLコマンドsqによるデータの変化率は、項番「3」のSQLコマンドsqに対して小さいものの、実行回数は、項番「3」のSQLコマンドsqに対して大幅に大きい。したがって、アクセスプラン再生成モジュール121は、図21に示す複数のSQLコマンドsqから、項番「2」のSQLコマンドsqを、アクセスプランAPを最優先して再生成するSQLコマンドsqとして決定する。
また、アクセスプラン再生成モジュール121は、項番「3」のSQLコマンドsqを、次に優先してアクセスプランAPを再生成するSQLコマンドsqとして決定する。同様にして、アクセスプラン再生成モジュール121は、実行回数、及び、変化率に基づいて、各SQLコマンドsqの優先順位を判定する。
なお、図21では、SQLコマンドsqの実行回数とデータの変化率とに基づいて優先順位を判定する場合を例示した。ただし、この例に限定されるものではなく、実行回数とデータの変化率のいずれか一方に基づいて優先順位を判定してもよい。
[図19のS52:性能情報132に基づくアクセスプランAPの抽出]
図22は、図19のフローチャート図の工程S52の処理の詳細を説明するフローチャート図である。アクセスプラン再生成モジュール121は、複数のアクセスプランAPから、性能情報132に基づいてアクセスプランAPを抽出し、候補アクセスプランAPとする。
S81:アクセスプラン再生成モジュール121は、例えば、I/O回数、I/O処理時間、CPU使用率、共有ディスクのヒット率、アクセス処理の対象のレコード件数等に基づいて、各アクセスプランAPの処理時間を算出する。
アクセスプランAPに応じて、アクセス対象のテーブルやインデックスが異なる。テーブルやインデックスに応じて、性能情報132が異なることにより、処理時間が変化する場合がある。したがって、アクセスプラン再生成モジュール121は、更新最適化情報131rに加えて、性能情報132に基づいて、アクセスプランAPを抽出する。これにより、アクセスプラン再生成モジュール121は、環境等に基づくアクセス性能を考慮した、より最適なアクセスプランAPを生成できる。
幅系のデータベースサーバ100のハードウェアのスペックは、正系のデータベースサーバ200のハードウェアスペックと同様である。したがって、アクセスプラン再生成モジュール121は、副系のデータベースサーバ100の性能情報132を利用することができる。
また、アクセスプラン再生成モジュール121は、例えば、オペレーションシステムのコマンドやAPI(Application Programming Interface:API)等を使用することによって、性能情報132を取得できる。または、アクセスプラン再生成モジュール121は、正系のデータベースサーバ200の性能情報232を、さらに取得してもよい。
具体的に、共有ディスクのヒット率は、アクセスプランAPにしたがってSQLコマンドsqを実行する際に、アクセスが生じたページの、共有ディスク(共有メモリ等)におけるヒット率を示す。またI/O回数は、アクセスプランAPにしたがってSQLコマンドsqを実行する際に生じるファイルのI/Oの回数を示す。
I/O処理時間は、アクセスプランAPにしたがってSQLコマンドsqを実行する際の、アクセス対象のテーブルのI/O処理に要する時間を示す。テーブルに応じて、当該テーブルを記憶する物理ディスクが異なる場合がある。物理ディスクに応じて、I/O処理時間が異なる。また、CPU使用時間は、アクセスプランAPにしたがってSQLコマンドsqを実行する際の、CPUの使用時間を示す。
また、アクセス処理の対象のレコード件数は、図14、図15に示した、トレース情報TR1、TR2の項目「access (read/ins/del/upd)」の情報h1〜h12を示す。アクセス処理の対象のレコード件数がより少なく抑えられる場合、処理時間は短くなる。
アクセスプラン再生成モジュール121は、各アクセスプランAPを採用した場合の性能情報132を参照して、処理時間を算出する。なお、性能情報132によっては、他の性能情報132の間で、処理時間がトレードオフの関係を有する。例えば、I/O回数が少ないものの、CPU使用時間が多くなるアクセスプランAPがある。したがって、アクセスプラン再生成モジュール121は、例えば、複数の性能情報132の組合せに基づいて、アクセスプランAPの処理時間を算出する。
S82:アクセスプラン再生成モジュール121は、正系のアクセスプランAPの処理時間よりも、算出した処理時間が短いアクセスプランAPを、候補アクセスプランAPとして抽出する。
[他の実施の形態例]
なお、本実施の形態では、アクセスプランAPを再生成する際に、SQLコマンドsqを疑似実行して、処理時間を取得する場合を例示した。ただし、この例に限定されるものではない。DBアクセスプログラム120は、処理時間の算出処理にしたがって、SQLコマンドsqの処理時間を取得してもよい。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
第1データベースにアクセスする第1の情報処理装置と、前記第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置とを有し、
前記第1の情報処理装置は、前記第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第2の情報処理装置に送信する第1送信部、を備え、
前記第2の情報処理装置は、
前記第2のデータベースの特徴を示す第1の情報を前記第2のデータベースのデータの更新に応じて更新する更新処理部と、
前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
再生成した前記実行計画情報を前記第1の情報処理装置に送信する第2送信部と、を備える
ことを特徴とするデータベースシステム。
(付記2)
付記1において、
前記第1送信部は、前記問合せの実行に応じて生成された前記第1のデータベースの差分情報を、前記第2の情報処理装置に送信し、
前記更新処理部は、受信した前記差分情報に基づいて、前記第2のデータベース及び前記第1の情報を更新する、
データベースシステム。
(付記3)
付記1または2において、
前記第1の情報処理装置は、前記第2の情報処理装置から受信した、前記実行計画情報に基づいて前記問合せを実行する問合せ処理部を備える、
データベースシステム。
(付記4)
付記1乃至3のいずれかにおいて、
前記生成処理部は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第2のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、前記問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースシステム。
(付記5)
付記4において、
第1のデータ群にアクセスする第1の問合せの優先順位は、前記第1のデータ群より前記変化率が低い第2のデータ群にアクセスする第2の問合せの優先順位より高い、
データベースシステム。
(付記6)
付記4において、
第3の問合せの優先順位は、前記第3の問合せに対して前記実行回数が少ない第4の問合せより高い、
データベースシステム。
(付記7)
付記1乃至6のいずれかにおいて、
前記第1送信部は、前記再生成の対象の実行計画情報を、前記第2の情報処理装置にさらに送信し、
前記第2送信部は、前記再生成した実行計画情報に基づく前記問合せの実行に要する時間が、前記第1の情報処理装置から受信した前記再生成の対象の実行計画情報に基づく前記問合せの実行に要する時間より短い場合に、前記再生成した実行計画情報を前記第1の情報処理装置に送信する、
データベースシステム。
(付記8)
付記1乃至7のいずれかにおいて、
前記生成処理部は、前記第2のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
データベースシステム。
(付記9)
付記1乃至8のいずれかにおいて、
前記生成処理部は、前記第1の情報と前記問合せとに加え、前記第2のデータベースに対するアクセスの性能に関する第2の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースシステム。
(付記10)
付記1乃至9のいずれかにおいて、
前記第1の情報は、前記第2のデータベースの所定の項目の値の種類数、前記第2のデータベースのレコード数のいずれか、または両方を示す、
データベースシステム。
(付記11)
付記1乃至10のいずれかにおいて、
前記第2の情報は、前記第2のデータベースに対するアクセスのI/O回数、前記アクセスのI/O時間、前記問合せを実行する際のプロセッサの使用時間、前記問合せによりアクセスされる対象のレコード群の共有ディスクにおけるヒット率、前記問合せによりアクセスされる各アクセスのレコード数、のいずれかまたはその組合せを示す、
データベースシステム。
(付記12)
第1の情報処理装置は、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置に送信し、
前記第2の情報処理装置は、前記第2のデータベースの特徴を示す第1の情報を、前記第2のデータベースのデータの更新に応じて更新し、前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、再生成した前記実行計画情報を前記第1の情報処理装置に送信する、
ことを特徴とするデータベースアクセス方法。
(付記13)
付記12において、
前記第1の情報処理装置は、前記問合せの実行に応じて生成された前記第1のデータベースの差分情報を、前記第2の情報処理装置に送信し、
前記第2の情報処理装置は、受信した前記差分情報に基づいて、前記第2のデータベース及び前記第1の情報を更新する、
データベースアクセス方法。
(付記14)
付記12または13において、
前記第1の情報処理装置は、前記第2の情報処理装置から受信した、前記実行計画情報に基づいて前記問合せを実行する、
データベースアクセス方法。
(付記15)
付記12乃至14のいずれかにおいて、
前記第2の情報処理装置は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第2のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、前記問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースアクセス方法。
(付記16)
付記12乃至15のいずれかにおいて、
前記第2の情報処理装置は、前記第2のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
データベースアクセス方法。
(付記17)
付記12乃至16のいずれかにおいて、
前記第2の情報処理装置は、前記第1の情報と前記問合せとに加え、前記第2のデータベースに対するアクセスの性能に関する第2の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースアクセス方法。
(付記18)
第1の情報処理装置から、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信し、
前記第1データベースの待機系である第2のデータベースの特徴を示す第1の情報を、前記第2のデータベースのデータの更新に応じて更新し、
前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、
再生成した前記実行計画情報を前記第1の情報処理装置に送信する、
処理をコンピュータに実行させるデータベースアクセスプログラム。
(付記19)
付記18において、
前記受信は、前記問合せの実行に応じて生成された前記第1のデータベースの差分情報を受信し、
前記更新は、受信した前記差分情報に基づいて、前記第2のデータベース及び前記第1の情報を更新する、
データベースアクセスプログラム。
(付記20)
付記18または19のいずれかにおいて、
前記再生成は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第2のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
データベースアクセスプログラム。
(付記21)
付記18乃至20のいずれかにおいて、
前記再生成は、前記第2のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
データベースアクセスプログラム。
(付記22)
付記18乃至21のいずれかにおいて、
前記再生成は、前記第1の情報と前記問合せとに加え、前記第2のデータベースに対するアクセスの性能に関する第2の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
データベースアクセスプログラム。
(付記23)
第1の情報処理装置から、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信する受信処理部と、
前記第1データベースの待機系である第2のデータベースの特徴を示す第1の情報を前記第2のデータベースのデータの更新に応じて更新する更新処理部と、
前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
再生成した前記実行計画情報を前記第1の情報処理装置に送信する第2送信部と、
を備えることを特徴とする情報処理装置。
(付記24)
付記23において、
前記受信処理部は、前記問合せの実行に応じて生成された前記第1のデータベースの差分情報を受信し、
前記更新処理部は、受信した前記差分情報に基づいて、前記第2のデータベース及び前記第1の情報を更新する、
情報処理装置。
(付記25)
付記23または24のいずれかにおいて、
前記生成処理部は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第2のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
情報処理装置。
(付記26)
付記23乃至25のいずれかにおいて、
前記生成処理部は、前記第2のデータベースのデータの変化率が基準値を超えた場合に、前記再生成の対象の実行計画情報を再生成する、
情報処理装置。
(付記27)
付記23乃至26のいずれかにおいて、
前記生成処理部は、前記第1の情報と前記問合せとに加え、前記第2のデータベースに対するアクセスの性能に関する第2の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
情報処理装置。
100:副系のデータベースサーバ、105:副系のデータベース、120:副系のDBアクセスプログラム、200:正系のデータベースサーバ、205:正系のデータベース、220:正系のDBアクセスプログラム、300:アプリケーションサーバ

Claims (8)

  1. 第1データベースにアクセスする第1の情報処理装置と、前記第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置とを有し、
    前記第1の情報処理装置は、前記第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第2の情報処理装置に送信する第1送信部、を備え、
    前記第2の情報処理装置は、
    前記第2のデータベースの特徴を示す第1の情報を前記第2のデータベースのデータの更新に応じて更新する更新処理部と、
    前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
    再生成した前記実行計画情報を前記第1の情報処理装置に送信する第2送信部と、を備える
    ことを特徴とするデータベースシステム。
  2. 請求項1において、
    前記第1送信部は、前記問合せの実行に応じて生成された前記第1のデータベースの差分情報を、前記第2の情報処理装置に送信し、
    前記更新処理部は、受信した前記差分情報に基づいて、前記第2のデータベース及び前記第1の情報を更新する、
    データベースシステム。
  3. 請求項1または2において、
    前記第1の情報処理装置は、前記第2の情報処理装置から受信した、前記実行計画情報に基づいて前記問合せを実行する問合せ処理部を備える、
    データベースシステム。
  4. 請求項1乃至3のいずれかにおいて、
    前記生成処理部は、再生成の対象の実行計画情報が複数存在する場合、前記問合せによりアクセスされる前記第2のデータベースのデータの変化率、前記問合せの実行回数のいずれかまたは両方に基づいて、前記問合せの優先順位を判定し、前記優先順位の高い実行計画情報を優先的に再生成する、
    データベースシステム。
  5. 請求項1乃至4のいずれかにおいて、
    前記生成処理部は、前記第1の情報と前記問合せとに加え、前記第2のデータベースに対するアクセスの性能に関する第2の情報に基づいて、前記再生成の対象の実行計画情報を再生成する、
    データベースシステム。
  6. 第1の情報処理装置は、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを、前記第1データベースの待機系である第2データベースにアクセスする第2の情報処理装置に送信し、
    前記第2の情報処理装置は、前記第2のデータベースの特徴を示す第1の情報を、前記第2のデータベースのデータの更新に応じて更新し、前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、再生成した前記実行計画情報を前記第1の情報処理装置に送信する、
    ことを特徴とするデータベースアクセス方法。
  7. 第1の情報処理装置から、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信し、
    前記第1データベースの待機系である第2のデータベースの特徴を示す第1の情報を、前記第2のデータベースのデータの更新に応じて更新し、
    前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成し、
    再生成した前記実行計画情報を前記第1の情報処理装置に送信する、
    処理をコンピュータに実行させるデータベースアクセスプログラム。
  8. 第1の情報処理装置から、第1のデータベースに対するデータベースアクセスの実行計画情報のうち、再生成の対象の実行計画情報に対応する問合せを受信する受信処理部と、
    前記第1データベースの待機系である第2のデータベースの特徴を示す第1の情報を前記第2のデータベースのデータの更新に応じて更新する更新処理部と、
    前記第1の情報と前記問合せとに基づいて、前記再生成の対象の実行計画情報を再生成する生成処理部と、
    再生成した前記実行計画情報を前記第1の情報処理装置に送信する第2送信部と、
    を備えることを特徴とする情報処理装置。
JP2015183154A 2015-09-16 2015-09-16 データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置 Active JP6531587B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015183154A JP6531587B2 (ja) 2015-09-16 2015-09-16 データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置
US15/248,133 US20170075955A1 (en) 2015-09-16 2016-08-26 Database system, database access method, and database access program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015183154A JP6531587B2 (ja) 2015-09-16 2015-09-16 データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置

Publications (2)

Publication Number Publication Date
JP2017058947A true JP2017058947A (ja) 2017-03-23
JP6531587B2 JP6531587B2 (ja) 2019-06-19

Family

ID=58257490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015183154A Active JP6531587B2 (ja) 2015-09-16 2015-09-16 データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置

Country Status (2)

Country Link
US (1) US20170075955A1 (ja)
JP (1) JP6531587B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019040409A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084257A (ja) * 1999-09-13 2001-03-30 Hitachi Ltd 問合せ処理方法及びシステム
JP2004318314A (ja) * 2003-04-14 2004-11-11 Ricoh Co Ltd データベース検索装置、プログラムおよび記録媒体
US20070214104A1 (en) * 2006-03-07 2007-09-13 Bingjie Miao Method and system for locking execution plan during database migration
JP2008112289A (ja) * 2006-10-30 2008-05-15 Internatl Business Mach Corp <Ibm> データベースを統合するためのシステム、方法、およびプログラム
US20140156632A1 (en) * 2012-11-30 2014-06-05 Amazon Technologies, Inc. System-wide query optimization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700608B2 (en) * 2007-10-17 2014-04-15 Oracle International Corporation SQL execution plan verification
US10803066B2 (en) * 2010-06-29 2020-10-13 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators
US9535953B2 (en) * 2010-11-19 2017-01-03 Hewlett Packard Enterprise Development Lp Systems and methods for managing a database
US10515078B2 (en) * 2013-08-30 2019-12-24 Hitachi, Ltd. Database management apparatus, database management method, and storage medium
US9727648B2 (en) * 2014-12-19 2017-08-08 Quixey, Inc. Time-box constrained searching in a distributed search system
US9594839B2 (en) * 2014-12-22 2017-03-14 Sybase, Inc. Methods and systems for load balancing databases in a cloud environment
US11429609B2 (en) * 2015-04-15 2022-08-30 Microsoft Technology Licensing, Llc Geo-scale analytics with bandwidth and regulatory constraints

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084257A (ja) * 1999-09-13 2001-03-30 Hitachi Ltd 問合せ処理方法及びシステム
US6757670B1 (en) * 1999-09-13 2004-06-29 Hitachi, Ltd. Method and system for query processing
JP2004318314A (ja) * 2003-04-14 2004-11-11 Ricoh Co Ltd データベース検索装置、プログラムおよび記録媒体
US20070214104A1 (en) * 2006-03-07 2007-09-13 Bingjie Miao Method and system for locking execution plan during database migration
JP2008112289A (ja) * 2006-10-30 2008-05-15 Internatl Business Mach Corp <Ibm> データベースを統合するためのシステム、方法、およびプログラム
US20080306904A1 (en) * 2006-10-30 2008-12-11 Takeshi Fukuda System, method, and program product for integrating databases
US20140156632A1 (en) * 2012-11-30 2014-06-05 Amazon Technologies, Inc. System-wide query optimization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019040409A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム

Also Published As

Publication number Publication date
JP6531587B2 (ja) 2019-06-19
US20170075955A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
US11372890B2 (en) Distributed database transaction protocol
US10235440B2 (en) Decentralized transaction commit protocol
US11442961B2 (en) Active transaction list synchronization method and apparatus
CN103780638B (zh) 数据同步方法及系统
US20180349418A1 (en) Dynamic snapshot isolation protocol selection
JP5949937B2 (ja) トランザクションシステム
JP6795259B2 (ja) データベーストランザクションを最適化するための方法および装置
WO2017013701A1 (ja) 計算機システム及びデータベース管理方法
TWI774643B (zh) 資料庫操作方法及裝置
US11360975B2 (en) Data providing apparatus and data providing method
CN107153680B (zh) 一种分布式内存数据库在线扩展节点的方法及系统
US11599290B2 (en) Data storage method, electronic device, and computer program product
EP2966572B1 (en) Database device, program, and data processing method
JP6531587B2 (ja) データベースシステム、データベースアクセス方法、データベースアクセスプログラム、及び、情報処理装置
JP2015064850A (ja) データベース監視装置、データベース監視方法、並びにコンピュータ・プログラム
CN111026764B (zh) 一种数据存储方法、装置、电子产品及存储介质
US9183255B1 (en) Spool management and checkpointing in a multi-database system
JP2016081492A (ja) 異種記憶サーバおよびそのファイル記憶方法
JP6044363B2 (ja) コンピュータ、nasアクセス方法およびnasアクセスプログラム
US20210406243A1 (en) Non-transitory computer-readable storage medium for storing information processing program, information processing method, and information processing apparatus
US20180225348A1 (en) Database processing method and database processing device
CN116719849A (zh) 缓存处理方法、装置、终端设备以及存储介质
CN116756191A (zh) 混合缓存处理方法、装置、终端设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190403

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: 20190423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190506

R150 Certificate of patent or registration of utility model

Ref document number: 6531587

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150