(57)【要約】【課題】データアクセスの高速化を実現するデータアクセス装置を提供する。【解決手段】アプリケーション１０１のデータリクエスト２０１に応じて複数のデータアクセス方式３０３から１つのデータアクセス方式を選択してデータベース２０２にデータリクエスト２０１に対するデータアクセスを実施するデータベースアクセス装置１０２において、データリクエスト２０１に対して学習時か実行時かを決定するリクエスト処理部３０１と、学習時であると決定されるとデータリクエスト２０１に対応する複数のデータアクセス方式３０３にてデータアクセスを実施し複数のデータアクセス方式３０３のアクセス時間をそれぞれ計測するアクセス時間計測部３０２と、アクセス時間計測部３０２にて一番短い時間を有するデータアクセス方式を抽出してデータリクエスト２０１に対して最速データアクセス方式３０６として学習する学習結果保存部３０４とを備える。【選択図】図１
2007172097.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのデータリクエストに応じて複数のデータアクセス方式から１つのデータアクセス方式を選択してデータベースに上記データリクエストに対するデータアクセスを実施するデータベースアクセス装置において、上記データリクエストに対して学習時か実行時かを決定するリクエスト処理部と、上記リクエスト処理部にて学習時であると決定されると上記データリクエストに対応する上記複数のデータアクセス方式にてデータアクセスを実施し上記複数のデータアクセス方式のアクセス時間をそれぞれ計測するアクセス時間計測部と、上記アクセス時間計測部にて一番短い時間を有するデータアクセス方式を抽出して上記データリクエストに対して最速データアクセス方式として学習する学習結果保存部と、上記リクエスト処理部にて実行時であると決定されると、上記データリクエストに対して上記学習結果保存部に保存された上記最速データアクセス方式を抽出してデータアクセスを行いリクエスト結果を出力するアクセス実行時処理部とを備えたことを特徴とするデータアクセス装置。
【請求項２】
上記学習結果保存部は、上記１つのアプリケーションに対する複数の上記データリクエストの上記複数のデータアクセス方式で実行しそれぞれの合計時間を求め、上記合計時間が一番少ない上記データアクセス方式を上記１つのアプリケーションに対して最速となる最速データアクセス方式として決定して学習することを特徴とする請求項１に記載のデータアクセス装置。
【請求項３】
上記リクエスト処理部にて学習時として決定されると、上記アクセス時間計測部にてアクセス時間を計測するために実行されたデータアクセスのリクエスト結果を上記データリクエストのリクエスト結果として上記アプリケーションに出力することを特徴とする請求項１または請求項２に記載のデータアクセス装置。
【請求項４】
上記学習結果保存部は、上記アプリケーションの種別毎に上記最速データアクセス方式をそれぞれ学習することを特徴とする請求項１ないし請求項３のいずれかに記載のデータアクセス装置。
【請求項５】
上記学習結果保存部は、上記データリクエストの規則性毎に上記最速データアクセス方式をそれぞれ学習することを特徴とする請求項１ないし請求項４のいずれかに記載のデータアクセス装置。
【請求項６】
上記データリクエストの規則性を判断するリクエストパターン判定部を備え、上記学習結果保存部は、上記リクエストパターン判定部にて判定された規則性毎に上記最速データアクセス方式を学習することを特徴とする請求項５に記載のデータアクセス装置。
【請求項７】
アプリケーションのデータリクエストに応じて複数のデータアクセス方式から１つのデータアクセス方式を選択してデータベースに上記データリクエストに対するデータアクセスを実施するデータベースアクセス方法において、上記データリクエストに対して学習時か実行時かを決定するリクエスト処理手順と、上記リクエスト処理手順にて学習時であると決定されると上記データリクエストに対応する上記複数のデータアクセス方式にてデータアクセスを実施し上記複数のデータアクセス方式のアクセス時間をそれぞれ計測するアクセス時間計測手順と、上記アクセス時間計測手順にて一番短い時間を有するデータアクセス方式を抽出して上記データリクエストに対して最速データアクセス方式として学習する学習結果保存手順と、上記リクエスト処理部にて実行時であると決定されると、上記データリクエストに対して上記学習結果保存部に保存された上記最速データアクセス方式を抽出してデータアクセスを行いリクエスト結果を出力するアクセス実行時処理手順とを備えたことを特徴とするデータアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データアクセスの高速化を実現するデータアクセス装置およびデータアクセス方法に関するものである。
【背景技術】
【０００２】
従来、大容量記憶装置および高速ネットワークの進展に伴い、保存されるデータ量はますます増大し、データへの高速なアクセス手法の確保が必要となっている。アプリケーションから必要なデータリクエストを受けたデータベースアクセスの、目的のデータにアクセスするためのアクセス方式には、ランダムアクセス／シーケンシャルアクセス等のファイルアクセスの方式、データキャッシュの使用有無及びその方式、データ取得経路の選択など、様々なアクセス方式を備えている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００４−５４５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のデータアクセスでは、複数のアクセス方式のうち、最も高速にデータを取得したい場合、どのアクセス方式を選択するべきなのかが実際に実行するまで不明という問題点があった。また、仮にある動作環境での最も高速なアクセス方式を決定できたとしても、別の動作環境ではシステムの規模・物理的なハードウェアの性能等に関する複数の環境要因によって最適値が変化してしまい、前回と同じ方式では高速にアクセス出来ず、再度高速化の検討が必要という問題点があった。更に、動作環境が同じであっても、汎用的なデータアクセスを対象に高速化した結果では、データアクセスがある特殊なパターンに偏っている場合に、そのパターンに特化した場合よりも低速になってしまうという問題があった。尚、ここで述べるパターンとは、データリクエスト要求の持つ規則性のことである。これらのことより、データアクセスの高速化は、実行時の環境、アプリケーションからのリクエストパターン（以下、規則性と称す）に応じて都度検討が必要であり、その検討においても各アクセス方式の詳細な知識を持つ人材が必要で、誰にでも可能なものではないという問題があった。
【０００５】
この発明は上記のような課題を解決するためになされたものであり、内部に複数のアクセス方式を備える場合、最も高速なアクセス方式を内部的に自動選択することによりデータアクセスの高速化を実現することができるデータアクセス装置およびデータアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、アプリケーションのデータリクエストに応じて複数のデータアクセス方式から１つのデータアクセス方式を選択してデータベースにデータリクエストに対するデータアクセスを実施するデータベースアクセス装置において、データリクエストに対して学習時か実行時かを決定するリクエスト処理部と、リクエスト処理部にて学習時であると決定されるとデータリクエストに対応する複数のデータアクセス方式にてデータアクセスを実施し複数のデータアクセス方式のアクセス時間をそれぞれ計測するアクセス時間計測部と、アクセス時間計測部にて一番短い時間を有するデータアクセス方式を抽出してデータリクエストに対して最速データアクセス方式として学習する学習結果保存部とリクエスト処理部にて実行時であると決定されると、データリクエストに対して学習結果保存部に保存された最速データアクセス方式を抽出してデータアクセスを行いリクエスト結果を出力するアクセス実行時処理部とを備えたものである。
【発明の効果】
【０００７】
この発明のデータアクセス装置は、アプリケーションのデータリクエストに応じて複数のデータアクセス方式から１つのデータアクセス方式を選択してデータベースにデータリクエストに対するデータアクセスを実施するデータベースアクセス装置において、データリクエストに対して学習時か実行時かを決定するリクエスト処理部と、リクエスト処理部にて学習時であると決定されるとデータリクエストに対応する複数のデータアクセス方式にてデータアクセスを実施し複数のデータアクセス方式のアクセス時間をそれぞれ計測するアクセス時間計測部と、アクセス時間計測部にて一番短い時間を有するデータアクセス方式を抽出してデータリクエストに対して最速データアクセス方式として学習する学習結果保存部とリクエスト処理部にて実行時であると決定されると、データリクエストに対して学習結果保存部に保存された最速データアクセス方式を抽出してデータアクセスを行いリクエスト結果を出力するアクセス実行時処理部とを備えたので、複数のアクセス方式を備える場合、最も高速なアクセス方式を内部的に選択することができるものである。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
以下、本願発明の実施の形態について説明する。図１はこの発明の実施の形態１におけるデータアクセス装置の構成を示す図、図２は図１に示したデータアクセス装置の動作を説明するためのフローチャートである。図において、データアクセスのリクエスト（以下、データリクエストと称す）を行うアプリケーション１０１と、このアプリケーション１０１ごとのデータリクエスト２０１に応じて、複数のデータアクセス方式３０３から１つの最速データアクセス方式３０６を選択してデータベース２０２にデータリクエスト２０１に対するデータアクセスを実施するデータベースアクセス装置１０２とがある。データベースアクセス装置１０２は、データリクエスト２０１に対して学習時か実行時かを決定するリクエスト処理部３０１と、リクエスト処理部３０１にて学習時のアクセス要求であると決定されると、データリクエスト２０１に対応する全てのデータアクセス方式３０３にてデータアクセスを実施し複数のデータアクセス方式３０３のアクセス時間をそれぞれ計測するアクセス時間計測部３０２とを備える。尚、ここではアクセス時間計測部３０２がデータリクエスト２０１に対応する全てのデータアクセス方式３０３にてデータアクセスを実施して時間を計測する場合について説明したが、これに限られることはなく、対応するデータアクセス方式３０３から所望の複数のデータアクセス方式３０３のみに対してデータアクセスを実施することも考えられる。
【０００９】
さらに、アクセス時間計測部３０２にて一番短い時間を有するデータアクセス方式を抽出してデータリクエスト２０１に対して最速データアクセス方式３０６として学習する学習結果保存部３０４とを備える。この実施の形態１において学習結果保存部３０４では、１つのアプリケーション１０１に対する規則性毎のデータリクエスト２０１を各データアクセス方式で実行しそれぞれの合計時間を求め、合計時間が一番少ないデータアクセス方式を、この１つのアプリケーション１０１に対して最速となる１つの最速データアクセス方式として決定して学習する。さらに、リクエスト処理部３０１にて実行時のアクセス要求であると決定されると、学習結果保存部３０４に保存されたデータリクエスト２０１、すなわち、アプリケーション１０１に対応する最速データアクセス方式３０６を抽出してデータアクセスを行うアクセス実行時処理部３０５と、データアクセス装置１０２の内部ファイルとして、実際のアクセス対象データとしての複数のデータファイルが格納された内部のデータベース２０２とを備える。また、リクエスト処理部３０１は学習時において、アクセス時間計測部３０２にて計測より実行されたデータアクセスのリクエスト結果の１つをアプリケーション１０１に出力し、実行時には、アクセス実行時処理部３０５のリクエスト結果をアプリケーション１０１に出力する。
【００１０】
次に上記のように構成された実施の形態１のデータアクセス装置のデータアクセス方法について図２に基づいて説明する。まず、リクエスト処理部３０１が学習時として決定している場合の動作について説明する。アプリケーション１０１はデータアクセス装置１０２に実行時と全く同様にデータリクエスト２０１を発行する（図２のステップＳ１）。次に、データリクエスト２０１を受信したリクエスト処理部３０１は、学習時状態を認識し、データリクエスト２０１をアクセス時間計測部３０２に渡す（図２のステップＳ２）。次に、データベース２０２への複数のデータアクセス方式３０３、ここではアクセスＡ、Ｂ、Ｃ、Ｄの方式がある。そして、アクセス時間計測部３０２は複数のデータアクセス方式３０３から１つの方式を実行し、そのデータアクセス方式３０３の処理時間を計測する（図２のステップＳ３）。
【００１１】
次に、全てのデータアクセス方式３０３に対して処理時間を計測したか否かを判断する（図２のステップＳ４）。次に、ＮＯの場合には再びステップＳ３に戻り上記場合と同様の処理を行う。また、ＹＥＳの場合には、処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１はアプリケーション１０１に上記処理時間を計測した際に得られたリクエスト結果を返す（図２のステップＳ５）。次に、１つのアプリケーション１０１に対する全ての規則性毎のデータリクエスト２０１に対して上記処理を行ったか否かを判断する（図２のステップＳ６）。次に、１つのアプリケーション１０１に対して他の規則性のデータリクエスト２０１が残っている場合には（ＮＯ）、再びステップＳ２に戻り上記場合と同様の処理を繰り返す。また、１つのアプリケーション１０１に対して他の規則性のデータリクエスト２０１が残っていない場合（ＹＥＳ）、すなわちすべての規則性のデータリクエスト２０１に対して処理時間を計測した後、アクセス時間計測部３０２は、各データアクセス方式３０３のうち、処理時間の合計が最も短かったデータアクセス方式３０３を最も高速な最速データアクセス方式３０６、ここではアクセスＢの方式と判定し、学習結果保存部３０４に１つのアプリケーション１０１に対してアクセスＢの方式を最速データアクセス方式３０６であるとして保存して（図２のステップＳ７）、学習時を終了する。尚、ここでは特に示していないが、データリクエストは方式毎の実行順序を変更しながら実施するので、実行順序に対する方式の有利不利は結果に反映されない。
【００１２】
次に、リクエスト処理部３０１が実行時として決定している場合の動作について説明する。まず、アプリケーション１０１はデータアクセス装置１０２にデータリクエスト２０１を発行する。次に、データリクエスト２０１を受信したリクエスト処理部３０１は、実行時状態を認識し、データリクエスト２０１をアクセス実行時処理部３０５に渡す（図２のステップＳ８）。次に、アクセス実行時処理部３０５は学習結果保存部３０４から１つのアプリケーション１０１、すなわち、データリクエスト２０１に対する最速データアクセス方式３０６を取得し、指定された最速データアクセス方式３０６にてデータベース２０２へのアクセスを実施する（図２のステップＳ９）。次に、アクセス実行時処理部３０５は処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１はアプリケーション１０１にこのリクエスト結果を返す（図２のステップＳ１０）。
【００１３】
上記のように構成された実施の形態１のデータアクセス装置およびデータアクセス方法は、実行環境やアクセス要求のパターンに対応して、最も高速な方式の最速データアクセス方式を自動的に選択することが可能となる。この発明を実施するためには、データアクセス装置は学習時と実行時の２つの状態を持ち、学習時は、運転前に実際の実行環境と同じ環境でデータアクセス装置を動作させ、アプリケーションから実行時と同様のデータリクエストを受信する。このとき、データアクセス装置は複数の内部アクセス方式のうち、全てのアクセス方式に対してアクセスを行い、それぞれの時間を計測し、最も高速にデータアクセス出来る方式を決定する。そして、実行時には、先ほどの学習時に選択されたアクセス方式にてデータアクセスを行うため、実行時には、学習時に選択された最速データアクセス方式にてアクセスを行うことができ、最も高速なアクセスが実現できる。また、システムの規模・物理的なハードウェアの性能が異なる別の動作環境であっても、再度同様に学習を実施すれば、自動的に環境にあわせた最適なアクセス方式を選択することが可能となる。
【００１４】
尚、上記実施の形態１においては規則性毎のデータリクエストに対して測定を行い、これらの合計時間により、１つのアプリケーションに対する１つの最速データアクセス方式を決定している例を示したが、これに限られることはなく、１つのデータリクエストに対してのみ学習を行いその際の最速のものを１つのアプリケーションの１つの最速データアクセス方式として決定する方法にて行うことも可能であり。この場合は、敏速に最速データアクセス方式を決定することができる。または、所望の規則性の種類、例えば５種類のデータリクエストから１つのアプリケーションに対する最速データアクセス方式を決定する方法など様々な方法が考えられる。
【００１５】
実施の形態２．
図３はこの発明の実施の形態２におけるデータアクセス装置の構成を示す図である。図において、上記実施の形態１に示した部分と同様の部分は同一符号を付して説明を省略する。本実施の形態２においては、上記実施の形態１と異なりデータベースをデータアクセス装置１０２外の外部データベース２１０として備えたものである。
【００１６】
次に上記のように構成された実施の形態２のデータアクセス装置の動作について説明する。ここでは主な動作は上記実施の形態１の場合と同様であるため、上記実施の形態１の動作と異なる動作について説明する。本実施の形態２においては、複数のデータアクセス方式３０３および最速データアクセス方式３０６が、外部データベース２１０に対してアクセスするものであり、上記実施の形態１とアクセス方式が異なる点のみが動作として異なる部分である。
【００１７】
上記のように構成された実施の形態２のデータアクセス装置およびデータアクセス方法では、データの保存場所がデータアクセス装置内のデータベースでなく、外部データベース上にある場合でも、同様に外部データベースへの複数のアクセス方式が備える場合、上記実施の形態１と同様のアルゴリズムでアクセスの高速化を実現可能であり、上記実施の形態１と同様の効果を奏することが可能である。尚、以下の実施の形態においてもデータベースを外部データベースとする場合も同様に行うことが可能なため、その説明は適宜省略する。
【００１８】
実施の形態３．
図４はこの発明の実施の形態３におけるデータアクセス装置の構成を示す図、図５は図４に示したデータアクセス装置の動作を示すためのフローチャートである。図において、上記各実施の形態に示した部分と同様の部分は同一符号を付して説明を省略する。この実施の形態３においては、上記各実施の形態と異なり、データアクセス装置に対してデータリクエストを行うアプリケーションが複数種存在する。データアクセス装置１０２に対して第１のデータリクエスト２０３（図４において、リクエスト（１）または（１）と示す）を発行する第１のアプリケーション１０３と、データアクセス装置１０２に対して第２のデータリクエスト２０４（図４において、リクエスト（２）または（２）と示す）を発行する第２のアプリケーション１０４とが存在するものであり、学習結果保存部３０４は第１および第２のアプリケーション１０３、１０４の種別毎に最速データアクセス方式３０７、３０８を保存する。
【００１９】
次に上記のように構成された実施の形態３のデータアクセス装置のデータアクセス方法について図５に基づいて説明する。まず、リクエスト処理部３０１が学習時として決定している場合の動作について説明する。第１および第２のアプリケーション１０３、１０４はデータアクセス装置１０２に実行時と全く同様に第１および第２のデータリクエスト２０３、２０４を発行する（図５のステップＳ１１）。次に、第１および第２のデータリクエスト２０３、２０４を受信したリクエスト処理部３０１は、学習時状態を認識し、第１および第２のデータリクエスト２０３、２０４をアクセス時間計測部３０２に渡す（図５のステップＳ１２）。次に、データベース２０２への複数のデータアクセス方式３０３、ここではアクセスＡ、Ｂ、Ｃ、Ｄの方式がある。そして、アクセス時間計測部３０２は複数のデータアクセス方式３０３から１つの方式を実行し、第１および第２のデータリクエスト２０３、２０４に対してそのデータアクセス方式３０３の処理時間をそれぞれ計測する（図５のステップＳ１３）。
【００２０】
次に、全てのデータアクセス方式３０３に対して処理時間を計測したか否かを判断する（図５のステップＳ１４）。次に、ＮＯの場合には再びステップＳ１３に戻り上記場合と同様の処理を行う。また、ＹＥＳの場合には、処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１は第１および第２のアプリケーション１０３、１０４にそれぞれの上記処理時間を計測した際に得られたリクエスト結果をそれぞれ返す（図５のステップＳ１５）。次に、各アプリケーションの種別毎、第１および第２のアプリケーション１０３、１０４に対して全ての規則性毎の第１および第２のデータリクエスト２０３、２０４に対して上記処理を行ったか否かを判断する（図５のステップＳ１６）。次に、アプリケーションの種別毎、第１および第２のアプリケーション１０３、１０４に対して他の規則性の第１および第２のデータリクエスト２０３、２０４が残っている場合には（ＮＯ）、再びステップＳ１２に戻り上記場合と同様の処理を繰り返す。
【００２１】
また、アプリケーションの種別毎、第１および第２のアプリケーション１０３、１０４に対して他の規則性の第１および第２のデータリクエスト２０３、２０４が残っていない場合（ＹＥＳ）、すなわちすべての規則性の第１および第２のデータリクエスト２０３、２０４に対して処理時間を計測した後、アクセス時間計測部３０２は、各データアクセス方式３０３のうち、処理時間の合計が最も短かったデータアクセス方式３０３を最も高速な最速データアクセス方式３０７、３０８、ここでは第１のアプリケーション１０３に対してはアクセスＢの方式、第２のアプリケーション１０４に対してはアクセスＣの方式と判定し、学習結果保存部３０４に各種別の第１および第２のアプリケーション１０３、１０４、すなわち第１および第２のデータリクエスト２０３、２０４に対する最速データアクセス方式３０７、３０８であるとして保存する（図５のステップＳ１７）。次に、全ての種別のアプリケーションに対して最速データアクセス方式を決定したか否かを判断する（図５のステップＳ１８）。そして、ＮＯの場合には再びステップＳ１１に戻り上記に示した動作を繰り返す。また、ＹＥＳの場合には学習時を終了する。
【００２２】
次に、リクエスト処理部３０１が実行時として決定している場合の動作について説明する。まず、第１および第２のアプリケーション１０３、１０４はデータアクセス装置１０２に第１および第２のデータリクエスト２０３、２０４をそれぞれ発行する。次に、第１および第２のデータリクエスト２０３、２０４を受信したリクエスト処理部３０１は、実行時状態を認識し、第１および第２のデータリクエスト２０３、２０４が第１および第２のアプリケーション１０３、１０４のいずれかのリクエストであるかを判断してアクセス実行時処理部３０５に渡す（図５のステップＳ１９）。次に、アクセス実行時処理部３０５は学習結果保存部３０４から第１および第２のアプリケーション１０３、１０４、すなわち、第１および第２のデータリクエスト２０３、２０４に対するそれぞれの最速データアクセス方式３０７、３０８を取得し、第１のアプリケーション１０３の第１のデータリクエスト２０３に対しては最速データアクセス方式３０７にて、第２のアプリケーション１０４のデータリクエスト２０４に対しては最速データアクセス方式３０８にてデータベース２０２へのアクセスをそれぞれ実施する（図５のステップＳ２０）。次に、アクセス実行時処理部３０５は処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１は第１および第２のアプリケーション１０３、１０４にリクエスト結果をそれぞれ返す（図５のステップＳ２１）。
【００２３】
上記のように構成された実施の形態３のデータアクセス装置およびデータアクセス方法では、アプリケーションの種別毎に集計され、高速な最速データアクセス方式が選択され、アクセスが実行される。このように、１つのデータアクセス装置にてアプリケーションの種別毎に高速なアクセス方式を学習することにより、アプリケーションの種別毎にアクセスパターンが異なる場合でも、それぞれのアプリケーションに最適化したアクセス方式での実行時アクセスが可能となる。よって、アプリケーションの種別毎のアクセス要求パターンの違いにより対応することが可能となる。
【００２４】
実施の形態４．
図６はこの発明の実施の形態４におけるデータアクセス装置の構成を示す図、図７は図６に示したデータアクセス装置の動作を示すためのフローチャートである。図において、上記各実施の形態に示した部分と同様の部分は同一符号を付して説明を省略する。この実施の形態４においては、上記各実施の形態と異なり、学習結果保存部３０４において、１つのアプリケーション１０１のデータリクエストの規則性（以下、規則性のことをパターンと称する場合もある）毎、ここでは第１種のデータリクエスト２０５（図６において、リクエスト（ａ）または（ａ）と示す）および第２種のデータリクエスト２０６（図６においてリクエスト（ｂ）または（ｂ）と示す）毎に最速データアクセス方式を学習する。
【００２５】
次に上記のように構成された実施の形態４のデータアクセス装置のデータアクセス方法について図７に基づいて説明する。まず、リクエスト処理部３０１が学習時として決定している場合の動作について説明する。アプリケーション１０１はデータアクセス装置１０２に実行時と全く同様に異なる規則性を有する第１種および第２種のデータリクエスト２０５、２０６を発行する（図７のステップＳ３１）。次に、第１種および第２種のデータリクエスト２０５、２０６を受信したリクエスト処理部３０１は、学習時状態を認識し、第１種および第２種のデータリクエスト２０５、２０６にて決定されているリクエストパターン（規則性）を指定して（図７のステップＳ３２）、アクセス時間計測部３０２に渡す（図７のステップＳ３３）。次に、データベース２０２へのアクセス方式の複数のデータアクセス方式３０３、ここではアクセスＡ、Ｂ、Ｃ、Ｄの方式がある。そして、アクセス時間計測部３０２は複数のデータアクセス方式３０３から１つの方式を実行し、そのデータアクセス方式３０３の処理時間を計測する（図７のステップＳ３４）。
【００２６】
次に、全てのデータアクセス方式３０３に対して処理時間を計測したか否かを判断する（図７のステップＳ３５）。次に、ＮＯの場合には再びステップＳ３４に戻り上記場合と同様の処理を行う。また、ＹＥＳの場合には、処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１はアプリケーション１０１に上記処理時間を計測した際に得られたリクエスト結果を返す（図７のステップＳ３６）。次に、アプリケーション１０１に対する全ての規則性毎、第１種および第２種のデータリクエスト２０５、２０６に対して上記処理を行ったか否かを判断する（図７のステップＳ３７）。そして、アプリケーション１０１に対して他の規則性のデータリクエストが残っている場合には（ＮＯ）、再びステップＳ３３に戻り上記場合と同様の処理を繰り返す。また、アプリケーション１０１に対して他の規則性のデータリクエストが残っていない場合（ＹＥＳ）、すなわちすべての規則性のデータリクエストに対して処理時間を計測した後、アクセス時間計測部３０２は、第１種および第２種のデータリクエスト２０５、２０６毎に各データアクセス方式３０３のうち、処理時間が最も短かったデータアクセス方式３０３を、第１種のデータリクエスト２０５に対しては最も高速な最速データアクセス方式３０９ここではアクセスＢの方式、第２種のデータリクエスト２０６に対しては最速データアクセス方式３１０ここではアクセスＤの方式を、学習結果保存部３０４にアプリケーション１０１の規則性毎の第１種および第２種のデータリクエスト２０５、２０６毎に対する最速データアクセス方式３０９、３１０であるとしてそれぞれ保存する（図７のステップＳ３８）。
【００２７】
次に、リクエスト処理部３０１が実行時として決定している場合の動作について説明する。まず、アプリケーション１０１はデータアクセス装置１０２に規則性の異なる第１種および第２種のデータリクエスト２０５、２０６をそれぞれ発行する。次に、第１種および第２種のデータリクエスト２０５、２０６を受信したリクエスト処理部３０１は、リクエストパターン（規則性）を指示して（図７のステップＳ３９）、実行時状態を認識し、データリクエスト２０１をアクセス実行時処理部３０５に渡す（図７のステップＳ４０）。次に、アクセス実行時処理部３０５は学習結果保存部３０４から第１種および第２種のデータリクエスト２０５、２０６のそれぞれに応じた最速データアクセス方式３０９、３１０をそれぞれ取得し、第１種のデータリクエスト２０５に対しては最速データアクセス方式３０９にて、第２種のデータリクエスト２０６に対しては最速データアクセス方式３１０にてデータベース２０２へのそれぞれアクセスを実施する（図７のステップＳ４１）。次に、アクセス実行時処理部３０５は処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１はアプリケーション１０１の第１種および第２種のデータリクエスト２０５、２０６に対してリクエスト結果をそれぞれ返す（図７のステップＳ４２）。
【００２８】
上記のように構成された実施の形態４のデータアクセス装置およびデータアクセス方法では、アプリケーションのデータリクエストの規則性毎に別々に集計され、それぞれの規則性に対して高速な最速データアクセス方式が保存され、実行時には規則性毎に保存された最速データアクセス方式が選択され、アクセスが実行される。このように、アプリケーション内でアクセス要求パターンが違う場合でも、それをアプリケーション側が指定することにより、それぞれのデータリクエストの規則性毎に最適化したアクセス方式での実行時アクセスが可能となる。よって、アプリケーションのデータリクエストの規則性毎のアクセス要求パターンの違いにより対応することが可能となる。
【００２９】
実施の形態５．
図８はこの発明の実施の形態５におけるデータアクセス装置の構成を示す図、図９は図８に示したデータアクセス装置の動作を示すためのフローチャートである。図において、上記各実施の形態に示した部分と同様の部分は同一符号を付して説明を省略する。この実施の形態５においては、上記実施の形態４と異なりアプリケーション１０１のデータリクエスト２０１のリクエストパターン（規則性）を判定するリクエストパターン判定部３１１を備える。尚、図８においてリクエストパターンの種別を、リクエスト（ａ）または（ａ）と、リクエスト（ｂ）または（ｂ）と示す。
【００３０】
次に上記のように構成された実施の形態５のデータアクセス装置のデータアクセス方法について図９に基づいて説明する。まず、リクエスト処理部３０１が学習時として決定している場合の動作について説明する。アプリケーション１０１はデータアクセス装置１０２に実行時と全く同様にデータリクエスト２０１を発行する（図９のステップＳ５１）。データリクエスト２０１を受信したリクエストパターン判定部３１１はデータリクエスト２０１の内容を解釈し、予め決められたロジックによって、そのデータリクエスト２０１のリクエストパターン（規則性）を選択する（図９のステップＳ５２）。次に、リクエスト処理部３０１は、学習時状態を認識し、データリクエスト２０１をアクセス時間計測部３０２に渡す（図９のステップＳ５３）。次に、データベース２０２へのアクセス方式の複数のデータアクセス方式３０３、ここではアクセスＡ、Ｂ、Ｃ、Ｄの方式がある。そして、アクセス時間計測部３０２は複数のデータアクセス方式３０３から１つの方式を実行し、そのデータアクセス方式３０３の処理時間を計測する（図９のステップＳ５４）。次に、全てのデータアクセス方式３０３に対して処理時間を計測したか否かを判断する（図９のステップＳ５５）。次に、ＮＯの場合には再びステップＳ５４に戻り上記場合と同様の処理を行う。
【００３１】
また、ＹＥＳの場合には、処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１はアプリケーション１０１に上記処理時間を計測した際に得られたリクエスト結果を返す（図９のステップＳ５６）。次に、アプリケーション１０１に対する全ての規則性に対するデータリクエスト２０１に対して処理を行ったか否かを判断する（図９のステップＳ５７）。そして、アプリケーション１０１に対して他の規則性のデータリクエスト２０１が残っている場合には（ＮＯ）、再びステップＳ５２に戻り上記場合と同様の処理を繰り返す。また、アプリケーション１０１に対して他の規則性のデータリクエスト２０１が残っていない場合（ＹＥＳ）、すなわちすべての規則性のデータリクエスト２０１に対して処理時間を計測した後、アクセス時間計測部３０２は、データリクエスト２０１の規則性毎に、各のデータアクセス方式３０３のうち、処理時間が最も短かったデータアクセス方式３０３を最も高速な最速データアクセス方式３０６、ここでは規則性をリクエスト（ａ）と判断した場合にはアクセスＢの方式を、規則性をリクエスト（ｂ）と判断した場合にはアクセスＤの方式をそれぞれ判定し、学習結果保存部３０４にアプリケーション１０１の規則性毎の最速データアクセス方式３０９、３１０をそれぞれ保存する（図９のステップＳ５８）。
【００３２】
次に、リクエスト処理部３０１が実行時として決定している場合の動作について説明する。まず、アプリケーション１０１はデータアクセス装置１０２にデータリクエスト２０１を発行する。次に、データリクエスト２０１を受信したリクエストパターン判定部３１１はデータリクエスト２０１のリクエストパターン（規則性）を選択する（図９のステップＳ５９）。次に、リクエスト処理部３０１は、実行時状態を認識し、データリクエスト２０１をアクセス実行時処理部３０５に渡す（図９のステップＳ６０）。次に、アクセス実行時処理部３０５は学習結果保存部３０４からリクエスト（ａ）、（ｂ）に応じた最速データアクセス方式３０９、３１０を取得し、リクエスト（ａ）に対しては最速データアクセス方式３０９にて、また、リクエスト（ｂ）に対しては最速データアクセス方式３１０にてデータベース２０２へのアクセスを実施する（図９のステップＳ６１）。次に、アクセス実行時処理部３０５は処理完了をリクエスト処理部３０１に通知し、リクエスト処理部３０１はアプリケーション１０１にリクエスト結果を返す（図９のステップＳ６２）。
【００３３】
上記のように構成された実施の形態５のデータアクセス装置およびデータアクセス方法では、アプリケーションのデータリクエストの規則性をデータアクセス装置内にて判断して、規則性毎に別々に集計され、それぞれの規則性に対して高速な最速データアクセス方式が保存され、実行時には規則性毎に保存された最速データアクセス方式が選択され、アクセスが実行される。このように、アプリケーション内でアクセス要求パターンが違う場合でも、それをアプリケーション側が指定することにより、それぞれのデータリクエストの規則性毎に最適化したアクセス方式での実行時アクセスが可能となる。
【図面の簡単な説明】
【００３４】
【図１】この発明の実施の形態１におけるデータアクセス装置の構成を示す図である。
【図２】図１に示したデータアクセス装置の動作を示すフローチャートである。
【図３】この発明の実施の形態２におけるデータアクセス装置の構成を示す図である。
【図４】この発明の実施の形態３におけるデータアクセス装置の構成を示す図である。
【図５】図４に示したデータアクセス装置の動作を示すフローチャートである。
【図６】この発明の実施の形態４におけるデータアクセス装置の構成を示す図である。
【図７】図６に示したデータアクセス装置の動作を示すフローチャートである。
【図８】この発明の実施の形態５におけるデータアクセス装置の構成を示す図である。
【図９】図８に示したデータアクセス装置の動作を示すフローチャートである。
【符号の説明】
【００３５】
１０１  アプリケーション、１０２  データアクセス装置、
１０３  第１のアプリケーション、１０４  第２のアプリケーション、
２０１  データリクエスト、２０２  データベース、２０３  第１のデータリクエスト、２０４  第２のデータリクエスト、２０５  第１種のデータリクエスト、
２０６  第２種のデータリクエスト、２１０  外部データベース、
３０１  リクエスト処理部、３０２  アクセス時間計測部、
３０３  データアクセス方式、３０４  学習結果保存部、
３０５  アクセス実行時処理部、
３０６，３０７，３０８，３０９，３１０  最速データアクセス方式、
３１１  リクエストパターン判定部。
【図１】
2007172097.tif 000003
【図２】
2007172097.tif 000004
【図３】
2007172097.tif 000005
【図４】
2007172097.tif 000006
【図５】
2007172097.tif 000007
【図６】
2007172097.tif 000008
【図７】
2007172097.tif 000009
【図８】
2007172097.tif 000010
【図９】
2007172097.tif 000011