(57)【要約】【課題】アクセス経路情報の更新に伴う障害の発生を未然に防止し、アクセス経路がデータの状態に応じた最適なアクセス経路と大きく相違することも防止する。【解決手段】オンライン稼働期間中、ＤＢ管理部は、アクセス要求(ＳＱＬ)を受信する度に対応するアクセスパス情報を読み出し(30)、アクセスパス情報に従ってＤＢにアクセスし(32)、要求元のコンピュータへ応答を返す(34)。アクセスパス更新制御部は、非稼働期間にＤＢの統計情報を生成させ、アクセス要求として用いるＳＱＬに対応する最適なアクセスパスを統計情報に基づきＤＢ管理部に生成させる(38〜46)。生成された全てのアクセスパスがＤＢのテーブルに索引経由でアクセスするパスであれば生成されたアクセスパス情報を採用し、ＤＢのテーブルに直接アクセスするパスが含まれていればアクセスパス情報を元に戻す(48,50)。【選択図】図２
2012083861.tif 000002
【特許請求の範囲】
【請求項１】
データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が第１記憶手段に記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して前記第１記憶手段に記憶させた後に、前記第１記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報に、前記データに直接アクセスするアクセス経路が記述されているか否かを判定する第１判定手段と、
前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていないと判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させ、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていると判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させない制御処理を行う第１制御手段と、
を含むデータベース管理装置の制御装置。
【請求項２】
前記第１判定手段は、前記データベース管理装置によって生成された新たな前記アクセス経路情報に、前記データベースに記憶されたデータに直接アクセスするアクセス経路を記述する際に用いられる所定の文字列が含まれているか否かを検索し、当該検索の結果に基づいて、前記データベース管理装置によって生成された新たな前記アクセス経路情報に、前記データに直接アクセスするアクセス経路が記述されているか否かを判定する請求項１記載のデータベース管理装置の制御装置。
【請求項３】
データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が第１記憶手段に記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して前記第１記憶手段に記憶させた後に、前記第１記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報が、新たな前記アクセス経路情報が生成されるよりも前に前記データベース管理装置によるデータのアクセスに使用されていた既存の前記アクセス経路情報と同一か否かを判定する第２判定手段と、
前記第２判定手段により、生成された新たな前記アクセス経路情報が既存の前記アクセス経路情報と同一でないと判定された場合に、当該判定の結果を出力し、前記アクセス経路情報の更新を指示する情報が入力手段を介して入力された場合のみ、生成された新たな前記アクセス経路情報を既存の前記アクセス経路情報に代えて前記データベース管理装置によるデータのアクセスに使用させる制御処理を行う第２制御手段と、
を含むデータベース管理装置の制御装置。
【請求項４】
前記既存の前記アクセス経路情報は、前記データベースに記憶されたデータへのアクセスが要求される前記データベースの稼働期間中に、前記データベース管理装置によるデータのアクセスに使用され、前記稼働期間中に前記アクセス経路情報に起因する障害が発生しなかったアクセス経路情報である請求項３記載のデータベース管理装置の制御装置。
【請求項５】
前記第１判定手段又は前記第２判定手段は、前記データベースに記憶されたデータへのアクセスが要求されない前記データベースの非稼働期間に、データベースに記憶されたデータへのアクセスを要求するダミーのアクセス要求を前記データベース管理装置に与えることで、前記データベースに記憶されたデータへのアクセスが要求される前記データベースの稼働期間が終了した時点で前記データベースに記憶されているデータの状態を表す統計情報に基づき、前記データベース管理装置によって新たな前記アクセス経路情報を生成させる請求項１〜請求項４の何れか１項記載のデータベース管理装置の制御装置。
【請求項６】
前記データベース管理装置は、前記統計情報の生成が指示されると前記統計情報を生成して第２記憶手段に記憶させ、前記データベースに記憶されたデータへのアクセスが要求されると、前記第２記憶手段に記憶されている前記統計情報に基づいて、前記アクセス経路情報を生成する構成であり、
前記第１判定手段又は前記第２判定手段は、前記第２記憶手段に記憶されている前記統計情報を第３記憶手段に複写すると共に、前記第１記憶手段に記憶されているアクセス経路情報を消去した後に、前記データベース管理装置に対して前記統計情報の生成を指示し、前記データベース管理装置によって生成された新たな前記統計情報が前記第２記憶手段に記憶された後に、新たな前記アクセス経路情報を前記データベース管理装置によって生成させ、
前記第１制御手段又は前記第２制御手段は、前記データベース管理装置によって生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させない場合は、前記第１判定手段又は前記第２判定手段によって前記第３記憶手段に複写された前記統計情報を前記第２記憶手段に上書き記憶させる請求項１〜請求項５の何れか１項記載のデータベース管理装置の制御装置。
【請求項７】
コンピュータを、
データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して記憶手段に記憶させた後に、前記記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報に、前記データに直接アクセスするアクセス経路が記述されているか否かを判定する第１判定手段、
及び、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていないと判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させ、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていると判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させない制御処理を行う第１制御手段
として機能させるためのデータベース管理装置の制御プログラム。
【請求項８】
コンピュータを、
データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して記憶手段に記憶させた後に、前記記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報が、新たな前記アクセス経路情報が生成されるよりも前に前記データベース管理装置によるデータのアクセスに使用されていた既存の前記アクセス経路情報と同一か否かを判定する第２判定手段、
及び、前記第２判定手段により、生成された新たな前記アクセス経路情報が既存の前記アクセス経路情報と同一でないと判定された場合に、当該判定の結果を出力し、前記アクセス経路情報の更新を指示する情報が入力手段を介して入力された場合のみ、生成された新たな前記アクセス経路情報を既存の前記アクセス経路情報に代えて前記データベース管理装置によるデータのアクセスに使用させる制御処理を行う第２制御手段
として機能させるためのデータベース管理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベース管理装置の制御装置及びプログラムに係り、特に、データベースに記憶されたデータへのアクセスが要求されるとアクセス経路情報に基づきデータへのアクセスを行うと共に、データベースに記憶されたデータの状態を表す統計情報に基づきアクセス経路情報を生成・更新するデータベース管理装置を制御するデータベース管理装置の制御装置、コンピュータを前記データベース管理装置の制御装置として機能させるためのデータベース管理装置の制御プログラムに関する。
【背景技術】
【０００２】
従来より、データベースを管理し、データベースに記憶されているデータに対するアクセス要求に応えるデータベース管理システム(ＤＢＭＳ：DataBase Management System)が知られている。リレーショナルデータベースでは、アクセス要求がＳＱＬの形態で入力されるが、このアクセス要求(ＳＱＬ)に対してどのようなアクセス経路(アクセスパスともいう)でデータにアクセスするかは、アクセス要求に対するデータベース管理システムの応答速度やコンピュータ・システムの負荷に大きな影響を及ぼす。そして、最適なアクセス経路は、データベースに記憶されているデータの状態(データ量やその他のパラメータ)によっても変動する。このため、近年は、データベースに記憶されているデータの状態に応じてアクセス要求に対する最適なアクセス経路を判別し、アクセス経路を判別した最適なアクセス経路へ変更する機能を備えたデータベース管理システムも広範に普及してきている。
【０００３】
上記に関連して特許文献１には、検索の問い合せ要求を実行するときの時間的コストと結果件数の予測を見積もることでアクセスプラン(アクセス経路)を生成し、問い合せとアクセスプランを対応付けて保持しておき、別の等価な問い合せがあった場合は対応するアクセスプランをそのまま使用して検索するデータベースシステムにおいて、表データの内容が大きく変化した場合や検索の実行時間がアクセスプランの実行時間の閾値を超えた場合に、保持しているアクセスプランを破棄し、次の問い合わせで新規にアクセスプランを生成することで、不適切なアクセスプランの再利用を阻止する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１６８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術は、表データの内容や検索の実行時間の変化に基づき、既存のアクセスプランが不適切になったと判断した場合に、新規にアクセスプランを生成するので、データベースに記憶されているデータの状態が変化した場合にも、この変化に追従して最適なアクセス経路を得られるという利点を有する。但し、特許文献１に記載の技術では、データベースの稼働中に、表データの内容の変化や検索の実行時間の変化を監視する処理を並列に行う必要があり、この処理が固定負荷として加わると共に、アクセスプランを破棄した際は新規にアクセスプランを生成する処理も行う必要があるので、アクセス要求に対するレスポンスが悪化するという問題がある。
【０００６】
この問題を解消するためには、データベースに記憶されているデータの状態に応じてアクセス経路を生成する処理を、データベースが稼働していない期間に行うことが考えられる。しかしながら、データベースに記憶されているデータの状態は、データベースの稼働期間内で変動する可能性があるのに対し、上記では、データベースの稼働が終了した時点でのデータの状態を基準としてアクセス経路が生成されることになる。このため、データベースの稼働が終了した時点でのデータの状態が、データベースの稼働期間のうちシステムに加わる負荷が最大又は最大に近い大きさとなる時期におけるデータの状態と大きく相違していることも生じ得る。そしてこの場合、生成されたアクセス経路が、システムに加わる負荷が最大又は最大に近い大きさとなる時期におけるデータの状態に対して不適切であることで、データベースの稼働中に、アクセス要求に対するレスポンスが著しく悪化したり、システムがダウンする等の障害が発生することがあった。
【０００７】
本発明は上記事実を考慮して成されたもので、アクセス経路情報の更新に伴って障害が発生することを未然に防止することができ、アクセス経路情報に記述されたアクセス経路がデータベースのデータの状態に応じた最適なアクセス経路と大きく相違することも防止できるデータベース管理装置の制御装置及びデータベース管理装置の制御プログラムを得ることが目的である。
【課題を解決するための手段】
【０００８】
上記目的を達成するために請求項１記載の発明に係るデータベース管理装置の制御装置は、データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が第１記憶手段に記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して前記第１記憶手段に記憶させた後に、前記第１記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報に、前記データに直接アクセスするアクセス経路が記述されているか否かを判定する第１判定手段と、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていないと判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させ、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていると判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させない制御処理を行う第１制御手段と、を含んで構成されている。
【０００９】
本願発明者等は、上記の構成のデータベース管理装置において、生成されたアクセス経路情報に記述されたアクセス経路のうち、どのようなアクセス経路がデータベース稼働中の障害発生の原因になるかについて、解析検討を行った。アクセス経路情報に記述されるアクセス経路は、索引経由でデータにアクセスするアクセス経路と、データに直接アクセスするアクセス経路と、に大別される。本願発明者等は、上記の解析検討の結果、特にデータベースに記憶されているデータのデータ量が多く、かつアクセス要求の頻度が高い動作環境下では、データに直接アクセスするアクセス経路がデータベース稼働中の障害発生の原因になり易いとの知見を得た。
【００１０】
上記知見に基づき、請求項１記載の発明では、第１判定手段が、データベース管理装置に対し、データベースに記憶されたデータの現在の状態を表す統計情報に基づいて新たなアクセス経路情報を生成させる。また、データベース管理装置によって生成された新たなアクセス経路情報に、データに直接アクセスするアクセス経路が記述されているか否かを判定する。また第１制御手段は、第１判定手段により、生成された新たなアクセス経路情報にデータに直接アクセスするアクセス経路が記述されていると判定された場合には、生成された新たなアクセス経路情報をデータベース管理装置によるデータのアクセスに使用させない制御処理を行う。これにより、障害の原因になり易いアクセス経路情報が生成された場合には、これが検知され、データのアクセスに使用されることが阻止されることで、障害の原因になり易いアクセス経路情報がデータのアクセスに用いられることが阻止される。従って、記憶手段に記憶されているアクセス経路情報を更新することに伴って、データベース稼働中にアクセス経路に起因する障害が発生することを未然に防止できる。
【００１１】
また第１制御手段は、第１判定手段により、生成された新たなアクセス経路情報にデータに直接アクセスするアクセス経路が記述されていないと判定された場合には、生成された新たなアクセス経路情報をデータベース管理装置によるデータのアクセスに使用させる。これにより、データに直接アクセスするアクセス経路が記述されていないアクセス経路情報が生成された場合には、生成されたアクセス経路情報(データベースのデータの状態に応じて最適化されたアクセス経路情報)がデータのアクセスに用いられることになる。従って、アクセス経路情報に記述されたアクセス経路が、データベースのデータの状態に応じた最適なアクセス経路と大きく相違することも防止される。
【００１２】
なお、請求項１記載の発明において、第１判定手段は、例えば請求項２に記載したように、データベース管理装置によって生成された新たなアクセス経路情報に、データベースに記憶されたデータに直接アクセスするアクセス経路を記述する際に用いられる所定の文字列が含まれているか否かを検索し、当該検索の結果に基づいて、データベース管理装置によって生成された新たなアクセス経路情報に、データに直接アクセスするアクセス経路が記述されているか否かを判定するように構成することができる。
【００１３】
請求項３記載の発明に係るデータベース管理装置の制御装置は、データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が第１記憶手段に記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して前記第１記憶手段に記憶させた後に、前記第１記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報が、新たな前記アクセス経路情報が生成されるよりも前に前記データベース管理装置によるデータのアクセスに使用されていた既存の前記アクセス経路情報と同一か否かを判定する第２判定手段と、前記第２判定手段により、生成された新たな前記アクセス経路情報が既存の前記アクセス経路情報と同一でないと判定された場合に、当該判定の結果を出力し、前記アクセス経路情報の更新を指示する情報が入力手段を介して入力された場合のみ、生成された新たな前記アクセス経路情報を既存の前記アクセス経路情報に代えて前記データベース管理装置によるデータのアクセスに使用させる制御処理を行う第２制御手段と、を含んで構成されている。
【００１４】
請求項３記載の発明では、第２判定手段が、データベース管理装置に対し、データベースに記憶されたデータの現在の状態を表す統計情報に基づいて新たなアクセス経路情報を生成させる。そしてデータベース管理装置によって生成された新たなアクセス経路情報が、新たなアクセス経路情報が生成されるよりも前にデータベース管理装置によるデータのアクセスに使用されていた既存のアクセス経路情報と同一か否かを判定する。また第２制御手段は、第２判定手段により、生成された新たなアクセス経路情報が既存のアクセス経路情報と同一でないと判定された場合に、当該判定の結果を出力する。これにより、データベース管理装置によって生成された新たなアクセス経路情報が、既存のアクセス経路情報と相違していた場合に、管理者等によってこれが認識される。
【００１５】
アクセス経路情報の変化はデータベースに記憶されているデータの状態の変化に起因するが、この変化には、例えば１日等の短い期間内における短期的かつ周期的な変動と、例えば数日以上の長い期間に亘る非周期的な変化とがある。管理者等は、新たなアクセス経路情報が既存のアクセス経路情報と同一でないとの判定結果に基づいて、データベースに記憶されたデータの状態が変化したことを認識し、その変化が短期的かつ周期的な変動か長期間に亘る非周期的な変化かを判別する。そして管理者等は、データベースに記憶されたデータの状態の変化が短期的かつ周期的な変動と判断した場合(例えばデータに直接アクセスするアクセス経路が記述されている場合)はアクセス経路情報の更新を指示せず、長期間に亘る非周期的な変化と判断した場合に、アクセス経路情報の更新を指示する情報を入力する。
【００１６】
請求項３記載の発明に係る第２制御手段は、アクセス経路情報の更新を指示する情報が入力手段を介して入力された場合のみ、生成された新たなアクセス経路情報を既存のアクセス経路情報に代えてデータベース管理装置によるデータのアクセスに使用させる制御処理を行う。データベースに記憶されたデータの状態の変化が短期的かつ周期的な変動であった場合、新たなアクセス経路情報に記述されたアクセス経路は、アクセス要求の頻度が高い動作環境下で障害発生の原因になる可能性が高い。請求項３記載の発明では、このような場合にアクセス経路情報の更新を指示する情報が入力されず、生成された新たなアクセス経路情報がデータベース管理装置によるデータのアクセスに使用されないので、データベース稼働中にアクセス経路に起因する障害が発生することを未然に防止できる。
【００１７】
また、データベースに記憶されたデータの状態の変化が長期間に亘る非周期的な変化であった場合は、アクセス経路情報の更新を指示する情報が入力されることで、生成された新たなアクセス経路情報が既存のアクセス経路情報に代えてデータベース管理装置によるデータのアクセスに使用されるので、アクセス経路情報に記述されたアクセス経路がデータの状態に応じた最適なアクセス経路と大きく相違することも防止される。
【００１８】
また、請求項３記載の発明において、既存のアクセス経路情報としては、例えば請求項４に記載したように、データベースに記憶されたデータへのアクセスが要求されるデータベースの稼働期間中に、データベース管理装置によるデータのアクセスに使用され、データベースの稼働期間中にアクセス経路情報に起因する障害が発生しなかったアクセス経路情報を適用することができる。
【００１９】
また、請求項１〜請求項４の何れかに記載の発明において、第１判定手段又は第２判定手段は、例えば請求項５に記載したように、データベースに記憶されたデータへのアクセスが要求されないデータベースの非稼働期間に、データベースに記憶されたデータへのアクセスを要求するダミーのアクセス要求をデータベース管理装置に与えることで、データベースに記憶されたデータへのアクセスが要求されるデータベースの稼働期間が終了した時点でデータベースに記憶されているデータの状態を表す統計情報に基づき、データベース管理装置によって新たなアクセス経路情報を生成させるよう構成することが好ましい。これにより、データベース管理装置によるアクセス経路情報の生成がデータベースの非稼働期間に行われることになると共に、アクセス経路情報の生成に用いる情報の収集をデータベースの稼働期間に行う必要が無くなる。従って、データベースの稼働期間に、アクセス経路情報を生成する処理やアクセス経路情報の生成に用いる情報を収集する処理を並列に行うことで、アクセス要求に対する応答速度が低下することを防止することができる。
【００２０】
また、請求項１〜請求項５の何れかに記載の発明において、データベース管理装置が、統計情報の生成が指示されると統計情報を生成して第２記憶手段に記憶させ、データベースに記憶されたデータへのアクセスが要求されると、第２記憶手段に記憶されている統計情報に基づいてアクセス経路情報を生成する構成である場合、例えば請求項６に記載したように、第１判定手段又は第２判定手段は、第２記憶手段に記憶されている統計情報を第３記憶手段に複写すると共に、第１記憶手段に記憶されているアクセス経路情報を消去した後に、データベース管理装置に対して統計情報の生成を指示し、データベース管理装置によって生成された新たな統計情報が第２記憶手段に記憶された後に、新たなアクセス経路情報をデータベース管理装置によって生成させ、第１制御手段又は第２制御手段は、データベース管理装置によって生成された新たなアクセス経路情報をデータベース管理装置によるデータのアクセスに使用させない場合は、第１判定手段又は第２判定手段によって第３記憶手段に複写された統計情報を第２記憶手段に上書き記憶させるように構成することができる。
【００２１】
請求項７記載の発明に係るデータベース管理装置の制御プログラムは、コンピュータを、データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して記憶手段に記憶させた後に、前記記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報に、前記データに直接アクセスするアクセス経路が記述されているか否かを判定する第１判定手段、及び、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていないと判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させ、前記第１判定手段により、生成された新たな前記アクセス経路情報に前記データに直接アクセスするアクセス経路が記述されていると判定された場合には、生成された新たな前記アクセス経路情報を前記データベース管理装置によるデータのアクセスに使用させない制御処理を行う第１制御手段として機能させる。
【００２２】
請求項７記載の発明に係るデータベース管理装置の制御プログラムは、コンピュータを、上記の第１判定手段及び第１制御手段として機能させるためのプログラムであるので、コンピュータが請求項７記載の発明に係るデータベース管理装置の制御プログラムを実行することで、コンピュータが請求項１に記載のデータベース管理装置の制御装置として機能することになり、請求項１記載の発明と同様に、アクセス経路情報の更新に伴って障害が発生することを未然に防止することができ、アクセス経路情報に記述されたアクセス経路がデータベースのデータの状態に応じた最適なアクセス経路と大きく相違することも防止できる。
【００２３】
請求項８記載の発明に係るデータベース管理装置の制御プログラムは、コンピュータを、データベースに記憶されたデータへのアクセスが要求された場合に、前記データへのアクセス経路を記述したアクセス経路情報が記憶されていないときには、前記データベースに記憶されたデータの状態を表す統計情報に基づき、前記アクセス経路として、索引経由でデータにアクセスするアクセス経路又はデータに直接アクセスするアクセス経路を選択し、選択したアクセス経路を記述した前記アクセス経路情報を生成して記憶手段に記憶させた後に、前記記憶手段に記憶された前記アクセス経路情報に基づき、当該アクセス経路情報に記述された前記データへのアクセス経路に従って前記データへのアクセスを行うデータベース管理装置に対し、前記データベースに記憶されたデータの現在の状態を表す前記統計情報に基づいて新たな前記アクセス経路情報を生成させ、前記データベース管理装置によって生成された新たな前記アクセス経路情報が、新たな前記アクセス経路情報が生成されるよりも前に前記データベース管理装置によるデータのアクセスに使用されていた既存の前記アクセス経路情報と同一か否かを判定する第２判定手段、及び、前記第２判定手段により、生成された新たな前記アクセス経路情報が既存の前記アクセス経路情報と同一でないと判定された場合に、当該判定の結果を出力し、前記アクセス経路情報の更新を指示する情報が入力手段を介して入力された場合のみ、生成された新たな前記アクセス経路情報を既存の前記アクセス経路情報に代えて前記データベース管理装置によるデータのアクセスに使用させる制御処理を行う第２制御手段として機能させる。
【００２４】
請求項８記載の発明に係るデータベース管理装置の制御プログラムは、コンピュータを、上記の第２判定手段及び第２制御手段として機能させるためのプログラムであるので、コンピュータが請求項８記載の発明に係るデータベース管理装置の制御プログラムを実行することで、コンピュータが請求項３に記載のデータベース管理装置の制御装置として機能することになり、請求項３記載の発明と同様に、アクセス経路情報の更新に伴って障害が発生することを未然に防止することができ、アクセス経路情報に記述されたアクセス経路がデータベースのデータの状態に応じた最適なアクセス経路と大きく相違することも防止できる。
【発明の効果】
【００２５】
以上説明したように本発明は、データベース管理装置に対し、データベースに記憶されたデータの現在の状態を表す統計情報に基づいて新たなアクセス経路情報を生成させ、生成された新たなアクセス経路情報に、データに直接アクセスするアクセス経路が記述されているか否かを判定し、新たなアクセス経路情報にデータに直接アクセスするアクセス経路が記述されていないと判定された場合には、新たなアクセス経路情報をデータベース管理装置によるデータのアクセスに使用させ、新たなアクセス経路情報にデータに直接アクセスするアクセス経路が記述されていると判定された場合には、新たなアクセス経路情報をデータベース管理装置によるデータのアクセスに使用させない制御処理を行うので、アクセス経路情報の更新に伴って障害が発生することを未然に防止することができ、アクセス経路情報に記述されたアクセス経路がデータベースのデータの状態に応じた最適なアクセス経路と大きく相違することも防止できる、という優れた効果を有する。
【００２６】
また本発明は、データベース管理装置に対し、データベースに記憶されたデータの現在の状態を表す統計情報に基づいて新たなアクセス経路情報を生成させ、新たなアクセス経路情報が既存のアクセス経路情報と同一か否かを判定し、新たなアクセス経路情報が既存のアクセス経路情報と同一でないと判定された場合に、当該判定の結果を出力し、アクセス経路情報の更新を指示する情報が入力手段を介して入力された場合のみ、新たなアクセス経路情報を既存のアクセス経路情報に代えてデータベース管理装置によるデータのアクセスに使用させるので、アクセス経路情報の更新に伴って障害が発生することを未然に防止することができ、アクセス経路情報に記述されたアクセス経路がデータベースのデータの状態に応じた最適なアクセス経路と大きく相違することも防止できる、という優れた効果を有する。
【図面の簡単な説明】
【００２７】
【図１】実施形態に係るコンピュータ・システムの概略構成を示すブロック図である。
【図２】データベースのオンライン稼働期間及びバッチ稼働期間に行われる処理の概略を示すシーケンス図である。
【図３】第１実施形態に係るアクセスパス更新制御処理の内容を示すフローチャートである。
【図４】(Ａ)は処理対象のＳＱＬの一例、(Ｂ)はアクセスパスの一例を各々示すイメージ図である。
【図５】第２実施形態に係るアクセスパス更新制御処理の内容を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【００２９】
〔第１実施形態〕
図１には本実施形態に係るコンピュータ・システム１０が示されている。本実施形態において、コンピュータ・システム１０は特定金融機関に設けられており、特定金融機関の情報センタ等に設置されたＤＢ(データベース)サーバ１２と、特定金融機関内に構築されたコンピュータ・ネットワーク２０を含んで構成されている。
【００３０】
ＤＢサーバ１２はサーバ・コンピュータから成り、ＣＰＵ１２Ａ、ＲＯＭやＲＡＭを含むメモリ１２Ｂ、磁気ディスク等を含む不揮発性の記憶部１２Ｃ、ネットワークインタフェース(Ｉ／Ｆ)部１２Ｄを備えている。ＤＢサーバ１２は、ネットワークＩ／Ｆ部１２Ｄに接続された通信回線を介してコンピュータ・ネットワーク２０(詳しくはネットワーク２０内のルータ２２)と、コンピュータ・システム１０の管理者が操作するための管理者端末２６と、に各々接続されている。
【００３１】
また、ＤＢサーバ１２の記憶部１２Ｃには、ＤＢサーバ１２をＤＢ(データベース)管理部として機能させるためのデータベース管理アプリケーション・プログラム、ＤＢサーバ１２をアクセスパス更新制御部として機能させるためのアクセスパス更新制御プログラムが各々記憶されており、ＤＢ管理部が統計情報(後述)を記憶するための記憶領域と、ＤＢ管理部がアクセスパス情報テーブル(後述)を記憶するための記憶領域も設けられている。なお、上記のＤＢ管理部は本発明におけるデータベース管理装置の一例であり、アクセスパス更新制御プログラムは請求項７に記載のデータベース管理装置の制御プログラムの一例である。また、記憶部１２Ｃは本発明における第１〜第３記憶手段の一例である。
【００３２】
また、ＤＢサーバ１２には、大容量の磁気ディスク等の記憶媒体から成るストレージ１４が接続されており、ストレージ１４にはデータベース１６が記憶されている。データベース１６はリレーショナル型のデータベースであり、データ本体が格納される複数のテーブル１６Ａと、テーブル１６Ａに格納されたデータ本体を指し示すインデックス(索引)情報が格納されるインデックスＤＢ１６Ｂと、を含んで構成されている。なお、本実施形態において、データベース１６には特定金融機関の業務遂行に必要なデータ(例えば顧客情報や口座情報等)が記憶されるが、本発明は任意のデータを記憶したデータベースに適用可能である。
【００３３】
一方、コンピュータ・ネットワーク２０は、前述のルータ２２と、特定金融機関の各支店に各々設置された複数台の営業店端末(金融機関の従業員が操作するための端末)２４と、が通信回線を介して互いに接続されて構成されている。
【００３４】
次に本実施形態の作用を説明する。特定金融機関内で各種業務が行われている期間は、各種業務の遂行に伴い、データベース１６に対してデータの読み出しや書き込み(追加、更新、削除を含む)等のアクセスを行う必要が生ずる。このため、データベース１６は、特定金融機関内で各種業務が行われる期間を含む予め定められた期間がオンライン稼働期間とされている。そしてＤＢサーバ１２(のＤＢ管理部)は、データベース１６のオンライン稼働期間中、コンピュータ・システム１０内外の他のコンピュータ(例えば個々の営業店端末２４)からのデータのアクセス要求に応じてデータベース１６にアクセスする処理を行う。
【００３５】
すなわち、ＤＢサーバ１２が営業店端末２４等の他のコンピュータから受信するデータのアクセス要求はＳＱＬの規格に準拠している。ＤＢサーバ１２の記憶部１２Ｃに記憶されているアクセスパス情報テーブルには、ＤＢサーバ１２が他のコンピュータから受信する個々のアクセス要求(個々のＳＱＬ)と対応付けて、データのアクセス経路(アクセスパス)が記述されたアクセスパス情報が各々登録されている。なお、アクセスパス情報は本発明に係るアクセス経路情報の一例である。
【００３６】
アクセスパス情報に記述されたアクセスパスは間接アクセスと直接アクセスとに大別される。間接アクセスでは、まずインデックスＤＢ１６Ｂへのアクセスが行われ、インデックスＤＢ１６Ｂに格納されているインデックス(索引)情報に基づいてアクセス対象のテーブル１６Ａが特定された後に、特定したアクセス対象のテーブル１６Ａへのアクセスが行われる。また、直接アクセスでは、インデックスＤＢ１６Ｂへのアクセスを行うことなく、直接にテーブル１６Ａへのアクセスが行われる。また、本実施形態ではアクセス要求のＳＱＬとして動的ＳＱＬを採用している。このため、アクセスパス情報テーブルに登録され条件によって値が変化するパラメータ(例えばアクセス要求時に画面を介して値が入力、或いは選択されるパラメータ)を含むＳＱＬについては、前記パラメータがアクセス要求時に確定する変数として設定されている。
【００３７】
なお、上述した間接アクセスのアクセスパスは、本発明における「索引経由でデータにアクセスするアクセス経路」の一例であり、直接アクセスのアクセス経路は「データに直接アクセスするアクセス経路」の一例である。
【００３８】
図２に示すように、データベース１６のオンライン稼働期間中、ＤＢ管理部は、営業店端末２４等の他のコンピュータからＤＢサーバ１２がアクセス要求を受信する度に以下の一連の処理を行う。すなわち、ＤＢ管理部は、まず、他のコンピュータから受信したアクセス要求(ＳＱＬ)と対応付けて登録されているアクセスパス情報をアクセスパス情報テーブルから読み出す(図２のステップ３０も参照)。なお、受信したアクセス要求(ＳＱＬ)に対応するアクセスパス情報がアクセスパス情報テーブルに登録されていない場合には、上記のアクセスパス情報テーブルからアクセスパス情報を読み出す処理に代えて、受信したアクセス要求に対応するアクセスパス情報を統計情報(後述)に基づいて生成し、生成したアクセスパス情報をアクセスパス情報テーブルに登録する処理が行われる(詳細は後述)。次に、アクセスパス情報テーブルから読み出したアクセスパス情報に従ってデータベース１６にアクセスし、受信したアクセス要求で要求された処理(データの読み出しや書き込み)を行う(図２のステップ３２も参照)。そしてアクセス要求元のコンピュータに対し、先に受信したアクセス要求に対する応答を出力する(図２のステップ３４も参照)。
【００３９】
このように、ＤＢサーバ１２のＤＢ管理部は、他のコンピュータからアクセス要求を受信する度に上記の一連の処理を行うことで、他のコンピュータに代わってデータベース１６へのアクセスを行う。これにより、他のコンピュータ上で動作するアプリケーション・プログラムの開発負荷の低減、性能やシステム資源の利用効率の向上が実現される。
【００４０】
ところで、ＤＢサーバ１２のＤＢ管理部がアクセス要求を受信してから応答を出力する迄の時間(アクセス時間)はアクセスパスの適否によって大きく左右され、最適なアクセスパスはデータベース１６に記憶されているデータの状態(例えばデータ量等)に応じて変化する。このため、ＤＢ管理部は、データベース１６に記憶されているデータの状態を表す統計情報に基づき、他のコンピュータから受信する個々のアクセス要求(ＳＱＬ)毎に最適なアクセスパス(アクセスパス情報)を生成する機能(アクセスパス最適化機能(ＣＢＯ:Cost Based Optimizerともいう))を備えている。但し、アクセスパス情報テーブルにアクセスパス情報が登録されていない状態でデータベース１６のオンライン稼働を開始すると、一通りのアクセスパス情報の生成・アクセスパス情報テーブルへの登録が完了する迄の間は、アクセスパス情報を生成する処理に要する時間分だけアクセス時間が長時間化する。このため、データベース１６のオンライン稼働が停止している期間(図２に示すバッチ稼働期間)に、ＤＢ管理部へダミーのアクセス要求を与えてアクセスパス情報の生成及びアクセスパス情報テーブルへの登録を事前に行っておくことが望ましい。
【００４１】
しかしながら、データベース１６に記憶されているデータの状態は、データベース１６のオンライン稼働期間内で大きく変動する可能性がある。また、ＤＢ管理部によって最適なアクセスパスを生成させる処理をデータベース１６のオンライン稼働が停止しているバッチ稼働期間に行った場合、データベース１６のオンライン稼働期間終了時点でのデータの状態に基づいてアクセスパスが生成されることになる。このため、オンライン稼働期間終了時点でのデータの状態が、オンライン稼働期間中でかつＤＢサーバ１２の負荷が最大又は最大に近くなる時間帯でのデータの状態と大きく相違していることも生じ得る。そして、オンライン稼働期間終了時点でのデータの状態が、オンライン稼働期間中でかつＤＢサーバ１２の負荷が最大又は最大に近くなる時間帯でのデータの状態と大きく相違していた場合、ＤＢサーバ１２の負荷が最大又は最大に近くなる時間帯でのデータの状態に対して不適切なアクセスパス(アクセスパス情報)が生成されることで、データベース１６のオンライン稼働期間にアクセス時間の著しい長時間化やシステムのダウン等の障害が発生する恐れがある。
【００４２】
このため、本実施形態では、データベース１６のオンライン稼働期間が終了する度に、ＤＢサーバ１２のＣＰＵ１２Ａによってアクセスパス更新制御プログラムが実行されることで、図３に示すアクセスパス更新制御処理がＤＢサーバ１２によって行われる。なお、このアクセスパス更新制御処理は、ＤＢサーバ１２の記憶部１２Ｃに記憶されているアクセスパス情報テーブルに既存のアクセスパス情報(データベース１６のオンライン稼働期間中のデータのアクセスに使用され、オンライン稼働期間中にアクセスパス情報に起因する障害が発生しなかったアクセスパス情報)が記憶され、記憶部１２Ｃの統計情報記憶領域に、上記の既存のアクセスパス情報の生成に用いられた既存の統計情報が記憶されている状態で実行される。なお、上記の既存のアクセスパス情報は請求項４に記載の「既存のアクセス経路情報」の一例である。
【００４３】
このアクセスパス更新制御処理では、まずステップ６０において、ＤＢサーバ１２の記憶部１２Ｃの統計情報記憶領域に記憶されている既存の統計情報を、記憶部１２Ｃに設けられたバックアップ領域に複写すると共に、ＤＢサーバ１２の記憶部１２Ｃに記憶されたアクセスパス情報テーブルに登録されているアクセスパス情報をＤＢ管理部によって全て消去させる(図２のステップ３６も参照)。またステップ６２では、データベース１６に記憶されているデータの状態を表す統計情報の生成をＤＢ管理部に対して指示する(図２のステップ３８も参照)。次のステップ６４では、ＤＢ管理部による統計情報の生成が完了したか否か判定し、判定が肯定される迄ステップ６４を繰り返す。
【００４４】
この間、データベース１６に記憶されているデータの状態を表す新たな統計情報を収集・生成する処理がＤＢ管理部によって行われ、生成された新たな統計情報は、ＤＢサーバ１２の記憶部１２Ｃの統計情報記憶領域に記憶されている既存の統計情報に上書きして保存される(図２のステップ４０も参照)。なお、上記の統計情報はアクセスパスを生成する際にＤＢ管理部によって参照される情報であり、例えばテーブル１６Ａに関する統計情報としては、例えば行数、ブロック数、平均行長、列内の個別値数、列内のＮＵＬＬ数、データ分布(最大値／最小値／ヒストグラム)が挙げられ、インデックスＤＢ１６Ｂに関する統計情報としては、例えばリーフブロック数、レベル(ツリーの高さ)、クラスタリングファクタ等が挙げられ、システムに関する統計情報としては、例えばＩ／ＯパフォーマンスやＣＰＵパフォーマンスが挙げられる。
【００４５】
ＤＢ管理部による統計情報の生成・保存が完了すると、ステップ６４の判定が肯定されてステップ６６へ移行し、データベース１６のオンライン稼働期間に他のコンピュータからアクセス要求として受信する一通りのＳＱＬのうちの１つを処理対象のＳＱＬとして取り出す。そしてステップ６８では、ステップ６６で取り出した処理対象のＳＱＬをダミーのアクセス要求(データベース１６に対する実際のデータの読み出しや書き込みが不要なアクセス要求)としてＤＢ管理部に入力することで、対応するアクセスパスの生成を要求する(図２のステップ４２も参照)。
【００４６】
アクセスパス更新制御処理では、先のステップ６０でアクセスパス情報テーブルに登録されているアクセスパス情報を全て消去させており、ＤＢ管理部は、入力された処理対象のＳＱＬに対応するアクセスパス情報がアクセスパス情報テーブルに登録されていないために、処理対象のアクセス要求を生成する処理を行う。すなわち、まず処理対象のＳＱＬに応じてデータベース１６にアクセスするためのアクセスパスとして複数のアクセスパスを生成する(複数のアクセスパスには間接アクセスのアクセスパスも直接アクセスのアクセスパスも含まれる)。ＤＢ管理部は、続いて、生成した複数のアクセスパスを、統計情報記憶領域に記憶されている統計情報(この場合は図２のステップ４０で生成した統計情報)に基づいて評価し、最適なアクセスパス(例えばアクセス時間が最短となるアクセスパス)を選択する。またＤＢ管理部は、選択した最適なアクセスパスを記述したアクセスパス情報を生成し、生成したアクセスパス情報を入力された処理対象のＳＱＬと対応付けてアクセスパス情報テーブルに登録する(図２のステップ４４も参照)。
【００４７】
ＤＢ管理部によって処理対象のＳＱＬに対応するアクセスパス情報が生成されると、次のステップ７０では、ＤＢ管理部に対し、生成したアクセスパス情報をファイルとして出力するよう要求する。これにより、ＤＢ管理部は、生成したアクセスパス情報をアクセスパス更新制御部が取扱可能な形式のファイルへ変換してアクセスパス更新制御部へ送信することで、生成したアクセスパス情報に記述したアクセスパスを通知する(図２のステップ４６も参照)。
【００４８】
アクセスパスを表すファイルをＤＢ管理部から受信すると、次のステップ７２では、ＤＢ管理部から受信したファイルに対し、生成されたアクセスパス情報に記述されたアクセスパスが直接アクセスであることを表す所定の文字列が含まれているか否かを探索する。図４(Ａ)には処理対象のＳＱＬの一例を、図４(Ｂ)には図４(Ａ)に示す処理対象のＳＱＬから生成されるアクセスパス情報の一例を各々示す。図４(Ｂ)に示すアクセスパス情報の文字列のうち、"TABLE ACCESS FULL"はアクセスパスが直接アクセスであることを表す文字列の一例であり、ステップ６０ではこのような文字列を探索する。
【００４９】
なお、アクセスパス情報上でのアクセスパスの表記方法はＤＢ管理部の種類(例えばＤＢサーバ１２をＤＢ管理部として機能させるためのＤＢ管理アプリケーション・プログラムの提供メーカ)等に応じて相違している。このため、アクセスパスが直接アクセスであることを表す文字列についても、ＤＢ管理部の種類に応じて相違することは言うまでもない。
【００５０】
次のステップ７４では、ステップ７２の探索によってアクセスパスが直接アクセスであることを表す文字列が抽出されたか否か判定する(図２のステップ４８も参照)。この判定が否定された場合はステップ７６へ移行し、他のコンピュータからアクセス要求として受信する一通りのＳＱＬの全てを処理対象のＳＱＬとして取り出したか否か判定する。判定が否定された場合はステップ６６に戻り、ステップ７４の判定又はステップ７６の判定が肯定される迄の間、ステップ６６〜ステップ７６を繰り返す。
【００５１】
なお、上述したステップ５４〜ステップ６２、ステップ６６は本発明に係る第１判定手段(詳しくは請求項５,６に記載の第１判定手段)による処理の一例である。
【００５２】
ここで、直接アクセスのアクセスパスは、データベース１６の運用開始初期で記憶されているデータ量が少ない状態では最適なアクセスパスになり得る。但し、直接アクセスのアクセスパスでの実際のアクセスはテーブル１６Ａ全体が読み込まれることによって成される。このため、データベース１６の運用開始から或る程度の期間が経過し、或る程度のデータが蓄積された以降は、直接アクセスのアクセスパスはアクセス時間の長時間化を招き、アクセス要求が集中する時間帯における障害の原因となり易い。また、最適なアクセスパスとして直接アクセスのアクセスパスが選択された場合、処理対象のデータベース１６のデータの現在の状態は、アクセス要求が集中する時間帯におけるデータの状態と相違しており、その状態の変化は、例えばデータ量が一時的に減少した等のように短期的かつ周期的な変化である可能性が高い。
【００５３】
このため、先のステップ７４の判定が肯定された場合はステップ７８へ移行し、先のステップ６２における統計情報の生成指示に従い、ＤＢ管理部によって生成されて記憶部１２Ｃの統計情報記憶領域に記憶された新たな統計情報を、先のステップ６０で記憶部１２Ｃのバックアップ領域に複写した既存の統計情報で上書きすることで、統計情報記憶領域に記憶されている統計情報を元に戻す。またステップ８０では、ＤＢサーバ１２の記憶部１２Ｃに記憶されたアクセスパス情報テーブルに登録されているアクセスパス情報(記述された全アクセスパスの中に直接アクセスのアクセスパスが含まれるアクセスパス情報)をＤＢ管理部によって消去させた後に前述のステップ６６,６８,７６と同様の処理を行うことで、元のアクセスパス情報に基づくアクセスパス情報の再生成・アクセスパス情報テーブルへの登録を行わせ、アクセスパス更新制御処理を終了する(図２のステップ４８,５０も参照)。
【００５４】
上記のように、ＤＢ管理部によって生成された新たなアクセスパス情報が、アクセスパスとして直接アクセスが記述されたアクセスパス情報であった場合には、記憶部１２Ｃの統計情報記憶領域に記憶されている統計情報を元に戻してアクセスパス情報の再生成を行わせるので、アクセスパス情報テーブルに登録されているアクセスパス情報も元に戻り、ＤＢ管理部によって生成された新たなアクセスパス情報はデータのアクセスに用いられることなく廃棄される。これにより、データのアクセスに用いるアクセスパス情報の更新に伴い、オンライン稼働期間中にアクセスパス情報に起因する障害が処理対象のデータベース１６に発生することを未然に防止することができる。
【００５５】
また、他のコンピュータからアクセス要求として受信する一通りのＳＱＬに対し、ＤＢ管理部により、間接アクセスのアクセスパスが記述されたアクセスパス情報が生成された場合にはステップ７６の判定が肯定される。この場合、生成されたアクセスパス情報の中に直接アクセスのアクセスパスを記述したアクセスパス情報が含まれていないので、アクセス要求が集中する時間帯にアクセスパスを原因として障害が発生する可能性は殆ど無いと判断できる。また、処理対象のデータベース１６のデータの現在の状態が、アクセス要求が集中する時間帯におけるデータの状態と相違していたとしても、その状態の変化は長期間に亘る非周期的な変化である可能性が高い。従って、今回生成された新たなアクセスパス情報が既存のアクセスパス情報と相違していたとしても、その変化は、処理対象のデータベース１６のデータの状態の長期間に亘る非周期的な変化を反映している可能性が高いと判断できる。
【００５６】
このため、ステップ７６の判定が肯定された場合は何ら処理を行うことなくアクセスパス更新制御処理を終了する。ステップ７６の判定が肯定された時点では、ＤＢ管理部によって新たに生成された統計情報(データベース１６における現在のデータの状態を表す統計情報)が記憶部１２Ｃの統計情報記憶領域に記憶され、ＤＢ管理部によって生成された新たなアクセスパス情報がアクセスパス情報テーブルに登録されている状態となっているので、ステップ７６の判定が肯定されてアクセスパス更新制御処理を終了した場合には、次に到来するデータベース１６のオンライン稼働期間において、ＤＢ管理部によって生成された新たなアクセスパス情報(データベース１６のデータの状態の長期間に亘る非周期的な変化を反映した内容のアクセスパス情報)に基づいてデータのアクセスが行われることになる。
【００５７】
なお、上述したステップ７２〜ステップ８０は、ステップ７６の判定が肯定された場合にステップ７８,８０をスキップする処理と共に、本発明に係る第１制御手段による処理の一例である。
【００５８】
〔第２実施形態〕
次に本発明の第２実施形態を説明する。なお、本第２実施形態は先に説明した第１実施形態と同一の構成であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第２実施形態の作用について、第１実施形態と異なる部分についてのみ説明する。
【００５９】
本第２実施形態では、ＤＢサーバ１２の記憶部１２Ｃに記憶されているアクセスパス更新制御プログラムが第１実施形態と相違している。このアクセスパス更新制御プログラムは請求項８に記載のデータベース管理装置の制御プログラムの一例であり、ＣＰＵ１２Ａによってアクセスパス更新制御プログラムが実行されることで、図５に示すアクセスパス更新制御処理が実現される。なお、図５に示すアクセスパス更新制御処理についても、データベース１６のオンライン稼働期間が終了する度にＤＢサーバ１２によって行われる。
【００６０】
図５に示すように、本第２実施形態に係るアクセスパス更新制御処理では、まずステップ５８において、ＤＢ管理部に対し、アクセスパス情報テーブルに登録されている既存の全てのアクセスパス情報をファイルとして出力するよう要求し、この要求に従ってＤＢ管理部から送信された既存のアクセスパス情報のファイルを記憶部１２Ｃのワーク領域に記憶させる。また、ステップ６０において、第１実施形態と同様に、記憶部１２Ｃの統計情報記憶領域に記憶されている既存の統計情報を記憶部１２Ｃのバックアップ領域に複写すると共に、アクセスパス情報テーブルに登録されているアクセスパス情報をＤＢ管理部によって全て消去させた後に、次のステップ６１において、メモリ１２Ｂのうちフラグとして用いる記憶領域に０を設定する。
【００６１】
また、ＤＢ管理部によって生成された新たなアクセスパス情報を受信すると、第１実施形態で説明したようにアクセスパス情報に対する文字列の検索を行うことに代えて、ステップ７２において、ＤＢ管理部から受信したアクセスパス情報を、先のステップ５８で記憶部１２Ｃのワーク領域に記憶させた既存のアクセスパス情報のうち、同一のＳＱＬと対応付けられたアクセスパス情報と比較する。そして次のステップ８２では、ステップ８０における比較の結果に基づき、ＤＢ管理部から受信したアクセスパス情報が、同一のＳＱＬと対応付けられた既存のアクセスパス情報と同一か否か判定する。
【００６２】
ステップ８２の判定が肯定された場合はステップ７６へ移行し、他のコンピュータからアクセス要求として受信する一通りの全てのＳＱＬを処理対象のＳＱＬとして取り出したか否か判定する。判定が否定された場合はステップ６６に戻り、ステップ７６の判定が肯定される迄ステップ６６〜ステップ７６を繰り返す。なお、上述したステップ６６〜ステップ７６、ステップ８２は本発明に係る第２判定手段(詳しくは請求項５,６に記載の第２判定手段)による処理の一例である。
【００６３】
また、ＤＢ管理部によって既存のアクセスパス情報と異なるアクセスパス情報が生成された場合はステップ８２の判定が否定されてステップ８４へ移行し、アクセスパス情報の不一致が生じたことを管理者端末２６を通じて管理者へ通知すると共に、その内容も管理者端末２６へ出力する。これにより、既存のアクセスパス情報と異なるアクセスパス情報が生成されたことと、生成されたアクセスパス情報が既存のアクセスパス情報とどのように相違しているかが管理者に認識される。また、次のステップ８６ではフラグに１を設定し、ステップ７６に戻る。
【００６４】
また、処理対象のデータベース１６へのアクセス要求に用いられる全てのＳＱＬについて、ＤＢ管理部によってアクセスパス情報が生成されると、ステップ７６の判定が肯定されてステップ８８へ移行する。ステップ８８ではフラグが０か否か判定する。この判定が肯定された場合、今回生成されたアクセスパス情報は既存のアクセスパス情報と同一であり、アクセスパス情報の更新は不要であるので、処理対象のデータベース１６に対する処理を終了してステップ７４へ移行する。
【００６５】
またフラグに１が設定されている場合、処理対象のデータベース１６へのアクセス要求に用いられる１つ以上のＳＱＬについて、今回生成されたアクセスパス情報が既存のアクセスパス情報と相違しており、アクセスパス情報の更新の適否を判定する必要がある。本第２実施形態ではこの判定を管理者に委ねており、フラグに１が設定されていることでステップ８８の判定が否定された場合にステップ９０へ移行し、新たなアクセスパス情報への更新が管理者から指示されたか否か判定する。
【００６６】
管理者は、既存のアクセスパス情報と異なるアクセスパス情報が新たに生成されたことが通知された場合、生成された新たなアクセスパス情報が既存のアクセスパス情報とどのように相違しているかを認識する。そして、異なるアクセスパス情報が生成された原因であるデータベース１６のデータの状態の変化が、短期的かつ周期的な変化か長期間に亘る非周期的な変化かを判定する。例えば、生成された新たなアクセスパス情報の中に直接アクセスのアクセスパスを記述した情報が含まれている場合、管理者はデータの状態の変化が短期的かつ周期的な変化と判断する。また、例えば、生成された新たなアクセスパス情報の中に直接アクセスのアクセスパスを記述した情報が含まれておらず、数回(数日)に亘って同様の内容のアクセスパス情報が生成された場合、管理者はデータの状態の変化が長期間に亘る非周期的な変化と判断する。そして管理者は、データの状態の変化が短期的かつ周期的な変化と判断した場合は新たなアクセスパス情報への更新中止を指示し、データの状態の変化が長期間に亘る非周期的な変化と判断した場合は新たなアクセスパス情報への更新を指示する。
【００６７】
管理者が新たなアクセスパス情報への更新中止を指示した場合、ステップ９０の判定が否定されてステップ７８へ移行し、先のステップ６２における統計情報の生成指示に従い、ＤＢ管理部によって生成されて記憶部１２Ｃの統計情報記憶領域に記憶された新たな統計情報を、先のステップ６０で記憶部１２Ｃのバックアップ領域に複写した既存の統計情報で上書きすることで、統計情報記憶領域に記憶されている統計情報を元に戻す。またステップ８０では、ＤＢサーバ１２の記憶部１２Ｃに記憶されたアクセスパス情報テーブルに登録されているアクセスパス情報(更新中止が指示されたアクセスパス情報)をＤＢ管理部によって消去させた後に前述のステップ６６,６８,７６と同様の処理を行うことで、元のアクセスパス情報に基づくアクセスパス情報の再生成・アクセスパス情報テーブルへの登録を行わせ、アクセスパス更新制御処理を終了する。
【００６８】
上記のように、ＤＢ管理部によって生成された新たなアクセスパス情報が、アクセスパスとして直接アクセスが記述されたアクセスパス情報であった場合には、記憶部１２Ｃの統計情報記憶領域に記憶されている統計情報を元に戻してアクセスパス情報の再生成を行わせるので、アクセスパス情報テーブルに登録されているアクセスパス情報も元に戻り、ＤＢ管理部によって生成された新たなアクセスパス情報はデータのアクセスに用いられることなく廃棄される。これにより、データのアクセスに用いるアクセスパス情報の更新に伴い、オンライン稼働期間中にアクセスパス情報に起因する障害が処理対象のデータベース１６に発生することを未然に防止することができる。
【００６９】
また、管理者が新たなアクセスパス情報への更新を指示した場合は、ステップ９０の判定が肯定されて何ら処理を行うことなくアクセスパス更新制御処理を終了する。ステップ９０の判定が肯定された時点では、ＤＢ管理部によって新たに生成された統計情報(データベース１６における現在のデータの状態を表す統計情報)が記憶部１２Ｃの統計情報記憶領域に記憶され、ＤＢ管理部によって生成された新たなアクセスパス情報がアクセスパス情報テーブルに登録されている状態となっているので、ステップ９０の判定が肯定されてアクセスパス更新制御処理を終了した場合には、次に到来するデータベース１６のオンライン稼働期間において、ＤＢ管理部によって生成された新たなアクセスパス情報(管理者によって長期間に亘る非周期的な変化と判断されたデータの状態に基づいて生成された新たなアクセスパス情報)に基づいてデータのアクセスが行われることになる。なお、上述したステップ８４,８６,８８,９０,７８,８０は本発明に係る第２制御手段による処理の一例である。
【００７０】
なお、上記ではアクセス要求のＳＱＬとして動的ＳＱＬを採用した態様を説明したが、本発明はこれに限定されるものではない。本発明は、アクセス要求のＳＱＬとして静的ＳＱＬを採用し、個々のＳＱＬに対応するアクセスパスをデータの状態に応じて定期的に更新する態様に適用することも可能である。
【００７１】
また、上記では本発明に係るデータベース管理装置の制御プログラムの一例としてのアクセスパス更新制御プログラムがＤＢサーバ１２の記憶部１２Ｃに予め記憶（インストール）されている態様を説明したが、本発明に係るデータベース管理装置の制御プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【符号の説明】
【００７２】
１０  コンピュータ・システム
１２  ＤＢサーバ
１２Ｃ  記憶部
１４  ストレージ
１６  データベース
１６Ａ  テーブル
１６Ｂ  インデックスＤＢ
２６  管理者端末
【図１】
2012083861.tif 000003
【図２】
2012083861.tif 000004
【図３】
2012083861.tif 000005
【図４】
2012083861.tif 000006
【図５】
2012083861.tif 000007