"データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出装置であって、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する計測手段と、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する算出手段と、を有することを特徴とする有効期限算出装置。データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出方法であって、計測手段による、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測するステップと、算出手段による、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出するステップと、を有することを特徴とする有効期限算出方法。データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出プログラムであって、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する処理と、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する処理と、をコンピュータに実行させることを特徴とする有効期限算出プログラム。Web3層構成をとるコンテンツの検索システムにおいて、RDBMSに与える負荷の観点から見ると、アクセス頻度が高いデータ、RDBMSからの応答時間が長いデータほど該当データをキャッシュとしてメモリ上に保持しておく有効性が高いと考えられる。通常では、キャッシュに利用できるメモリの残容量が無くなった時点で新たなキャッシュデータを格納する場合、メモリ上の有効期限が切れたキャッシュデータを削除して新たなキャッシュデータを格納する。有効期限が切れたキャッシュデータが無い場合には、LeastRecentlyUsedLRUに従って、最後に使われてから最も時間が経過したキャッシュデータを削除して新たなキャッシュデータを格納する。しかしながら、上記の方式の場合、アクセス頻度が高いキャッシュデータはLRUで保護されるが、アクセス頻度があまり高くないがRDBMSへの負荷が高いキャッシュデータは、一定の時間を加えることで設定した有効期限が切れた段階で削除されてしまう可能性がある。本発明は、上記に鑑みてなされたものであり、有効性の高いキャッシュデータの管理方法を提供することを目的とする。第1の本発明に係る有効期限算出装置は、データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出装置であって、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する計測手段と、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する算出手段と、を有することを特徴とする。第2の本発明に係る有効期限算出方法は、データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出方法であって、計測手段による、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測するステップと、算出手段による、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出するステップと、を有することを特徴とする。第3の本発明に係る有効期限算出プログラムは、データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出プログラムであって、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する処理と、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する処理と、をコンピュータに実行させることを特徴とする。本発明によれば、有効性の高いキャッシュデータの管理方法を提供することができる。以下、本発明の実施の形態について図面を用いて説明する。図1は、本実施の形態における有効期限算出装置を含むコンテンツ検索システムの構成を示す機能ブロック図である。同図に示すコンテンツ検索システム1は、コンテンツの番組メタデータを格納したRDBMS2に接続され、端末4からネットワーク3を介して検索クエリを受信して検索結果を返却するものである。検索結果がキャッシュに存在する場合はその検索結果をキャッシュから読み出して返却し、検索結果がキャッシュに存在しない場合はRDBMS2から検索して検索結果を返却するとともに、その検索結果をキャッシュに保存する。検索結果をキャッシュに保存する際には、有効期限算出装置により、RDBMS2からの検索応答時間に応じて有効期限を設定する。以下、コンテンツ検索システム1について説明する。図1に示すコンテンツ検索システム1は、クエリ受信部101、キャッシュ取得部102、構文解析部103、SQL生成部104、DB検索実行部105、検索結果取得部106、検索時間計測部107、有効期限算出部108、平均値記憶部109、応答キャッシュ記憶部110、応答データ生成部111、応答キャッシュ保存部112、および応答データ返却部113を備える。検索時間計測部107、有効期限算出部108、および平均値記憶部109が本実施の形態における有効期限算出装置に相当する。コンテンツ検索システム1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはコンテンツ検索システム1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。クエリ受信部101は、端末4からネットワーク3を介して検索クエリを受信する。検索クエリとは、コンテンツ検索システム1が受信する処理要求の命令を文字列化したものであり、例えば、コンテンツのタイトルやジャンル等の検索条件を論理演算子や修飾子で結合したものである。キャッシュ取得部102は、検索クエリからハッシュ値を生成し、ハッシュ値に該当する応答データを応答キャッシュ記憶部110から取得する。応答キャッシュ記憶部110は、ハッシュ値、有効期限、応答データの組みをキャッシュデータとして記憶する。ハッシュ値に該当する応答データがある場合は、その応答データを応答データ返却部113から端末4に返却する。ハッシュ値に該当する応答データがない場合は、コンテンツ検索システム1に接続されたRDBMS2から検索する。構文解析部103は、検索クエリを正規化して構文木を生成し、SQL生成部104は、構文置換の定義に従って接続先のRDBMS2用のSQLを生成し、DB検索実行部105は、RDBMS2へ検索を実行するとともに、その実行時間t1を取得する。検索結果取得部106は、RDBMS2から検索結果を取得するとともに、その取得時間t2も取得する。検索時間計測部107は、実行時間t1と取得時間t2から検索応答時間x=t2-t1を算出する。有効期限算出部108は、検索応答時間に応じて、検索結果応答データをキャッシュデータとして保持する有効期限を動的に算出する。具体的には、平均値記憶部109から検索応答時間の平均値Aを取得して検索応答時間xと比較し、検索応答時間xが平均値Aよりも長い場合は検索応答時間xが平均値A以下の場合の有効期限よりも長くなるように有効期限を設定する。平均値記憶部109には、検索応答時間の平均値A、検索数nを記憶させておき、有効期限を算出する際に平均値A、検索数nを更新する。応答データ生成部111は、検索結果から応答データを生成する。応答キャッシュ保存部112は、検索クエリから生成されたハッシュ値、有効期限算出部108が算出した有効期限、応答データ生成部111が生成した応答データを組みとしたキャッシュデータを応答キャッシュ記憶部110に記憶させる。応答データ返却部113は、応答キャッシュ記憶部110から読み出した応答データ、あるいは、検索結果から生成した応答データを端末4に返却する。次に、検索処理について説明する。図2は、検索処理の流れを示すフローチャートである。クエリ受信部101が検索クエリを受信すると、キャッシュ取得部102は、受信した検索クエリからハッシュ値を生成しステップS101、生成したハッシュ値に該当するキャッシュデータを応答キャッシュ保存部から検索するステップS102。ハッシュ値に該当するキャッシュデータが応答キャッシュ記憶部110に存在する場合は、応答キャッシュ記憶部110から該当するキャッシュデータを取得してステップS110へ進み、取得したキャッシュデータの応答データを返却するステップS110。一方、ハッシュ値に該当するキャッシュデータが存在しない場合は、構文解析部103、SQL生成部104が、検索クエリを正規化して構文木を生成し、構文置換の定義に従って接続先のRDBMS2用のSQLを生成するステップS103。DB検索実行部105が生成したSQLでRDBMS2に対し検索を実行するとともに、その実行時間t1を取得するステップS104。検索結果取得部106がRDBMS2より検索結果を得ると、検索結果が得られた取得時間t2を取得するステップS105。そして、応答データ生成部111が検索結果から応答データを生成するステップS106。また、平行して、検索時間計測部107が実行時間t1と取得時間t2から検索応答時間x=t2-t1を算出しステップS107、有効期限算出部108が検索応答時間xと平均値記憶部109に記憶させた検索応答時間の平均値Aとを比較して、検索結果をキャッシュデータとして保存しておく有効期限を算出するステップS108。有効期限の算出の詳細については後述する。そして、応答キャッシュ保存部112がハッシュ値、有効期限、応答データを組みとしたキャッシュデータを応答キャッシュ記憶部110に記憶させるステップS109。応答データ返却部113が応答データを返却するステップS110。次に、有効期限の算出処理について説明する。図3は、有効期限算出部108による有効期限の算出処理の流れを示すフローチャートである。まず、RDBMS2に対し検索を実行した実行時間t1とRDBMS2より検索結果を取得した取得時間t2から算出した検索応答時間x=t2-t1を検索時間計測部107より取得するステップS201。続いて、平均値記憶部109から検索応答時間の平均値Aと検索数nを取得するとともに、現在時刻tを取得するステップS202。検索数n=n1、平均値A=Ax/nを算出して平均値A、検索数nを更新し、平均値記憶部109に記憶させるステップS203。そして、検索応答時間xと平均値Aを比較しステップS204、検索応答時間xが平均値Aよりも長い場合x>Aの場合、y=axbtとして、現在時刻tに所定時間bを加え、さらに検索応答時間xに比例させた時間を加えた有効期限yを設定するステップS205。また、検索応答時間xが平均値A以下の場合x≦Aの場合、y=btとして、現在時刻tに所定時間bを加えて有効期限yを設定するステップS206。a,bは、状況に応じて設定する任意の値である。なお、本実施の形態では、検索応答時間の平均値Aを基準にして有効期限を設定したが、検索応答時間が長い検索結果のキャッシュデータに対してより長い有効期限を設定できるならば、どのように有効期限を設定するものでもよい。次に、キャッシュデータの保存処理について説明する。図4は、応答キャッシュ保存部112によるキャッシュデータの保存処理の流れを示すフローチャートである。まず、応答キャッシュ記憶部110に空きがあるか否かを判定するステップS301。応答キャッシュ記憶部110に空きがある場合は、ステップS305に進み、ハッシュ値、有効期限、応答データの組みを新たなキャッシュデータとして応答キャッシュ記憶部110に保存するステップS305。一方、応答キャッシュ記憶部110に空きがない場合は、応答キャッシュ記憶部110に有効期限が切れたキャッシュデータが存在するか否か判定するステップS302。有効期限が切れたキャッシュデータが存在する場合は、有効期限が切れたキャッシュデータを削除しステップS303、新たなキャッシュデータを応答キャッシュ記憶部110に保存するステップS305。有効期限が切れたキャッシュデータが存在しない場合は、LRUに従って、最も利用されていないキャッシュデータを削除しステップS304、新たなキャッシュデータを応答キャッシュ記憶部110に保存するステップS305。以上説明したように、本実施の形態によれば、検索時間計測部107により、RDBMS2に対して検索を実行してから検索結果が得られるまでの検索応答時間を計測し、有効期限算出部108により、検索応答時間が長い検索結果のキャッシュデータに対してより長い有効期限を動的に設定することで、RDBMS2への検索応答時間が長くRDBMS2への負荷が大きい検索結果のキャッシュデータが破棄されにくくなるので、有効性の高いキャッシュデータ管理が可能となる。"