(57)【要約】【課題】効率の良いテーブルパーティションをする。【解決手段】データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定装置であって、テーブルに対するアクセス要求を取得する取得部と、取得したアクセス要求から、テーブル内のアクセス範囲を特定する特定部と、各アクセス要求のアクセス範囲からテーブルのレコード範囲毎のアクセス頻度を算出する算出部と、テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの分割テーブルを配置するべきテーブル記憶領域を決定する決定部と、を備える決定装置を提供する。【選択図】図３
2009276941.tif 000002
【特許請求の範囲】
【請求項１】
データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定装置であって、
前記テーブルに対するアクセス要求を取得する取得部と、
取得したアクセス要求から、前記テーブル内のアクセス範囲を特定する特定部と、
各アクセス要求のアクセス範囲から前記テーブルのレコード範囲毎のアクセス頻度を算出する算出部と、
前記テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの前記分割テーブルを配置するべき前記テーブル記憶領域を決定する決定部と、
を備える決定装置。
【請求項２】
前記決定部は、
前記テーブルのレコード範囲毎のアクセス頻度に基づいて、前記テーブルを前記複数の分割テーブルに分割する分割部と、
前記テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの前記分割テーブルを配置するべき前記テーブル記憶領域を決定する配置決定部と、
を有する請求項１に記載の決定装置。
【請求項３】
前記取得部は、複数の前記テーブルのそれぞれに対するアクセス要求を取得し、
前記特定部は、それぞれの前記テーブルについて取得したアクセス要求から、それぞれの前記テーブル内のアクセス範囲を特定し、
前記算出部は、それぞれの前記テーブルに対する各アクセス要求のアクセス範囲から、それぞれの前記テーブルのレコード範囲毎のアクセス頻度を算出し、
前記分割部は、少なくとも１つの前記テーブルのレコード範囲毎のアクセス頻度に基づいて、当該少なくとも１つのテーブルを複数の分割テーブルに分割し、
前記配置決定部は、それぞれの前記テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの前記分割テーブル、および、分割していないそれぞれの前記テーブルを配置すべき前記テーブル記憶領域を決定する
請求項２に記載の決定装置。
【請求項４】
前記決定部は、前記複数のテーブルにおける基準アクセス頻度以上のアクセス頻度を有するレコード範囲の総データサイズが、予め指定された前記テーブル記憶領域の使用可能サイズ以内となるように前記基準アクセス頻度を調整する調整部を更に有し、
前記分割部は、前記複数のテーブルのそれぞれから、前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割して前記分割テーブルを生成し、
前記配置決定部は、前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割した前記分割テーブルを、前記予め指定されたテーブル記憶領域に配置すべきことを決定する
請求項３に記載の決定装置。
【請求項５】
前記複数のテーブル記憶領域は、それぞれの前記テーブル記憶領域が割り当てられた記憶装置のアクセス性能が高い順に優先順位付けられており、
前記決定部は、前記テーブル記憶領域を優先順位がより高い順に選択する選択部を更に有し、
前記調整部は、前記複数のテーブルにおける基準アクセス頻度以上のアクセス頻度を有する、レコード範囲の総データサイズが、選択された前記テーブル記憶領域の使用可能サイズ以内となるように前記基準アクセス頻度を調整し、
前記分割部は、前記複数のテーブルのそれぞれから、前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割して前記分割テーブルを生成し、
前記配置決定部は、前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割した前記分割テーブルを、選択された前記テーブル記憶領域に配置すべきことを決定する
請求項４に記載の決定装置。
【請求項６】
前記分割部は、それぞれの前記テーブルを、キーの値の範囲に応じて分割し、
前記調整部は、少なくとも１つの前記テーブルについて、当該テーブルの各レコードをキーの値順に配列した場合に前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲が基準数以上に分断されないことを条件として、当該テーブルの分割に用いるキーを選択する
請求項５に記載の決定装置。
【請求項７】
前記分割部は、それぞれの前記テーブルを、キーの値の範囲に応じて分割し、
前記調整部は、調整した前記基準アクセス頻度がより低くなるように前記複数のテーブルのそれぞれの分割に用いるキーの組合せを選択する請求項５に記載の決定装置。
【請求項８】
前記調整部は、予め指定された優先順位の前記テーブル記憶領域に対して調整した前記基準アクセス頻度がより低くなるように前記複数のテーブルのそれぞれの分割に用いるキーの組合せを選択する請求項７に記載の決定装置。
【請求項９】
前記特定部は、取得したアクセス要求の対象となる前記テーブル中の当該アクセス要求により指定された検索条件を満たす少なくとも１つのレコードの中からキーの値の最大値および最小値を求める範囲特定用アクセス要求をデータベースサーバに対して発行することにより、当該テーブル内のアクセス範囲を特定する請求項１に記載の決定装置。
【請求項１０】
データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定装置であって、
複数の前記テーブルのそれぞれに対するアクセス要求を取得する取得部と、
それぞれの前記テーブルについて取得したアクセス要求から、それぞれの前記テーブル内のアクセス範囲を特定する特定部と、
それぞれの前記テーブルに対する各アクセス要求のアクセス範囲から、それぞれの前記テーブルのレコード範囲毎のアクセス頻度を算出する算出部と、
前記テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの前記分割テーブルを配置するべき前記テーブル記憶領域を決定する決定部と、
を備え、
前記複数のテーブル記憶領域は、それぞれの前記テーブル記憶領域が割り当てられた記憶装置のアクセス性能が高い順に優先順位付けられており、
前記決定部は、
前記テーブル記憶領域を優先順位がより高い順に選択する選択部と、
前記複数のテーブルにおける基準アクセス頻度以上のアクセス頻度を有するレコード範囲の総データサイズが、選択された前記テーブル記憶領域の使用可能サイズ以内となるように前記基準アクセス頻度を調整する調整部と、
前記複数のテーブルのそれぞれから、前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割して前記分割テーブルを生成する分割部と、
前記基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割した前記分割テーブルを、選択された前記テーブル記憶領域に配置すべきことを決定する配置決定部と、
を有する決定装置。
【請求項１１】
データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テーブルに対するアクセス要求を取得する取得部と、
取得したアクセス要求から、前記テーブル内のアクセス範囲を特定する特定部と、
各アクセス要求のアクセス範囲から前記テーブルのレコード範囲毎のアクセス頻度を算出する算出部と、
前記テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの前記分割テーブルを配置するべき前記テーブル記憶領域を決定する決定部と
して機能させるプログラム。
【請求項１２】
データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定方法であって、
前記テーブルに対するアクセス要求を取得し、
取得したアクセス要求から、前記テーブル内のアクセス範囲を特定し、
各アクセス要求のアクセス範囲から前記テーブルのレコード範囲毎のアクセス頻度を算出し、
前記テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの前記分割テーブルを配置するべき前記テーブル記憶領域を決定する
決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、決定装置、プログラムおよび決定方法に関する。特に本発明は、データベースのテーブルを分割した分割テーブルの配置を決定する決定装置、プログラムおよび決定方法に関する。
【背景技術】
【０００２】
ＳＯＸ（サーベインス・オクスレー）法等の制定により、業務上保存しておかなければならないデータが増加し、これによりＳＡＮ（ストレージ  エリア  ネットワーク）等の非常に大きな記憶容量を有する記憶システムが用いられるようになってきた。しかしながら、保持すべきデータの増加に伴い、データ保持のための維持コストも増加してしまっていた。そこで、アクセス頻度の高いデータを維持コストは高いがアクセス性能は良い記憶装置に記憶させ、アクセス頻度の低いデータをアクセス性能は悪いが維持コストは低い記憶装置に記憶させるといった、効率の良いデータ管理が必要となってきた。なお、以下、このようなデータ管理のことをインフォメーションライフサイクルマネージメントと呼ぶ。
【０００３】
また、データベースの容量の増大に伴い、データベース内の１個のテーブルを複数の分割テーブルに分割し、これらを物理的に異なる記憶領域に記憶させる、テーブルパーティションと呼ばれる技術が知られている（例えば、特許文献１、２参照）。このようなテーブルパーティション技術によれば、例えば、テーブルに新たなレコードを大量にロードしたり、テーブルから保存期間が過ぎたレコードを削除したりすることが容易となる。
【０００４】
【特許文献１】特開２００１−１４２７５２号公報
【特許文献２】特開２００２−４１３３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、テーブルパーティションにより分割された各分割テーブルも、インフォメーションライフサイクルマネージメントを考慮して、記憶装置に格納させることが好ましい。しかしながら、テーブルパーティションにおいて、テーブルの分割範囲の指定はユーザによって行われていたので、分割対象となるテーブルに膨大な量のレコードが含まれる場合、最適な分割を行うことは困難であった。
【０００６】
そこで本発明は、上記の課題を解決することのできる決定装置、プログラムおよび決定方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００７】
本発明の第１の形態においては、データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定装置であって、テーブルに対するアクセス要求を取得する取得部と、取得したアクセス要求から、テーブル内のアクセス範囲を特定する特定部と、各アクセス要求のアクセス範囲からテーブルのレコード範囲毎のアクセス頻度を算出する算出部と、テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの分割テーブルを配置するべきテーブル記憶領域を決定する決定部と、を備える決定装置を提供する。また、当該決定装置としてコンピュータを機能させる方法およびプログラムを提供する。
【０００８】
本発明の第２の形態においては、データベース内のテーブルを分割した複数の分割テーブルのそれぞれを、複数のテーブル記憶領域のいずれに配置するかを決定する決定装置であって、複数のテーブルのそれぞれに対するアクセス要求を取得する取得部と、それぞれのテーブルについて取得したアクセス要求から、それぞれのテーブル内のアクセス範囲を特定する特定部と、それぞれのテーブルに対する各アクセス要求のアクセス範囲から、それぞれのテーブルのレコード範囲毎のアクセス頻度を算出する算出部と、テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの分割テーブルを配置するべきテーブル記憶領域を決定する決定部と、を備え、複数のテーブル記憶領域は、それぞれのテーブル記憶領域が割り当てられた記憶装置のアクセス性能が高い順に優先順位付けられており、決定部は、テーブル記憶領域を優先順位がより高い順に選択する選択部と、複数のテーブルにおける基準アクセス頻度以上のアクセス頻度を有するレコード範囲の総データサイズが、選択されたテーブル記憶領域の使用可能サイズ以内となるように基準アクセス頻度を調整する調整部と、複数のテーブルのそれぞれから、基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割して分割テーブルを生成する分割部と、基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割した分割テーブルを、選択されたテーブル記憶領域に配置すべきことを決定する配置決定部と、を有する決定装置を提供する。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、本実施形態に係るデータベース装置１０の構成を示す。データベース装置１０は、データベースサーバ１２と、複数の記憶装置１４と、決定装置２０とを備える。データベースサーバ１２は、他の装置からデータベースリクエストを受け取り、受け取ったデーベースリクエストに応じたデータベース処理を実行する。
【００１２】
複数の記憶装置１４のそれぞれは、データベースサーバ１２により管理されるデータベース内のテーブルを格納する。複数の記憶装置１４のそれぞれは、当該記憶装置１４に割り当てられたテーブルを格納するテーブル記憶領域３０を有する。テーブル記憶領域３０は、例えば、テーブルスペースと呼ばれる。さらに、複数の記憶装置１４のそれぞれは、ネットワーク１６を介してデータベースサーバ１２と接続された構成であってよい。
【００１３】
決定装置２０は、複数のテーブル記憶領域３０に格納させるテーブルの配置を決定する。なお、決定装置２０の詳細な構成については、図３以降において説明する。
【００１４】
図２は、複数のテーブル記憶領域３０および複数のテーブル記憶領域３０に格納される複数の分割テーブル４０の一例を示す。データベース装置１０は、データベース内のテーブルを分割した複数の分割テーブル４０を、複数のテーブル記憶領域３０に分散して配置する。すなわち、データベース装置１０は、テーブルパーティションを実行して生成した複数の分割テーブル４０を、複数のテーブル記憶領域３０に格納させる。さらに、データベース装置１０は、データベース内の複数のテーブルについて、テーブルパーティションを実行する。また、データベース装置１０は、一例として、複数のテーブルのそれぞれについて、テーブルの列（例えば、テーブルの主キーまたは日付型列）をキーとし、それぞれのテーブル毎に指定されたキーの値の範囲毎に分割した複数の分割テーブル４０を、複数のテーブル記憶領域３０に分散して配置してよい。
【００１５】
また、複数のテーブル記憶領域３０は、それぞれのテーブル記憶領域３０が割り当てられた記憶装置１４のアクセス性能が高い順に優先順位付けられている。記憶装置１４のアクセス性能が高いとは、一例として、記憶装置１４のスループットが高いことであってよい。また、記憶装置１４のアクセス性能が高いとは、一例として、アクセス速度が速いことであってもよい。
【００１６】
図３は、本実施形態に係る決定装置２０の機能構成を、複数のテーブル記憶領域３０とともに示す。決定装置２０は、データベース内のテーブルを分割した複数の分割テーブル４０のそれぞれを、複数のテーブル記憶領域３０のいずれに配置するかを決定する。そして、テーブル記憶領域３０は、決定した配置に応じて、複数の分割テーブル４０のそれぞれの格納位置を変更する。
【００１７】
決定装置２０は、取得部５２と、特定部５４と、算出部５６と、決定部５８とを有する。取得部５２は、複数のテーブルのそれぞれに対するアクセス要求を取得する。
【００１８】
特定部５４は、それぞれのテーブルについて取得したアクセス要求から、それぞれのテーブル内のアクセス範囲を特定する。算出部５６は、それぞれのテーブルに対する各アクセス要求のアクセス範囲から、それぞれのテーブルのレコード範囲毎のアクセス頻度を算出する。
【００１９】
決定部５８は、テーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの分割テーブル４０を配置するべきテーブル記憶領域３０を決定する。決定部５８は、一例として、選択部６２と、調整部６４と、分割部６６と、配置決定部６８とを含んでよい。
【００２０】
選択部６２は、テーブル記憶領域３０を優先順位がより高い順に選択する。調整部６４は、複数のテーブルにおける基準アクセス頻度以上のアクセス頻度を有する、レコード範囲の総データサイズが、予め指定された又は選択部６２により選択されたテーブル記憶領域３０の使用可能サイズ以内となるように基準アクセス頻度を調整する。
【００２１】
分割部６６は、少なくとも１つのテーブルのレコード範囲毎のアクセス頻度に基づいて、当該少なくとも１つのテーブルを複数の分割テーブル４０に分割する。分割部６６は、一例として、複数のテーブルのそれぞれから、基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割して分割テーブル４０を生成してよい。
【００２２】
配置決定部６８は、それぞれのテーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの分割テーブル４０、および、分割していないそれぞれのテーブルを配置すべきテーブル記憶領域３０を決定する。配置決定部６８は、一例として、基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割した分割テーブル４０を、予め指定された又は選択部６２により選択されたテーブル記憶領域３０に配置すべきことを決定する。
【００２３】
図４は、本実施形態に係る決定装置２０の処理フローを示す。決定装置２０は、データベース内のテーブルを分割した複数の分割テーブル４０を、複数のテーブル記憶領域３０に分散して配置する場合、以下のステップＳ１１〜Ｓ１６の処理を実行する。
【００２４】
まず、ステップＳ１１において、算出部５６は、データベース内の複数のテーブルのそれぞれに対して、テーブルを分割する値の範囲を指定するための１個又は複数個のキー（例えば、列）の候補を設定する。算出部５６は、使用者から入力された情報に応じて候補となるキーを設定してよい。
【００２５】
続いて、ステップＳ１２において、取得部５２は、データベース内の複数のテーブルに対するアクセスを監視して、一定期間中に与えられた複数のテーブルに対するアクセス要求を取得する。取得部５２は、一例として、外部の装置からデータベースサーバ１２に与えられたクエリのログを取得することにより、複数のテーブルに対するアクセス要求を取得してよい。取得部５２は、一例として、複数のテーブルのそれぞれを、例えば数時間、１日または１ヶ月等の間監視して得られた、それぞれのテーブルに対するアクセス要求を取得してよい。
【００２６】
続いて、ステップＳ１３において、特定部５４は、それぞれのテーブルについて取得した一定期間中に与えられた各アクセス要求から、それぞれのテーブル内のアクセス範囲を特定する。特定部５４は、一例として、各アクセス要求により読み出しまたは書き込みがされたレコードの範囲を、テーブル内のアクセス範囲として特定してよい。
【００２７】
特定部５４は、一例として、それぞれのテーブルについて取得した各アクセス要求から、当該アクセス要求によりアクセスがされた１以上のレコードにおける、ステップＳ１１で設定された１個又は複数個の候補となるキー毎の値の範囲を特定してよい。特定部５４は、一例として、あるテーブルについて日付を表わす値を格納するキーが候補として選択された場合、各アクセス要求により読み出しまたは書き込みがされた１以上のレコードにおける当該キーの日付の範囲（例えば、Ｘ年Ｘ月Ｘ年からＹ年Ｙ月Ｙ日までといった範囲）を特定してよい。
【００２８】
また、特定部５４は、一例として、外部の装置からデータベースサーバ１２に与えられたクエリの検索条件に基づき、当該クエリにより読み出しまたは書き込みがされたレコードにおける、１個又は複数個の候補となるキー毎の値の範囲を特定してよい。なお、クエリの検索条件に基づく特定方法の一例については、図１２において詳細に説明する。
【００２９】
続いて、ステップＳ１４において、算出部５６は、それぞれのテーブルに対する各アクセス要求のアクセス範囲から、それぞれのテーブルのレコード範囲毎のアクセス頻度を算出する。算出部５６は、一例として、それぞれのテーブルに対する各アクセス要求のアクセス範囲から、それぞれのテーブルのそれぞれのレコードに対してされたアクセスを一定期間累積して、それぞれのテーブルのレコード範囲毎のアクセス頻度を算出してよい。
【００３０】
算出部５６は、一例として、それぞれのテーブルに対する各アクセス要求によりアクセスがされたレコードにおけるステップＳ１１で設定された候補となるキー毎の値の範囲から、それぞれのテーブルのそれぞれのレコードに対してのアクセスを当該キーのそれぞれの値の範囲毎に一定期間累積してよい。そして、算出部５６は、累積結果に基づき、複数のテーブルのそれぞれについて、１個又は複数個の候補となるキー毎における値の範囲毎のアクセス頻度を算出してよい。
【００３１】
続いて、ステップＳ１５において、決定部５８は、それぞれのテーブルのレコード範囲毎のアクセス頻度に基づいて、それぞれの分割テーブル４０、および、分割していないそれぞれのテーブルを配置すべきテーブル記憶領域３０を決定する。決定部５８は、一例として、複数のテーブルのそれぞれについて、１個又は複数個の候補となるキー毎における値の範囲毎のアクセス頻度に基づいて、それぞれの分割テーブル４０、および、分割していないそれぞれのテーブルを配置すべきテーブル記憶領域３０を決定してよい。なお、ステップＳ１５における処理については、詳細を図６において説明する。
【００３２】
そして、ステップＳ１６において、決定部５８は、ステップＳ１５で決定された配置に従って分割テーブル４０の配置を変更する。決定装置２０は、ステップＳ１６の処理を終えると、当該フローを終了する。
【００３３】
図５は、複数のテーブルのそれぞれについての、候補となるキーの値の範囲毎のアクセス頻度の一例を示す。本実施形態において、算出部５６は、データベース内のデータパーティションの対象となる複数のテーブルのそれぞれについて、１個又は複数個の候補となるキー毎に、当該キーの値の範囲毎のアクセス頻度を算出する。
【００３４】
例えばデータベース内のテーブルＴ１のキーＫ１１が候補として選択された場合、算出部５６は、図５の（Ａ）に示されるような、テーブルＴ１についてキーＫ１１の値の範囲毎のアクセス頻度を算出する。また、例えばデータベース内のテーブルＴ２のキーＫ２１が候補として選択された場合、算出部５６は、図５の（Ｂ）に示されるような、テーブルＴ２についてキーＫ２１の値の範囲毎のアクセス頻度を算出する。また、例えばデータベース内のテーブルＴ２のキーＫ２２が候補として選択された場合、算出部５６は、図５の（Ｃ）に示されるような、テーブルＴ２についてキーＫ２２の値の範囲毎のアクセス頻度を算出する。また、例えばデータベース内のテーブルＴ３のキーＫ３１が候補として選択された場合、算出部５６は、図５の（Ｄ）に示されるような、テーブルＴ３についてキーＫ３１の値の範囲毎のアクセス頻度を算出する。また、例えばデータベース内のテーブルＴ３のキーＫ３２が候補として選択された場合、算出部５６は、図５の（Ｅ）に示されるような、テーブルＴ３についてキーＫ３２の値の範囲毎のアクセス頻度を算出する。
【００３５】
また、算出部５６は、一例として、図５の（Ａ）〜（Ｅ）に表わされるような、候補として選択されたキーの値順に配列した場合の値の範囲毎のアクセス頻度を表すヒストグラムを算出してもよい。また、算出部５６は、一例として、図５の（Ａ）〜（Ｅ）に表わされるようなヒストグラムを最小二乗法等により近似することにより、キーの値に対するアクセス頻度を表わす関数を生成してもよい。
【００３６】
図６は、図４に示したステップＳ１５の処理フローを示す。図７は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３１の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。図８は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３１の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。図９は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３２の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。図１０は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３２の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。
【００３７】
決定部５８は、図４に示されたステップＳ１５において、以下のステップＳ２０〜ステップＳ２８の処理を実行する。まず、ステップＳ２０において、選択部６２は、複数のテーブル記憶領域３０のうちのいずれかのテーブル記憶領域３０を選択する。この場合において、選択部６２は、テーブル記憶領域３０を優先順位がより高い順に選択する。そして、選択部６２は、選択したテーブル記憶領域３０毎に、調整部６４、分割部６６および配置決定部６８に対して以下のステップＳ２１からステップＳ２７の処理を実行させる（Ｓ２０、Ｓ２８）。
【００３８】
テーブル記憶領域３０が選択されると、続いて、ステップＳ２１において、調整部６４は、選択されたテーブル記憶領域３０に格納させることができる分割テーブル４０の容量を表わす使用可能サイズを算出する。調整部６４は、一例として、選択されたテーブル記憶領域３０の全容量に対する予め定められた割合（例えば、８０％）を、使用可能サイズとして算出してよい。これにより、調整部６４は、選択されたテーブル記憶領域３０に格納された分割テーブル４０の容量が変動した場合であっても、当該テーブル記憶領域３０の総容量を超えないようにできる。
【００３９】
続いて、調整部６４は、複数のテーブルのそれぞれ毎に、ステップＳ１１で候補として選択された１個または複数個のキーのうちいずれか１個のキーを指定する。そして、調整部６４は、複数のテーブルに対して指定されるキーの組合せ毎に、ステップＳ２３の処理を実行する（Ｓ２２、Ｓ２４）。
【００４０】
例えば、図５に示されたようなキーが候補として選択された場合においては、調整部６４は、以下の４つの組合せのそれぞれについて、ステップＳ２３の処理を実行してよい。
第１の組合せ：テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３１
第２の組合せ：テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３１
第３の組合せ：テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３２
第４の組合せ：テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３２
【００４１】
そして、ステップＳ２３において、調整部６４は、複数のテーブルにおける基準アクセス頻度以上のアクセス頻度を有する、レコード範囲の総データサイズが、選択されたテーブル記憶領域３０の使用可能サイズ以内となるように基準アクセス頻度を調整する。本実施形態においては、調整部６４は、複数のテーブルにおける、基準アクセス頻度以上のアクセス頻度となる指定されたキーの値を有するレコードのうち、レコードの総データサイズが、使用可能サイズ以内となるように基準アクセス頻度を調整する。より具体的には、調整部６４は、次のように基準アクセス頻度を調整してよい。
【００４２】
まず、調整部６４は、基準アクセス頻度として、任意の初期値を設定する。続いて、調整部６４は、複数のテーブルのそれぞれについて、指定されたキーの値順に配列した場合の値の範囲毎のアクセス頻度を表わすヒストグラム、または、当該ヒストグラムを表わす関数を呼び出す。続いて、調整部６４は、複数のテーブルのそれぞれについて、指定されたキーの値の範囲毎のアクセス頻度と基準アクセス頻度とを比較して、基準アクセス頻度以上となるアクセス頻度を有する、指定されたキーの値の範囲を抽出する。
【００４３】
続いて、調整部６４は、複数のテーブルにおける指定されたキーの値が抽出した値の範囲に一致するレコードの総データサイズを算出する。調整部６４は、一例として、複数のテーブルのそれぞれ毎に、指定されたキーの値が抽出した値の範囲に一致するレコードの個数を算出し、予め設定された１レコード当たりの容量と算出したレコードの個数とを乗じて、テーブル毎の個別データサイズを算出してよい。そして、調整部６４は、一例として、複数のテーブルのそれぞれの個別データサイズを総計して、総データサイズを算出してよい。
【００４４】
続いて、調整部６４は、総データサイズと、使用可能サイズとを比較する。続いて、調整部６４は、総データサイズが使用可能サイズより大きければ基準アクセス頻度を高くし、総データサイズが使用可能サイズより小さければ基準アクセス頻度を低く設定する。調整部６４は、以上の処理を繰り返して、総データサイズが使用可能サイズを超えない最も低い値となるように、基準アクセス頻度を調整する。このようにして、調整部６４は、複数のテーブルにおける、基準アクセス頻度以上のアクセス頻度となる指定されたキーの値を有するレコードのうち、レコードの総データサイズが、使用可能サイズ以内となるように基準アクセス頻度を調整することができる。
【００４５】
調整部６４は、候補となるキーの全ての組合せについてステップＳ２３の処理を実行して、候補となるキーの全ての組合せのそれぞれについて基準アクセス頻度を調整する。図５に示されたようなキーが候補として選択された場合には、例えば、図７〜図１０に示されるような基準アクセス頻度に調整してよい。
【００４６】
すなわち、調整部６４は、第１の組合せ（即ち、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３１の組合せ）については、図７に示されるような基準アクセス頻度に調整する。調整部６４は、第２の組合せ（即ち、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３１の組合せ）については、図８に示されるような基準アクセス頻度に調整する。調整部６４は、第３の組合せ（即ち、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３２）については、図９に示されるような基準アクセス頻度に調整する。調整部６４は、第４の組合せ（即ち、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３２の組合せ）については、図１０に示されるような基準アクセス頻度に調整する。
【００４７】
調整部６４は、候補となるキーの全ての組合せについて基準アクセス頻度の調整が完了すると（Ｓ２４）、処理をステップＳ２５に進める。続くステップＳ２５において、調整部６４は、調整した基準アクセス頻度がより低くなるように複数のテーブルのそれぞれの分割に用いるキーの組合せを選択する。調整部６４は、一例として、候補となるキーの全ての組合せのうち、調整した基準アクセス頻度が最も低くなるキーの組合せを選択してよい。
【００４８】
また、この場合において、調整部６４は、一例として、少なくとも１つのテーブルについて、当該テーブルの各レコードをキーの値順に配列した場合に基準アクセス頻度以上のアクセス頻度を有するレコード範囲が基準数以上に分断されないことを条件として、当該テーブルの分割に用いるキーを選択してよい。例えば、図９に示されるテーブルＴ３の場合、キーの値順に配列した場合に基準アクセス頻度以上のアクセス頻度を有するレコード範囲が、７個に分断される。このような場合、調整部６４は、例えば基準数が６個以下に設定されていれば、図９に示されるキーの組合せの基準アクセス頻度が最も低くても、他のキーの組合せを選択する。これにより、調整部６４は、分割テーブル４０の数が多くなりすぎることを防止することができる。
【００４９】
続いて、ステップＳ２６において、分割部６６は、少なくとも１つのテーブルのレコード範囲毎のアクセス頻度に基づいて、当該少なくとも１つのテーブルを複数の分割テーブル４０に分割する。分割部６６は、一例として、複数のテーブルのそれぞれから、基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割する。この場合において、分割部６６は、一例として、複数のテーブルのそれぞれのレコードをステップＳ２５で選択された組合せのキーの値順に配列し、このように配列された状態でそれぞれのテーブルを基準アクセス頻度以上となるキーの値の範囲に応じて分割してよい。
【００５０】
続いて、ステップＳ２７において、配置決定部６８は、基準アクセス頻度以上のアクセス頻度を有するレコード範囲を分割した分割テーブル４０を、選択されたテーブル記憶領域３０に配置すべきことを決定する。選択部６２は、ステップＳ２７の処理を終えると、ステップＳ２０に戻って、優先順位が次に高いテーブル記憶領域３０を選択して、ステップＳ２１からステップＳ２７の処理を実行する。そして、選択部６２は、全てのテーブルの全てのレコード範囲を分割して、テーブル記憶領域３０に配置すべきことを決定した場合には、当該フローを終了する。
【００５１】
以上のような決定装置２０は、基準アクセス頻度がより低くなるように、複数のテーブルのそれぞれの分割に用いるキーの組合せを選択する。これにより、決定装置２０は、アクセス頻度のより高いレコードから順番に予め定められたテーブル記憶領域３０に配置する場合において、当該テーブル記憶領域３０にアクセス頻度のより低いレコードまでを格納することができる。すなわち、決定装置２０は、アクセス頻度のより高いレコードから順番に予め定められたテーブル記憶領域３０に配置する場合において、予め定められたテーブル記憶領域３０により多くのレコードを格納することができる。これにより、決定装置２０によれば、効率の良いテーブルパーティションをすることができる。
【００５２】
なお、決定部５８は、優先順位が最も高いテーブル記憶領域３０に配置するべき分割テーブル４０の分割に用いたキーの組合せを、優先順位が２番目以降のテーブル記憶領域３０に配置するべき分割テーブル４０の分割に用いるキーの組合せとして用いてもよい。この場合において、調整部６４は、優先順位が２番目以降のテーブル記憶領域３０については、ステップＳ２２〜Ｓ２４において、候補となるキーの組合せ毎に基準アクセス頻度の調整を行うことに代えて、優先順位が最も高いテーブル記憶領域３０に配置するべき分割テーブル４０の分割に用いたキーの組合せについてのみ基準アクセス頻度の調整を行う。そして、この場合において、調整部６４は、優先順位が２番目以降のテーブル記憶領域３０については、ステップＳ２５における処理も行わなくてよい。
【００５３】
図１１は、本実施形態の変形例に係る決定装置２０の処理例を説明するための図を示す。より詳しくは、図１１の（Ａ）は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３１の組合せの場合の、各キーの値毎のアクセス頻度、第１基準アクセス頻度および第２の基準アクセス頻度の一例を示す。図１１の（Ｂ）は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３１の組合せの場合の、各キーの値毎のアクセス頻度、第１基準アクセス頻度および第２の基準アクセス頻度の一例を示す。なお、本変形例に係る決定装置２０は、図１〜図１０において説明した本実施形態に係る決定装置２０と略同一の機能および構成を取るので、図１〜図１０において説明した部材と略同一の構成および機能を有する部材については図中に同一の符号を付けて、以下相違点を除き説明を省略する。
【００５４】
アクセス性能の異なる複数のテーブル記憶領域３０のそれぞれに、アクセス性能の順位を付けたとき、アクセス性能の差が大きい部分と、アクセス性能の差が小さい部分とが存在する場合がある。このような場合、アクセス頻度のより高いレコードから順番に分割テーブル４０を配置していったときに、アクセス性能の差が大きい部分よりも上位側のテーブル記憶領域３０に、より多くのレコードを格納することが好ましい。
【００５５】
例えば、図１１の（Ａ）および（Ｂ）に示された第１の基準アクセス頻度は、優先順位が１番目のテーブル記憶領域３０に配置すべき分割テーブル４０を算出する場合に用いられた基準アクセス頻度の一例を示す。また、図１１の（Ａ）および（Ｂ）に示された第２の基準アクセス頻度は、優先順位が１番目のテーブル記憶領域３０および２番目のテーブル記憶領域３０の両者を合成した領域に配置すべき分割テーブル４０を算出する場合に用いた基準アクセス頻度の一例を示す。
【００５６】
１番目のテーブル記憶領域３０と２番目のテーブル記憶領域３０との間の性能差が、２番目のテーブル記憶領域３０と３番目のテーブル記憶領域３０との間の性能差より大きい場合、調整部６４は、第１の基準アクセス頻度がより低くなるような複数のテーブルのそれぞれの分割に用いるキーの組合せを選択することが好ましい。例えば、図１１の例においては、調整部６４は、（Ａ）の組合せを選択することが好ましい。
【００５７】
これに対して、２番目のテーブル記憶領域３０と３番目のテーブル記憶領域３０との間の性能差が、１番目のテーブル記憶領域３０と２番目のテーブル記憶領域３０との間の性能差より大きい場合、調整部６４は、第１の基準アクセス頻度の高低に関わらず、第２の基準アクセス頻度がより低くなるような複数のテーブルのそれぞれの分割に用いるキーの組合せを選択することが好ましい。例えば、図１１の例においては、調整部６４は、（Ｂ）の組合せを選択することが好ましい。
【００５８】
そこで、調整部６４は、性能差が大きい優先順位のテーブル記憶領域３０の指定を予め受けて、予め指定された優先順位のテーブル記憶領域３０に対して調整した基準アクセス頻度がより低くなるように複数のテーブルのそれぞれの分割に用いるキーの組み合わせを選択してよい。これにより、本変形例に係る決定装置２０によれば、より効率の良くテーブルパーティションをすることができる。
【００５９】
図１２の（Ａ）は、外部の装置からデータベースサーバ１２に対して発行されたＳＱＬ文の一例を示す。図１２の（Ｂ）は、図１２の（Ａ）のＳＱＬ文が発行された場合におけるテーブルのアクセス範囲を取得するための範囲特定用のＳＱＬ文の一例を示す。
【００６０】
特定部５４は、一例として、取得したアクセス要求の対象となるテーブル中の当該アクセス要求により指定された検索条件を満たす少なくとも１つのレコードの中からキーの値の最大値および最小値を求める範囲特定用アクセス要求をデータベースサーバ１２に対して発行することにより、当該テーブル内のアクセス範囲を特定してよい。特定部５４は、一例として、外部の装置からデータベースサーバ１２に与えられたセレクトステートメントにより指定された検索条件を満たす少なくとも１つのレコードの中から、分割に用いられる候補となるキーの値の最大値および最小値を求める範囲特定用セレクトステートメントをデータベースサーバ１２に対して発行してよい。
【００６１】
例えば、図１２の（Ａ）に示されるようなセレクトステートメントが、外部の装置からデータベースサーバ１２に与えられたとする。この場合、特定部５４は、図１２の（Ｂ）に示されるような、範囲確定用セレクトステートメントを発行する。
【００６２】
すなわち、特定部５４は、検索条件を表わす句（図１２の（Ａ）の"ｗｈｅｒｅ"以降の句）を複製し、当該検索条件により取得されるレコードの中における候補となる１個または複数個のキーのそれぞれの値の最大値および最小値を取得する範囲特定用セレクトステートメントを生成する。そして、特定部５４は、生成した範囲特定用セレクトステートメントをデータベースサーバ１２に対して発行して、応答結果を取得する。このようにして、特定部５４は、それぞれのテーブルについてのアクセス要求によりアクセスがされた１以上のレコードにおける、１個又は複数個の候補となるキー毎の値の範囲を特定することができる。
【００６３】
図１３は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６４】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６５】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６６】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６７】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６８】
コンピュータ１９００にインストールされ、コンピュータ１９００を決定装置２０として機能させるプログラムは、取得モジュールと、特定モジュールと、算出モジュールと、決定モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取得部５２、特定部５４、算出部５６および決定部５８としてそれぞれ機能させる。
【００６９】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部５２、特定部５４、算出部５６および決定部５８として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の決定装置２０が構築される。
【００７０】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７１】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００７２】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７３】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７４】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００７６】
【図１】図１は、本実施形態に係るデータベース装置１０の構成を示す。
【図２】図２は、複数のテーブル記憶領域３０および複数のテーブル記憶領域３０に格納される複数の分割テーブル４０の一例を示す。
【図３】図３は、本実施形態に係る決定装置２０の機能構成を、複数のテーブル記憶領域３０とともに示す。
【図４】図４は、本実施形態に係る決定装置２０の処理フローを示す。
【図５】図５は、複数のテーブルのそれぞれについての、候補となるキーの値の範囲毎のアクセス頻度の一例を示す。
【図６】図６は、図４に示したステップＳ１５の処理フローを示す。
【図７】図７は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３１の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。
【図８】図８は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３１の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。
【図９】図９は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２１、テーブルＴ３のキーＫ３２の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。
【図１０】図１０は、テーブルＴ１のキーＫ１１、テーブルＴ２のキーＫ２２、テーブルＴ３のキーＫ３２の組合せの場合の、各キーの値の範囲毎のアクセス頻度および基準アクセス頻度の一例を示す。
【図１１】図１１は、本実施形態の変形例に係る決定装置２０の処理例を説明するための図を示す。
【図１２】図１２の（Ａ）は、データベースリクエストの一つとして外部の装置から発行されたＳＱＬ文の一例を示す。図１２の（Ｂ）は、図１２の（Ａ）のＳＱＬ文が発行された場合におけるテーブルのアクセス範囲を取得するための範囲特定用のＳＱＬ文の一例を示す。
【図１３】図１３は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【符号の説明】
【００７７】
１０  データベース装置
１２  データベースサーバ
１４  記憶装置
１６  ネットワーク
２０  決定装置
３０  テーブル記憶領域
４０  分割テーブル
５２  取得部
５４  特定部
５６  算出部
５８  決定部
６２  選択部
６４  調整部
６６  分割部
６８  配置決定部
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2009276941.tif 000003
【図２】
2009276941.tif 000004
【図３】
2009276941.tif 000005
【図４】
2009276941.tif 000006
【図５】
2009276941.tif 000007
【図６】
2009276941.tif 000008
【図７】
2009276941.tif 000009
【図８】
2009276941.tif 000010
【図９】
2009276941.tif 000011
【図１０】
2009276941.tif 000012
【図１１】
2009276941.tif 000013
【図１２】
2009276941.tif 000014
【図１３】
2009276941.tif 000015