(57)【要約】【課題】従来の複数の記憶部を備えた情報処理装置においては、テーブルを作成する際に、アクセス時の性能の低下が抑えられるよう最適な記憶部を選択できないという課題があった。【解決手段】二次記憶媒体である複数の記憶部１０１と、複数の記憶部１０１のそれぞれに対するアクセスに関する情報であるアクセス情報を蓄積するアクセス情報蓄積部１０９と、テーブルを生成する指示を受け付ける入力受付部１０２と、アクセス情報に基づいて、テーブルを配置する記憶部１０１を決定するテーブル配置決定部１１０と、テーブル配置決定部１１０が決定した記憶部１０１にテーブルを生成するテーブル生成部１１１とを具備する。【選択図】図１
2006343928.tif 000002
【特許請求の範囲】
【請求項１】
二次記憶媒体である複数の記憶部と、
前記複数の記憶部のそれぞれに対するアクセスに関する情報であるアクセス情報を蓄積するアクセス情報蓄積部と、
テーブルを生成する指示を受け付ける入力受付部と、
前記アクセス情報に基づいて、テーブルを配置する記憶部を決定するテーブル配置決定部と、
前記テーブル配置決定部が決定した記憶部にテーブルを生成するテーブル生成部とを具備する情報処理装置。
【請求項２】
前記入力受付部は、生成するテーブルについての使用状況に関する情報である使用情報を、さらに受け付け、
前記テーブル配置決定部は、前記使用情報と、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定する請求項１記載の情報処理装置。
【請求項３】
前記アクセス情報は、アクセスされた時間に関する情報を有しており、
前記テーブル配置決定部は、時間帯ごとのアクセスの状況に基づいてテーブルを配置する記憶部を決定する請求項１または請求項２いずれか記載の情報処理装置。
【請求項４】
二次記憶媒体である複数の記憶部のそれぞれに対するアクセスに関する情報であるアクセス情報を蓄積するアクセス情報蓄積ステップと、
テーブルを生成する指示を受け付ける入力受付ステップと、
前記アクセス情報に基づいて、テーブルを配置する記憶部を決定するテーブル配置決定ステップと、
前記テーブル配置決定ステップで決定した記憶部にテーブルを生成するテーブル生成ステップとを具備する情報処理方法。
【請求項５】
前記入力受付ステップは、生成するテーブルについての使用状況に関する情報である使用情報を、さらに受け付け、
前記テーブル配置決定ステップは、前記使用情報と、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定する請求項４記載の情報処理方法。
【請求項６】
前記アクセス情報は、アクセスされた時間に関する情報を有しており、
前記テーブル配置決定ステップは、時間帯ごとのアクセスの状況に基づいてテーブルを配置する記憶部を決定する請求項４または請求項５いずれか記載の情報処理方法。
【請求項７】
コンピュータに、
二次記憶媒体である複数の記憶部のそれぞれに対するアクセスに関する情報であるアクセス情報を蓄積するアクセス情報蓄積ステップと、
テーブルを生成する指示を受け付ける入力受付ステップと、
前記アクセス情報に基づいて、テーブルを配置する記憶部を決定するテーブル配置決定ステップと、
前記テーブル配置決定ステップで決定した記憶部にテーブルを生成するテーブル生成ステップとを実行させるためのプログラム。
【請求項８】
前記入力受付ステップは、生成するテーブルについての使用状況に関する情報である使用情報を、さらに受け付け、
前記テーブル配置決定ステップは、前記使用情報と、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定する請求項７記載のプログラム。
【請求項９】
前記アクセス情報は、アクセスされた時間に関する情報を有しており、
前記テーブル配置決定ステップは、時間帯ごとのアクセスの状況に基づいてテーブルを配置する記憶部を決定する請求項７または請求項８いずれか記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース等を管理するための情報処理装置等に関するものである。
【背景技術】
【０００２】
従来から、データベースを管理する情報処理装置として、複数のディスクを有する情報処理装置があった。例えば、複数のディスクと、各ディスクに接続されたプロセッサとを備えた情報処理装置において、各プロセッサに対する処理負荷を分散させるために、複数のプロセッサのそれぞれに対して決められたデータを予め個別に分散配置しておくものがある。（例えば、特許文献１参照）。
【特許文献１】特開平９−２１８８５８号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一方、従来の、データベースを管理するための複数のディスク等の記憶部を有する情報処理装置においては、データベースのテーブル等を新規に作成する場合に、その作成先の記憶部として、複数の記憶部を順番に選択することが多く、アクセス時における性能の低下が抑えられるように複数の記憶部のうちの最適な記憶部を選択する手段等がなかった。
【０００４】
このため、例えば、一つのディスクに、所定の時間帯におけるアクセス数の多いテーブル等が作成された場合等には、この所定の時間帯に、このディスクに対するアクセスが集中することにより、アクセス速度が遅くなる等の性能の大幅な低下がおこり、データベースの処理速度が低下してしまうという課題があった。
【課題を解決するための手段】
【０００５】
本第一の発明の情報処理装置は、二次記憶媒体である複数の記憶部と、前記複数の記憶部のそれぞれに対するアクセスに関する情報であるアクセス情報を蓄積するアクセス情報蓄積部と、テーブルを生成する指示を受け付ける入力受付部と、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定するテーブル配置決定部と、前記テーブル配置決定部が決定した記憶部にテーブルを生成するテーブル生成部とを具備する情報処理装置である。
【０００６】
かかる構成により、テーブル等を新規に作成する記憶部として、アクセス時の性能の低下が抑えられるような最適な記憶部を、複数の記憶部から選択できる。これにより、処理が高速な情報処理装置を提供可能となる。
【０００７】
また、本第二の発明の情報処理装置は、第一の発明に対して、前記入力受付部は、生成するテーブルについての使用状況に関する情報である使用情報を、さらに受け付け、前記テーブル配置決定部は、前記使用情報と、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定する情報処理装置である。
【０００８】
かかる構成により、新たに作成するテーブルに対するアクセスも考慮して、より最適な記憶部を、複数の記憶部から選択できる。
【０００９】
また、本第三の発明の情報処理装置は、第一、第二いずれかの発明に対して、前記アクセス情報は、アクセスされた時間に関する情報を有しており、前記テーブル配置決定部は、時間帯ごとのアクセスの状況に基づいてテーブルを配置する記憶部を決定する情報処理装置である。
【００１０】
かかる構成により、時間帯別のアクセス数も考慮して、より最適な記憶部を、複数の記憶部から選択できる。
【発明の効果】
【００１１】
本発明による情報処理装置によれば、テーブル等を新規に作成する記憶部として、アクセス時の性能の低下が抑えられるような最適な記憶部を、複数の記憶部から選択可能な、データベースの処理が高速な情報処理装置を得ることができる。
【発明を実施するための最良の形態】
【００１２】
以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００１３】
図１は、本実施の形態における情報処理装置のブロック図である。
情報処理装置は、複数の記憶部１０１、入力受付部１０２、テーブル生成判定部１０３、使用情報取得部１０４、テーブルアクセス部１０５、データ出力部１０６、アクセス情報取得部１０７、アクセス情報蓄積部１０８、アクセス情報記憶部１０９、テーブル配置決定部１１０、テーブル生成部１１１を具備する。
【００１４】
複数の記憶部１０１は、それぞれ、ハードディスクや、ＤＶＤ等の光ディスクや、フロッピー（登録商標）ディスク等の不揮発性の２次記憶媒体により構成される。各記憶部１０１には、データベースを構成するテーブルが１以上格納可能である。ここでは、例として、情報処理装置が３つの記憶部１０１（１）〜１０１（３）を備えている場合を例として示しているが、記憶部１０１の数は２以上であればよい。ここで述べるデータベースは主として、リレーショナルデータベース等であるが、オブジェクト指向データベース等であってもよい。例えば、オブジェクト指向データベースの場合、クラスやオブジェクトがテーブルに相当する。各記憶部１０１に格納される各テーブルは、例えば、テーブル名や、属性、属性値のタイプ、罫線の種類等により定義される。各テーブルに格納されるデータのデータ構造等は問わない。記憶部１０１は、アクセス可能に接続されていれば、テーブルアクセス部１０５や、テーブル生成部１１１等の他の処理部とは、ＳＣＳＩ，ＩＤＥ，ＩＥＥＥ１３８４等、どのように接続されているかは問わない。また、各記憶部１０１は、他の処理部等に対して、外付けされた記憶媒体でも内蔵された記憶媒体でも良い。
【００１５】
入力受付部１０２は、新たなテーブルを生成する指示を含む入力を受け付ける。入力受付部１０２が受け付ける入力は、情報処理装置に対して処理を実行させるためのコマンドや、そのコマンドの実行に必要な情報等である。例えば、各記憶部１０１が記憶しているテーブルを選択したり、削除したり、テーブルに格納されているデータを更新したりするコマンド等や、テーブルに格納するデータ等である。また、入力受付部１０２が受け付ける新たなテーブルを作成する指示は、例えば、記憶部１０１のいずれかに新たなテーブルを作成するコマンドである。また、入力受付部１０２は、テーブルを作成するコマンドとともに、この作成するテーブルのテーブル名や、属性名や、その属性のタイプ、例えば、属性値が数であるか文字列かといったことを示す情報等を受け付けてもよい。また、本実施の形態においては、入力受付部１０２が、生成するテーブルについての使用状況に関する情報である使用情報を、さらに受け付ける場合について説明する。使用状況に関する情報とは、例えば、新たに作成したテーブルがどのような日時や時間帯に利用されるかといったアクセスが行われる時間に関する情報や、時間帯別のアクセス数や、アクセスによってテーブルから取り出されるレコード数やデータ量や、時間帯別の応答時間等の、新たに生成するテーブルの使用状況を予測した情報、あるいは、このような使用状況を設定する情報等である。応答時間とは、例えば、テーブルに対してアクセスする指示があってから
、実際にテーブルに対してアクセスを行ってデータを取得したりするまでの時間等である。使用情報のデータ構造は問わない。入力受付部１０２の受け付ける入力は、テンキーやキーボードやマウスやメニュー画面による入力等で、入力手段はどのようなものであってもよい。入力受付部１０２は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００１６】
テーブル生成判定部１０３は、入力受付部１０２の受け付けた入力に、テーブルを生成する指示が含まれるか否かを判定する。テーブルを生成する指示とは、例えば、上述したように、テーブルを生成するコマンド（例えばｃｒｅａｔｅ  ｔａｂｌｅ、ｔａｂｌｅ  ｎａｍｅ等）である。テーブル生成判定部１０３は、通常、ＭＰＵやメモリ等から実現され得る。テーブル生成判定部１０３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００１７】
使用情報取得部１０４は、入力受付部１０２の受け付けた入力から、上述した使用情報を取得する。使用情報取得部１０４は通常、ＭＰＵやメモリ等から実現され得る。使用情報取得部１０４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００１８】
テーブルアクセス部１０５は、入力受付部１０２の受け付けた入力に、複数の記憶媒体１０１のいずれかに記憶されているテーブルに対してアクセスが必要な指示が含まれるか否かを判定する。そして、アクセスが必要な指示が含まれている場合、この指示に従って、テーブルに対してアクセスを行う。アクセスとは、データ等の読み出し、または書き込み、あるいは読み出しおよび書き込みである。アクセスが必要な指示とは、例えば、上述したように、テーブルにデータを蓄積したり、テーブルに蓄積されているレコードやデータを取得したり、レコードを削除したり、テーブルを削除したりするコマンドである。テーブルアクセス部１０５は、通常、ＭＰＵやメモリ等から実現され得る。テーブルアクセス部１０５の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００１９】
データ出力部１０６は、テーブルアクセス部１０５が、複数の記憶部１０１のいずれかにアクセスした結果得られたデータを出力する。出力とは、ディスプレイへの表示、プリンターによる印刷、外部の装置への送信等を含む概念である。データ出力部１０６は、ディスプレイやプリンターや通信手段等の出力デバイスを含むと考えても含まないと考えても良い。データ出力部１０６は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００２０】
アクセス情報取得部１０７は、複数の記憶部１０１のそれぞれに対する、テーブルアクセス部１０５により行われたアクセスに関する情報であるアクセス情報を取得する。アクセスに関する情報とは、例えば、各記憶部１０１ごとや各記憶部１０１が記憶している各テーブルごとの、アクセスを取得する指示を受け付けた日時や、アクセスが行われた日時や、このアクセスによりデータが取得された日時や、どのようなアクセスが行われたかを示すアクセスの種類や、アクセスにより取得あるは蓄積されたレコードやデータの量等である。また、これらのデータに基づいて算出等を行うことにより得られる、各記憶部１０１ごとや各記憶部１０１が記憶している各テーブルごとの、時間帯別の、アクセス数や、取得あるいは蓄積されたレコードやデータの総量や、平均値、アクセス指示の受け付けから、レコードやデータの取得等が完了するまでの応答時間であってもよい。例えば、いわゆるアクセスログ情報もこのようなアクセス情報に含まれる。また、アクセスに関する情報は、各記憶部１０１ごとや各記憶部１０１が記憶している各テーブルごとの、アクセスの総数や、取得や蓄積が行われたレコードやデータの総量であってもよい。本実施の形態
においては特に、アクセスされた時間に関する情報を有している場合について説明する。アクセスされた時間に関する情報とは、アクセスに関する情報のうち、日時等の時間の情報を有するもののことである。アクセス情報取得部１０７は、通常、ＭＰＵやメモリ等から実現され得る。アクセス情報取得部１０７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２１】
アクセス情報蓄積部１０８は、アクセス情報取得部１０７が取得した、テーブルアクセス部１０５により行われたアクセスに関する情報であるアクセス情報を取得する。具体的には、アクセス情報蓄積部１０８は、アクセス情報を、アクセス情報記憶部１０９に蓄積する。アクセス情報蓄積部１０８は、通常、ＭＰＵやメモリ等から実現され得る。アクセス情報蓄積部１０８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２２】
アクセス情報記憶部１０９は、アクセス情報蓄積部１０８により蓄積されたアクセス情報を記憶する。アクセス情報記憶部１０９は、ハードディスクや書き換え不可の光ディスク等を含む不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。アクセス情報はこの記録媒体等により記憶される。
【００２３】
テーブル配置決定部１１０は、アクセス情報記憶部１０９に記憶されているアクセス情報に基づいて、新たにテーブルを配置する記憶部１０１を、複数の記憶部１０１の中から決定する。テーブル配置決定部１１０が、アクセス情報に基づいてどのように新たにテーブルを配置する記憶部１０１を決定するかは問わない。例えば、テーブル配置決定部１１０は、アクセス情報に基づいて得られる、時間帯ごとのアクセスの状況に基づいて、新たにテーブルを配置する記憶部１０１を決定する。具体的には、一の記憶部１０１のアクセス数の最も多い時間帯のアクセス数と、他の記憶部１０１のアクセス数の最も多い時間帯のアクセス数とを比較して、そのアクセス数が最も小さいほうの記憶部１０１を、テーブルを配置する記憶部１０１に決定してもよい。また、時間帯ごとの応答時間の平均値から、全ての時間帯における応答時間の平均値を求め、その平均値が最も小さい記憶部１０１を、テーブルを配置する記憶部１０１に決定してもよい。また、時間帯ではなく、過去のアクセスの総数が最も少ない各記憶部１０１を、テーブルを配置する記憶部１０１に決定してもよい。また、これらの判断結果を組み合わせて記憶部１０１を決定するようにしてもよい。さらに、テーブル配置決定部１１０は、アクセス情報に加えて、使用情報取得部１０４が取得した使用情報に基づいてテーブルを配置する記憶部１０１を決定するようにしてもよい。具体的には、テーブル配置決定部１１０は、アクセス情報に基づいて得られる、時間帯ごとのアクセスの状況と、使用情報に基づいて得られる新たに作成されるテーブルの時間帯ごとの使用状況とに基づいて、新たにテーブルを配置する記憶部１０１を決定する。例えば、テーブル配置決定部１１０は、各記憶部１０１のそれぞれについて、アクセス情報に基づいて得られる時間帯ごとのアクセス数と、使用情報に基づいて得られる時間帯ごとのアクセス数とから、新たなテーブルが各記憶部１０１に生成された場合に予想される各時間帯ごとのアクセス数を、例えば、アクセス数同士を加算する等により算出する。そして、一の記憶部１０１について算出した各時間帯ごとのアクセス数の最大値と、他の記憶部１０１について算出した各時間帯ごとのアクセス数の最大値とを比較し、アクセス数の最大値が最も小さい記憶部１０１を、テーブルを配置する記憶部１０１に決定するようにしてもよい。なお、アクセス情報記憶部１０９に格納されているアクセス情報と、使用情報取得部１０４が取得した使用情報に基づいてテーブルを配置する記憶部１０１を決定する処理の具体例は後述する。なお、テーブル配置決定部１１０は、アクセス情報記憶部１０９に記憶されているアクセス情報をそのまま利用してもよいし、必要に応じて、テーブル配置決定部１１０が、アクセス情報記憶部１０９に記憶されているアクセス
情報に対して、演算等の処理を行うことにより新たなアクセス情報を得て、これを用いるようにしてもよい。例えば、アクセス情報記憶部１０９に記憶されているアクセス情報が、各記憶部１０１に対して行われた複数のアクセスについての、それぞれの時刻と、アクセスした記憶部１０１の情報のみを有したものである場合、これらのアクセス時刻の情報から、アクセス情報記憶部１０９が時間帯別のアクセス数の情報を演算等により求め、この新たに得られた時間帯別のアクセス数の情報を用いて、テーブルを配置する記憶部１０１を決定するようにしてもよい。また、同様に、テーブル配置決定部１１０は、使用情報取得部１０４が取得した使用情報をそのまま利用してもよいし、必要に応じて、テーブル配置決定部１１０が、使用情報取得部１０４が取得した使用情報に対して、演算等の処理を行うことにより新たなアクセス情報を得て、これを用いるようにしてもよい。テーブル配置決定部１１０は、通常、ＭＰＵやメモリ等から実現され得る。テーブル配置決定部１１０の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２４】
テーブル生成部１１１は、テーブル配置決定部１１０が決定した記憶部１０１にテーブルを生成する。具体的には、テーブル生成部１１１は、入力受付部１０２が受け付けた入力に含まれるテーブルを生成するコマンドと、生成するテーブル名や、そのテーブルを構成する属性名や、属性のタイプ等の情報に基づいて、新たなテーブルに関する情報を記憶部１０１に書き込む。このようなテーブルを生成する技術は、公知技術であるので、詳細な説明は省略する。テーブル生成部１１１は、通常、ＭＰＵやメモリ等から実現され得る。テーブル生成部１１１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２５】
次に、情報処理装置の動作について図２のフローチャートを用いて説明する。
（ステップＳ２０１）入力受付部１０２は、入力を受け付けたか否かを判定する。受け付けた場合、ステップＳ２０２へ進み、受け付けていない場合、ステップＳ２０１に戻る。
【００２６】
（ステップＳ２０２）テーブル生成判定部１０３は、ステップＳ２０１において受け付けた入力が、テーブルを生成する指示であるか否かを判定する。テーブルを生成する指示である場合、ステップＳ２０３へ進み、テーブルを生成する指示でない場合、ステップＳ２０５へ進む。
【００２７】
（ステップＳ２０３）複数の記憶部１０１の中からテーブルを配置する記憶部１０１を決定する。なお、テーブル配置決定部１１０が、テーブルを配置する記憶部１０１を決定する処理については、図４において具体的に説明する。
（ステップＳ２０４）テーブル生成部１１１は、ステップＳ２０３において決定された記憶部１０１にテーブルを作成する。そして、ステップＳ２０１に戻る。
【００２８】
（ステップＳ２０５）テーブルアクセス部１０５は、ステップＳ２０４において受け付けた入力が、複数の記憶部１０１のいずれかが格納するテーブルに対するアクセスが必要な処理の指示を含むか否かを判定する。アクセスが必要な処理の指示を含む場合、ステップＳ２０６へ進み、含まない場合、ステップＳ２０１に戻る。
【００２９】
（ステップＳ２０６）テーブルアクセス部１０５は、ステップＳ２０４において受け付けた指示に基づいて、記憶部１０１のいずれかが記憶しているテーブルに対するアクセスを含む処理を行う。
【００３０】
（ステップＳ２０７）データ出力部１０６は、ステップＳ２０６の処理により得られた
データを出力する。なお、ステップＳ２０６の処理が、出力するデータを構成するような処理でない場合、このステップＳ２０７は省略してもよい。
【００３１】
（ステップＳ２０８）アクセス情報取得部１０７は、ステップＳ２０６の処理により行われた、テーブルに対するアクセスの処理に関するアクセス情報を取得する。
（ステップＳ２０９）アクセス情報取得部１０７は、アクセス情報をアクセス情報記憶部１０９に蓄積する。そして、ステップＳ２０１に戻る。
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００３２】
次に、情報処理装置の図２のステップＳ２０３に示した動作について、図３のフローチャートを用いて具体的に説明する。なお、ここでは、入力受付部１０２が新たに作成するテーブルについての使用情報を受け付けるとともに、この使用情報に、新たに作成するテーブルについての、複数の時間帯のそれぞれにおいて予測されるアクセス数の情報が含まれているものとする。
【００３３】
（ステップＳ３０１）入力受付部１０２は、使用情報を受け付けたか否かを判定する。受け付けた場合、ステップＳ３０２へ進み、受け付けていない場合、ステップＳ３０１へ戻る。
（ステップＳ３０２）使用情報取得部１０４は、ステップＳ３０１において受け付けた使用情報を取得する。
（ステップＳ３０３）テーブル配置決定部１１０は、ステップＳ３０２において取得した使用情報から、複数の時間帯の情報を取得する。
（ステップＳ３０４）テーブル配置決定部１１０は、カウンターｉに１を代入する。
【００３４】
（ステップＳ３０５）テーブル配置決定部１１０は、ｉ番目の記憶部１０１があるか否かを判定する。ある場合、ステップＳ３０６へ進み、ない場合、ステップＳ３１２へ進む。
（ステップＳ３０６）テーブル配置決定部１１０は、カウンターｊに１を代入する。
【００３５】
（ステップＳ３０７）テーブル配置決定部１１０は、ステップＳ３０３において取得した使用情報の複数の時間帯の情報に、ｊ番目の時間帯の情報があるか否かを判定する。ある場合、ステップＳ３０８へ進み、ない場合、ステップＳ３１４へ進む。
【００３６】
（ステップＳ３０８）テーブル配置決定部１１０は、ｉ番目の記憶部１０１についてのアクセス情報から、ｊ番目の時間帯のアクセス数についての情報を取得する。
【００３７】
（ステップＳ３０９）テーブル配置決定部１１０は、ステップＳ３０８において取得したｊ番目の時間帯のアクセス数と、ステップＳ３０２において使用情報取得部１０４が取得した使用情報から得られるｊ番目の時間帯において予測される新たに作成されるテーブルのアクセス数の情報とから、ｉ番目の記憶部１０１に新たなテーブルを作成した場合における、ｊ番目の時間帯において予測されるｉ番目の記憶部１０１に対する全アクセス数（以下、全予測アクセス数と称す）を算出する。例えば、ステップＳ３０８において取得したｊ番目の時間帯のアクセス数と、ステップＳ３０２において取得したｊ番目の時間帯において予測される新たに作成されるテーブルのアクセス数とを加算して得られたアクセス数を、ｊ番目の時間帯において予測されるｉ番目の記憶部１０１に対する全予測アクセス数としてもよい。
【００３８】
（ステップＳ３１０）テーブル配置決定部１１０は、予め設定されている所定のアクセス数と、ステップＳ３０９において算出された全予測アクセス数とを比較して、ステップ
Ｓ３０９において算出されたアクセス数が、所定のアクセス数以下であるか否かを判定する。所定のアクセス数以下であれば、ステップＳ３１１へ進む。所定のアクセス数よりも大きければ、ステップＳ３１５へ進む。なお、予め設定されている所定のアクセス数は、記憶部１０１に処理速度の大幅な低下等の、アクセス時の性能の低下を抑えるうえで、記憶部１０１に対して１つの時間帯におけるアクセス数として許容できるアクセス数である。この所定のアクセス数はデータベースの用途等に応じて設定される。
（ステップＳ３１１）テーブル配置決定部１１０は、カウンターｊの値を１インクリメントする。そして、ステップＳ３０７に戻る。
（ステップＳ３１２）テーブル配置決定部１１０は、乱数を発生させる。この乱数の値ｋは、１から記憶部１０１の数までの範囲に設定する。
【００３９】
（ステップＳ３１３）テーブル配置決定部１１０は、ステップＳ３１２において発生させた乱数値ｋに基づいて、ｋ番目の記憶部１０１を、テーブルを作成する記憶部１０１に決定する。そして、上位関数にリターンする。
【００４０】
（ステップＳ３１４）テーブル配置決定部１１０は、ｉ番目の記憶部１０１を、テーブルを作成する記憶部１０１に決定する。そして、上位関数にリターンする。
（ステップＳ３１５）テーブル配置決定部１１０は、カウンターｉを１インクリメントする。そして、ステップＳ３０５に戻る。
【００４１】
なお、図３のフローチャートにおいては、新たにテーブルを作成した場合に予測される、時間帯ごとのアクセス数が、常に上記の所定のアクセス数以下となるような記憶部１０１がない場合、ステップＳ３１２において発生した乱数を用いて、ランダムにテーブルを作成する記憶部を決定するようにしたが、このような場合、どのように記憶部１０１を決定するようにしてもよい。例えば、時間ごとのアクセス数の平均値が最も小さい記憶部１０１を、テーブルを作成する記憶部に決定するようにしてもよいし、各記憶部１０１のアクセス数が最大となる時間帯同士でアクセス数を比較し、アクセス数の最も小さい記憶部１０１を、テーブルを作成する記憶部に決定するようにしてもよい。
なお、図３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００４２】
以下、本実施の形態における情報処理装置の具体的な動作について説明する。情報処理装置の概念図は図４である。ここでは情報処理装置が複数の記憶部１０１として４つの記憶部１０１ａ、１０１ｂ、１０１ｃ、１０１ｄを備えているものとする。各記憶部１０１ａ〜１０１ｄは、例えば、それぞれ独立したハードディスクにより構成される。また、情報処理装置は、記憶部１０１ａ〜１０１ｄと、アクセス情報記憶部１０９と、情報処理装置のその他の部分１００とで構成されているものとする。なお、ここでは、記憶部１０１ａ、１０１ｂ、１０１ｃ、及び１０１ｄと、アクセス情報記憶部１０９とが、情報処理装置のその他の部分１００の筐体の外部に接続されているようにしているが、記憶部１０１ａ、１０１ｂ、１０１ｃ、及び１０１ｄと、アクセス情報記憶部１０９と、情報処理装置のその他の部分１００とを一つの筐体の内部に配置するようにしてもよい。また、本実施の形態においては、例として、複数のディスクが四つの場合について説明しているが、ディスクの数は二以上であればよい。記憶部１０１ａにはデータベースのテーブル１及びテーブル２、記憶部１０１ｂにはテーブル３、記憶部１０１ｃにはテーブル４、記憶部１０１ｄにはテーブル５が格納されているものとする。
【００４３】
入力受付部１０２が、ユーザからの、記憶部１０１ａ〜１０１ｄに格納されているテーブルに対する処理を行うコマンド、例えば、テーブル３から所定の条件を満たすレコードの取得を指示するクエリ等のコマンド、等の入力を受け付けた場合、このコマンドに基づいて、テーブルアクセス部１０５は、コマンドに対応した記憶部１０１ａ〜１０１ｄのテ
ーブルにアクセスして、レコード等を取得する。取得されたレコード等は、データ出力部１０６から出力、例えばプリンター等によりプリントアウトされる。そして、これらのアクセスの状況を示す情報であるアクセス情報を、アクセス情報取得部１０７が取得し、取得したアクセス情報を、アクセス情報記憶部１０９に蓄積する。
【００４４】
図５は、アクセス情報記憶部１０９に記憶されているアクセス情報管理表である。このアクセス情報管理表は、各記憶部１０１ａ〜１０１ｄに格納されている各テーブルに対して行われたアクセスの時間帯ごとのアクセス数、及びそのアクセスにおける応答速度を管理している。アクセス情報管理表は、「テーブル名」、「時間帯」、「アクセス数」、「応答速度」という属性を有している。「テーブル名」は、各記憶部１０１ａ〜１０１ｄに格納されている各テーブルの名称である。「時間帯」はアクセスが行われた時間帯であり、ここでは、１時間単位の時間帯を示している。例えば、１０：００になってから１１：００になる直前までの１時間が、時間帯の１単位である。「アクセス数」は、時間帯ごとの、アクセスされたアクセス数を示す。「応答速度」は、テーブルアクセス部１０５にアクセスが必要なコマンドが入力されてから、アクセスが終了するまでの時間の平均値である。なお、アクセス情報管理表は、ここでは、テーブルごとのアクセス情報を管理するようにしたが、各記憶部１０１ａ〜１０１ｄごとのアクセス情報を管理するようにしてもよい。
【００４５】
図６は、アクセス情報管理表において管理されているアクセス情報に基づいて、時間帯別の各テーブルに対するアクセス数を情報処理装置のディスプレイ等の表示デバイスに表示した表示例である。この表示例においては、アクセス情報をテーブル別にグラフ化している。横軸は時間帯を示しており、縦軸はアクセス数である。
【００４６】
入力受付部１０２が、ユーザからの、新たなテーブルを作成するコマンドと、この新たなテーブルのテーブル名、属性値、及び属性のタイプとを受け付けたとする。例えば、「ｃｒｅａｔｅ＿ｔａｂｌｅ」等のテーブルを作成するコマンド、及び「テーブル７」というテーブル名、「社員ＩＤ」、「住所」、「年齢」という属性、及びそれぞれの属性のタイプを示す「文字列」という情報とを受け付けたとする。また、入力受付部１０２が、ユーザからの、この新たに作成するテーブルの使用情報として、「テーブル７」について予測される時間帯ごとのアクセス数の情報を受け付けたとする。
【００４７】
図７は、入力受付部１０２が受け付けた、「テーブル７」の使用情報を示す図である。この使用情報は、「テーブル名」、「時間帯」、「予測アクセス数」という属性を有している。「テーブル名」は使用情報が対応するテーブル名であり、ここでは「テーブル７」である。また、「時間帯」は、この使用情報により予測アクセス数を設定する複数の時間帯を示している。「予測アクセス数」は、「時間帯」により設定される各時間帯においてアクセスされると予測されるアクセス数である。なお、「テーブル名」、「時間帯」、「予測アクセス数」のデータ構造は問わない。
【００４８】
入力受付部１０２がテーブルを生成するコマンドを受け付けると、使用情報取得部１０４が、図７に示すような使用情報を取得する。そして、テーブル配置決定部１１０が、使用情報取得部１０４が取得した使用情報と、アクセス情報記憶部１０９が記憶しているアクセス情報とに基づいて、図３において示した処理に従って、以下に説明するように、新たなテーブルである「テーブル７」を配置する記憶部を決定する。
【００４９】
まず、テーブル配置決定部１１０は、図７に示す使用情報から、予測アクセス数が含まれている時間帯の情報を取得する。ここでは、９：００から１０：００直前までの時間帯である第一の時間帯、１０：００から１１：００直前までの第二の時間帯、１１：００から１２：００直前までの第三の時間帯、１２：００から１３：００直前までの第四の時間
帯の情報を取得したとする。
【００５０】
次に、テーブル配置決定部１１０は、まず、記憶部１０１ａに対して、第一の時間帯において行われると考えられる全予測アクセス数を算出する。ここでは、たとえば、アクセス情報から得られる、記憶部１０１ａに記憶されているテーブル１及びテーブル２の第一の時間帯におけるアクセス数の和と、使用情報から得られる第一の時間帯における新たなテーブルである「テーブル７」の予測アクセス数の和を求める。
【００５１】
そして、テーブル配置決定部１１０は、この算出した全予測アクセス数と、予め設定されている所定のアクセス数とを比較する。この所定のアクセス数は、ここでは、各記憶部１０１ａ〜１０１ｄに１時間あたりに「５０」アクセス以上のアクセスがあると、その記憶部に対するアクセス速度が大幅に低下してしまい、データベース全体の処理速度が低下するという、設計上の値や、シミュレーション結果等に基づいた判断結果から、予め、１時間あたりに許容できるアクセス数の上限を設定する所定の値として、「５０」アクセスという値が設定されているとする。
【００５２】
ここでは、第一の時間帯においては、図５及び図７から、全予測アクセス数は「２８」であり、所定のアクセス数以下である。このため、同じ記憶部１０１ａの他の時間帯についても、同様の処理を順次行っていく。
【００５３】
ここで、第二の時間帯においては、全予測アクセス数が「５８」となるため、所定のアクセス数よりも全予測アクセス数「５８」が大きくなってしまう。このため、新たなテーブルをこの記憶部１０１ａに設定した場合、第二の時間帯において、アクセス速度の大幅な低下が発生する可能性があるため、この記憶部１０１ａについての処理を中止し、次の記憶部１０１ｂに新たなテーブルを配置するための判断を行う処理を実行する。
【００５４】
テーブル配置決定部１１０は、上記の記憶部１０１ａに対する処理と同様に、記憶部１０１ｂに対して、第一の時間帯において行われると考えられる全予測アクセス数、すなわちテーブル３のアクセス数と新たなテーブルの予測アクセス数との和、を算出し、この全予測アクセス数と所定の値とを比較する。
【００５５】
ここでは、全予測アクセス数は、図５及び図７から、「２８」であり、所定のアクセス数以下である。このため、第二の時間帯、第三の時間帯、第四の時間帯においても順次同様の処理を行っていく。
【００５６】
この記憶部１０１ｂについては、それぞれの時間帯の全予測アクセス数が「５０」以下となるため、この記憶部１０１ａに対して新たなテーブルである「テーブル７」を配置しても、アクセス速度の大幅な低下が生じないと判断される。このため、テーブル配置決定部１１０は、ディスク１０１ｂを新たなテーブルである「テーブル７」を配置する記憶部に決定する。
【００５７】
テーブル生成部１１１は、入力受付部１０２が受け付けた、「テーブル７」というテーブル名、「社員ＩＤ」、「住所」、「年齢」という属性、及びそれぞれの属性のタイプを示す「文字列」という情報等に基づいて、テーブル配置決定部１１０の決定したディスク１０１ｂに、「テーブル７」を作成する。図８は、ディスク１０１ｂに作成した「テーブル７」を模式的に示した図である。
【００５８】
以上、本実施の形態によれば、各記憶部１０１ａ〜１０１ｄに対するアクセス数に基づいて、新たなテーブルを配置する記憶部を決定するようにしたので、一つの記憶部に対してアクセスが集中することを防ぐことができる。これにより、アクセス時の性能の低下が
抑えられるように最適な記憶部を選択して、新しいテーブルを作成することが可能となり、データベースの処理が高速な情報処理装置を得ることが可能となる。
【００５９】
さらに、新たに作成するテーブルに対するアクセス数に基づいて、新たなテーブルを配置する記憶部を決定するようにしたので、新たなテーブルを作成する記憶部として、この新たに作成するテーブルに対するアクセスも考慮して、より最適な記憶部を選択することができ、一つの記憶部に対してアクセスが集中することをより確実に防ぐことができる。
【００６０】
また、時間帯ごとのアクセス数に基づいて、新たなテーブルを配置する記憶部を決定するようにしたので、時間帯別のアクセス数も考慮して、より最適な記憶部を選択することができ、一つの記憶部に対してアクセスが集中することをより確実に防ぐことができる。
【００６１】
なお、上記実施の形態の具体例においては、各記憶部１０１ａ〜１０１ｄに対するアクセス数と、新たに作成するテーブルに対するアクセス数とに基づいて、テーブルを配置する記憶部を決定するようにしたが、各記憶部１０１ａ〜１０１ｄのアクセス速度を低下させる原因となる他のアクセス情報から、テーブルを配置する記憶部を決定するようにしてもよい。例えば、各記憶部１０１ａ〜１０１ｄに対する応答速度と、新たに作成するテーブルに対する応答速度とに基づいて、応答速度が低下しないように、テーブルを配置する記憶部を決定してもよい。また、アクセス数と応答速度との両方を利用して、テーブルを配置する記憶部を決定してもよい。
【００６２】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【００６３】
なお、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、二次記憶媒体である複数の記憶部のそれぞれに対するアクセスに関する情報であるアクセス情報を蓄積するアクセス情報蓄積ステップと、テーブルを生成する指示を受け付ける入力受付ステップと、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定するテーブル配置決定ステップと、前記テーブル配置決定ステップで決定した記憶部にテーブルを生成するテーブル生成ステップとを実行させるためのプログラムである。
【００６４】
また、前記プログラムにおいて、前記入力受付ステップは、生成するテーブルについての使用状況に関する情報である使用情報を、さらに受け付け、前記テーブル配置決定ステップは、前記使用情報と、前記アクセス情報に基づいて、テーブルを配置する記憶部を決定するプログラムである。
【００６５】
また、前記プログラムにおいて、前記アクセス情報は、アクセスされた時間に関する情報を有しており、前記テーブル配置決定ステップは、時間帯ごとのアクセスの状況に基づいてテーブルを配置する記憶部を決定するプログラムである。
【００６６】
なお、上記プログラムにおいて、情報を受け付けるステップなどでは、ハードウェアによって行われる処理、例えば、入力受付ステップにおけるモデムやインターフェースカードなどで行われる処理、すなわちハードウェアでしか行われない処理、は含まれない。
【００６７】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。
【００６８】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【００６９】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００７０】
以上のように、本発明にかかる情報処理装置等は、データベース等を管理する情報処理装置等に適用可能なものであり、特に、複数の記憶部を有する、データベース等を管理する情報処理装置等として有用である。
【図面の簡単な説明】
【００７１】
【図１】実施の形態における情報処理装置のブロック図
【図２】同情報処理装置の動作について説明するフローチャート
【図３】同情報処理装置の動作について説明するフローチャート
【図４】同情報処理装置の概略を示す図
【図５】同アクセス情報管理表を示す図
【図６】同時間帯別アクセス数の表示例を示す図
【図７】同使用情報を示す図
【図８】同作成されたテーブルを模式的に示した図
【符号の説明】
【００７２】
１０１、１０１ａ〜１０１ｄ  記憶部
１０２  入力受付部
１０３  テーブル生成判定部
１０４  使用情報取得部
１０５  テーブルアクセス部
１０６  データ出力部
１０７  アクセス情報取得部
１０８  アクセス情報蓄積部
１０９  アクセス情報記憶部
１１０  テーブル配置決定部
１１１  テーブル生成部
【図１】
2006343928.tif 000003
【図２】
2006343928.tif 000004
【図３】
2006343928.tif 000005
【図４】
2006343928.tif 000006
【図５】
2006343928.tif 000007
【図６】
2006343928.tif 000008
【図７】
2006343928.tif 000009
【図８】
2006343928.tif 000010