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