(57)【要約】【課題】  データベースの用途に合わせたインデックス構成の提案を行うインデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラムを提供する。【解決手段】  キャッシュメモリ１０２には入力装置１０１から入力したデータベース１０３に対する問い合わせ情報が保持されている。問い合わせ情報収集手段１０５は一定期間キャッシュメモリ１０２に保持された問い合わせ情報を収集して蓄積する。問い合わせ情報解析手段１０６は問い合わせ情報収集手段１０５が集めた情報に対して、インデックス使用の有無などの情報を解析することにより、検索処理と更新処理それぞれに対してどのようなインデックス構成が適しているかを導き出し、その結果を出力装置１１１に表示する。【選択図】      図１
2008204141.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムであって、
前記データ処理装置は、
入力装置から入力された問い合わせ情報に基づいてデータベースに対する問い合わせを実行する手段と、
前記問い合わせ情報をキャッシュメモリに保持する手段とを有し、
前記データ解析装置は、
前記キャッシュメモリから前記問い合わせ情報を収集し、収集した前記問い合わせ情報を基に、時間帯毎且つ処理内容毎にアクセス回数を算出する問い合わせ情報収集手段と、
表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得するインデックス情報取得手段と、
前記問い合わせ情報収集手段によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する問い合わせ情報解析手段とを有する、
ことを特徴とするインデックス構成提案システム。
【請求項２】
前記問い合わせ情報解析手段は、
インデックスの構成を決定する上でのルールを規定したインデックス生成ルールを含み、
前記問い合わせ情報収集手段によって収集した情報および前記インデックス生成ルールを基に、前記インデックス構成の解析を行い、前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する、
ことを特徴とする請求項１記載のインデックス構成提案システム。
【請求項３】
前記問い合わせ情報収集手段は、
収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出する処理時間取得手段を含み、
前記問い合わせ情報解析手段は、
インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する、
ことを特徴とする請求項１記載のインデックス構成提案システム。
【請求項４】
データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムのインデックス構成提案方法であって、
前記データ処理装置は、
入力装置から入力された問い合わせ情報に基づいてデータベースに対する問い合わせを実行し、
前記問い合わせ情報をキャッシュメモリに保持し、
前記データ解析装置の問い合わせ情報収集手段は、
前記キャッシュメモリから前記問い合わせ情報を収集し、
収集した前記問い合わせ情報を基に時間帯毎且つ処理内容毎にアクセス回数を算出し、
前記データ解析装置の問い合わせ情報解析手段は、
表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得し、
前記問い合わせ情報収集手段によって収集した情報を基に、前記インデックス構成の解析を行い、
時間帯毎且つ処理内容毎にインデックスの使用状況を作成する、
ことを特徴とするインデックス構成提案方法。
【請求項５】
前記問い合わせ情報解析手段は、
前記問い合わせ情報収集手段によって収集した情報およびインデックスの構成を決定する上でのルールを規定したインデックス生成ルールを基に、前記インデックス構成の解析を行い、
前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する、
ことを特徴とする請求項４記載のインデックス構成提案方法。
【請求項６】
前記問い合わせ情報収集手段は、
収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、
同じ条件の問い合わせがあった場合の処理時間の変化を算出し、
前記問い合わせ情報解析手段は、
インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する、
ことを特徴とする請求項４記載のインデックス構成提案方法。
【請求項７】
データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムのデータ解析装置であって、
データベースに対する問い合わせ情報を収集し、収集した前記問い合わせ情報を基に、時間帯毎且つ処理内容毎にアクセス回数を算出する問い合わせ情報収集手段と、
表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得するインデックス情報取得手段と、
前記問い合わせ情報収集手段によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する問い合わせ情報解析手段とを有する、
ことを特徴とするデータ解析装置。
【請求項８】
前記問い合わせ情報解析手段は、
インデックスの構成を決定する上でのルールを規定したインデックス生成ルールを含み、
前記問い合わせ情報収集手段によって収集した情報および前記インデックス生成ルールを基に、前記インデックス構成の解析を行い、前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する、
ことを特徴とする請求項７記載のデータ解析装置。
【請求項９】
前記問い合わせ情報収集手段は、
収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出する処理時間取得手段を含み、
前記問い合わせ情報解析手段は、
インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する、
ことを特徴とする請求項７記載のデータ解析装置。
【請求項１０】
データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムにおけるデータ解析装置のプログラムであって、
データ解析装置に、
データベースに対する問い合わせ情報を収集し、収集した前記問い合わせ情報を基に、時間帯毎且つ処理内容毎にアクセス回数を算出する問い合わせ情報収集処理と、
表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得するインデックス情報取得処理と、
前記問い合わせ情報収集処理によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する問い合わせ情報解析処理と、
を行わせることを特徴とするプログラム。
【請求項１１】
前記問い合わせ情報収集手段によって収集した情報およびインデックスの構成を決定する上でのルールを規定したインデックス生成ルールを基に、前記インデックス構成の解析を行う処理と、
前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する処理と、
を行わせることを特徴とする請求項１０記載のプログラム。
【請求項１２】
収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出する処理時間取得処理と、
インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する処理と、
を行わせることを特徴とする請求項１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラムに関し、特に、データベースの用途に合わせたインデックス構成の提案を行うインデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラムに関する。
【背景技術】
【０００２】
従来の、データベースへのアクセス頻度を利用したインデックス生成システムの一例が、特許文献１に記載されている。特許文献１に記載のシステムは、アクセス手段とインデックス評価手段とインデックス更新手段とを備え、以下のように動作する。
【０００３】
アクセス手段はデータベースのデータの各属性に対するアクセス毎に、アクセスした属性についてのアクセス頻度情報を更新し、インデックス評価手段は各属性のアクセス頻度情報に基づいてインデックスを生成すべきか削除すべきかを判断し、インデックス更新手段はインデックス評価手段の評価結果に基づいてインデックスを自動的に更新している。
【０００４】
【特許文献１】特開平６−２１５０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した背景技術においては、データベースの用途や管理者の意図などを考慮した上での最適なインデックス構成にならない場合があるという問題点がある。必要なインデックスが削除されたり、効率的なインデックス検索が行なわれない可能性もある。
【０００６】
その理由は、アクセス頻度のみの判断でインデックスの更新を自動化するようにしているためである。
【０００７】
本発明の目的は、上述した従来の課題を解決するインデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１のインデックス構成提案システムは、データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムであって、  前記データ処理装置は、  入力装置から入力された問い合わせ情報に基づいてデータベースに対する問い合わせを実行する手段と、前記問い合わせ情報をキャッシュメモリに保持する手段とを有し、前記データ解析装置は、前記キャッシュメモリから前記問い合わせ情報を収集し、収集した前記問い合わせ情報を基に、時間帯毎且つ処理内容毎にアクセス回数を算出する問い合わせ情報収集手段と、表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得するインデックス情報取得手段と、前記問い合わせ情報収集手段によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する問い合わせ情報解析手段とを有する、ことを特徴とする。
【０００９】
本発明の第２のインデックス構成提案システムは、第１のインデックス構成提案システムにおいて、前記問い合わせ情報解析手段は、インデックスの構成を決定する上でのルールを規定したインデックス生成ルールを含み、前記問い合わせ情報収集手段によって収集した情報および前記インデックス生成ルールを基に、前記インデックス構成の解析を行い、前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する、ことを特徴とする。
【００１０】
本発明の第３のインデックス構成提案システムは、第１のインデックス構成提案システムにおいて、前記問い合わせ情報収集手段は、収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出する処理時間取得手段を含み、前記問い合わせ情報解析手段は、インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する、ことを特徴とする。
【００１１】
本発明の第１のインデックス構成提案方法は、データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムのインデックス構成提案方法であって、前記データ処理装置は、入力装置から入力された問い合わせ情報に基づいてデータベースに対する問い合わせを実行し、前記問い合わせ情報をキャッシュメモリに保持し、前記データ解析装置の問い合わせ情報収集手段は、前記キャッシュメモリから前記問い合わせ情報を収集し、収集した前記問い合わせ情報を基に時間帯毎且つ処理内容毎にアクセス回数を算出し、前記データ解析装置の問い合わせ情報解析手段は、表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得し、前記問い合わせ情報収集手段によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する、ことを特徴とする。
【００１２】
本発明の第２のインデックス構成提案方法は、第１のインデックス構成提案方法において、前記問い合わせ情報解析手段は、前記問い合わせ情報収集手段によって収集した情報およびインデックスの構成を決定する上でのルールを規定したインデックス生成ルールを基に、前記インデックス構成の解析を行い、前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する、ことを特徴とする。
【００１３】
本発明の第３のインデックス構成提案方法は、第１のインデックス構成提案方法において、前記問い合わせ情報収集手段は、収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出し、前記問い合わせ情報解析手段は、インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する、ことを特徴とする。
【００１４】
本発明の第１のデータ解析装置は、データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムのデータ解析装置であって、データベースに対する問い合わせ情報を収集し、収集した前記問い合わせ情報を基に、時間帯毎且つ処理内容毎にアクセス回数を算出する問い合わせ情報収集手段と、表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得するインデックス情報取得手段と、前記問い合わせ情報収集手段によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する問い合わせ情報解析手段とを有する、ことを特徴とする。
【００１５】
本発明の第２のデータ解析装置は、第１のデータ解析装置において、前記問い合わせ情報解析手段は、インデックスの構成を決定する上でのルールを規定したインデックス生成ルールを含み、前記問い合わせ情報収集手段によって収集した情報および前記インデックス生成ルールを基に、前記インデックス構成の解析を行い、前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する、ことを特徴とする。
【００１６】
本発明の第３のデータ解析装置は、第１のデータ解析装置において、前記問い合わせ情報収集手段は、収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出する処理時間取得手段を含み、前記問い合わせ情報解析手段は、インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する、ことを特徴とする。
【００１７】
本発明の第１のプログラムは、データ処理装置とデータ解析装置とを含みインデックスの構成を提案するインデックス構成提案システムにおけるデータ解析装置のプログラムであって、データ解析装置に、データベースに対する問い合わせ情報を収集し、収集した前記問い合わせ情報を基に、時間帯毎且つ処理内容毎にアクセス回数を算出する問い合わせ情報収集処理と、表の各列にインデックスが生成されているか否かを示すインデックス構成をデータベースから取得するインデックス情報取得処理と、前記問い合わせ情報収集処理によって収集した情報を基に、前記インデックス構成の解析を行い、時間帯毎且つ処理内容毎にインデックスの使用状況を作成する問い合わせ情報解析処理と、を行わせることを特徴とする。
【００１８】
本発明の第２のプログラムは、第１のプログラムにおいて、前記問い合わせ情報収集手段によって収集した情報およびインデックスの構成を決定する上でのルールを規定したインデックス生成ルールを基に、前記インデックス構成の解析を行う処理と、前記インデックス生成ルールに従い、時間帯毎且つ処理内容毎に各列に対するインデックス構成の変更を示す提案を作成する処理と、を行わせることを特徴とする。
【００１９】
本発明の第３のプログラムは、第１のプログラムにおいて、収集した前記問い合わせ情報から問い合わせに要した処理時間を取得し、同じ条件の問い合わせがあった場合の処理時間の変化を算出する処理時間取得処理と、インデックスが生成されているにもかかわらずアクセス回数が増える度に処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する処理と、を行わせることを特徴とする。
【発明の効果】
【００２０】
本発明は、データベースの用途に応じた解析ができるという効果を有している。
【００２１】
その理由は、データベースに対してアクセスした問い合わせ情報を全てキャッシュメモリに保持し、キャッシュメモリに保持した情報を収集して、実際に利用された検索処理あるいは更新処理の情報を取得し、データベースの用途に応じたインデックス構成の解析を行うようにしたためである。
【発明を実施するための最良の形態】
【００２２】
本発明は、データベースに対してアクセスした問い合わせ情報を利用し、インデックスの構成に関する解析を行ない、データベースの用途に適したインデックスの構成を提案することを特徴としている。
【００２３】
以下に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２４】
先ず、本発明の第１の実施の形態の構成について説明する。
【００２５】
図１を参照すると、本発明の第１の実施の形態の構成は、キーボード等の入力装置１０１と、データ処理装置１０４と、データ解析装置１０９と、ディスプレイ等の出力装置１１１とを備えている。
【００２６】
入力装置１０１は、例えばキーボード装置等であり、データベース１０３に対する問い合わせ情報を入力する。問い合わせ情報は、例えばＳＱＬコマンド等である。
【００２７】
データ処理装置１０４は、プログラム制御で動作するサーバ等の情報処理装置であり、オブジェクトリレーショナルデータベース管理システム(ORDBMS)を含んでいる。オブジェクトリレーショナルデータベース管理システムは、例えばPostgreSQL（ポストグレスキューエル）である。PostgreSQLは、カリフォルニア大学バークレー校で開発されたデータベースシステムPOSTGRESを元に開発され、その後SQL準拠の問い合わせ言語をサポートし、ソースコードはインターネットで公開されている。
【００２８】
また、データ処理装置１０４は、キャッシュメモリ１０２と、データベース１０３とを有している。
【００２９】
また、データ処理装置１０４は、入力装置１０１から入力された問い合わせ情報についてデータベース１０３に対する問い合わせを実行する問い合わせ実行手段を含む。また、問い合わせ情報と実行した問い合わせ結果とをキャッシュメモリ１０２に格納するキャッシュメモリ格納手段を含んでいる。
【００３０】
キャッシュメモリ１０２は、データ処理装置１０４の記憶装置（図示せず）の一部であり、データベース１０３に対する問い合わせ情報に関連する情報を保持する。保持する項目には、例えば図６に示すように、表名，処理内容（検索処理か更新処理か），データ抽出条件に含まれる列名，アクセス時刻などを含む。また、問い合わせ情報に基づき、データベース１０３に対して実行した問い合わせ結果を保持する。
【００３１】
データベース１０３は、リレーショナルデータベースであり、テーブル（表）やインデックス等の実データを保持する。表Ａの構成例を図４に示す。図４を参照すると、表Ａは列１，列２，列３，列４から構成されている。また、表Ａのインデックス情報例を図５に示す。図５を参照すると、表Ａは列１と列２とにインデックスが生成されている。
【００３２】
データ解析装置１０９は、プログラム制御で動作するサーバ等の情報処理装置で、インデックス情報取得手段１０８と、問い合わせ情報収集手段１０５と、問い合わせ情報解析手段１０６とを備える。
【００３３】
インデックス情報取得手段１０８は、データベース１０３に生成されているインデックスの情報を取得し保持する。例として、表Ａのインデックス情報例を図５に示す。
【００３４】
問い合わせ情報収集手段１０５は、データ処理装置１０４のキャッシュメモリ１０２に保持されている問い合わせ情報を一定期間収集する。更に、時間帯ごとにその内容（検索か更新か）を実行した回数をカウントしてアクセス数を算出し、記憶装置（図示せず）に保持する。収集して保持する項目には、例えば図７に示すように、表名，処理内容（検索処理か更新処理か），データ抽出条件に含まれる列名，時間帯ごとのアクセス数などを含む。
【００３５】
問い合わせ情報解析手段１０６は、インデックス情報取得手段１０８によって取得したインデックス情報と、問い合わせ情報収集手段１０５によって収集した情報とによりインデックス構成を解析する。そして、図８に示すように、時間帯ごとの検索処理と更新処理に対するインデックスの使用状況を作成し、出力装置１１１に表示する。
【００３６】
そして、問い合わせ情報解析手段１０６は、インデックス生成ルール１０７に基づき、時間帯ごと且つ処理内容ごとにインデックスの変更（例えば生成，破棄あるいは定義変更など）といった現在のインデックス構成に対する提案を導き出し、提案表を作成する。提案表の例を図９に示す。例えば、ある列を検索条件に含めた問い合わせが複数ある（アクセス数と予め定めた閾値とを比較し、アクセス数が閾値以上である）が、インデックスが生成されていない場合には、その列に対してインデックスを生成する提案を作成する。
【００３７】
インデックス生成ルール１０７は、データベース１０３の特徴に基づいたインデックスの構成を決定する上でのルールである。インデックス生成ルール１０７は、予め定められ、記憶装置（図示せず）に格納されている。インデックス生成ルール１０７の内容例を図３に示す。
【００３８】
出力装置１１１は、表示装置あるいは印刷装置であり、問い合わせ情報解析手段１０６によって導かれたインデックス構成提案表１１０を出力する。
【００３９】
次に、本発明の第１の実施の形態の動作について、図２のフローチャートを参照して詳細に説明する。
【００４０】
データ処理装置１０４は、入力装置１０１から入力された問い合わせ情報に基づいて、データベース１０３に対する問い合わせを実行する（ステップＡ１）。
【００４１】
データ処理装置１０４は、その問い合わせ情報をキャッシュメモリ１０２に保持する（ステップＡ２）。
【００４２】
問い合わせ情報収集手段１０５は、問い合わせ情報に含まれる情報（表名，処理内容（検索処理あるいは更新処理），データ抽出条件に含まれる列名などを含む）をキャッシュメモリ１０２から収集し（ステップＡ３）、更にその内容を実行した回数をカウントする（ステップＡ４）。
【００４３】
問い合わせ情報解析手段１０６は、インデックス情報取得手段１０８によって取得したインデックス情報と、問い合わせ情報収集手段１０５によって収集した情報とによりインデックス構成を解析する。そして、時間帯ごとの検索処理と更新処理に対するインデックスの使用状況を作成する。更に、インデックス生成ルール１０７に基づき、時間帯ごと且つ処理内容ごとにインデックスの変更といった現在のインデックス構成に対する提案を導き出し、提案表を作成する（ステップＡ５）。
【００４４】
出力装置１１１は、ステップＡ５で解析した結果をもとに、データベース１０３の用途とそれに適したインデックス構成の提案結果を表示する（ステップＡ６）。
【００４５】
更に、より具体的な例について説明する。
【００４６】
データベースに表Ａが存在し、インデックス情報が図５の内容になっている時、一定期間問い合わせ情報を収集した結果が図７のようになったとする。
【００４７】
インデックスが定義されている列１が検索処理と更新処理両方の抽出条件に含まれているが、時間帯ごとのアクセス数を見ると、０時から８時までの間は更新処理の頻度の方が高いので、インデックス生成ルール１０７によりインデックスを破棄することを提案する。
【００４８】
一方、８時から２４時の間は検索処理の頻度の方が高いので、インデックス生成ルール１０７によりインデックス構成は適切であると言える。しかし、列１を更新する更新処理も存在するため、優先される処理が検索処理であるか更新処理であるかによって、インデックス構成を変更する必要がある旨を提案事項には含める。
【００４９】
また、列２においては全て更新処理となっているため、列２のインデックス破棄を提案する。
【００５０】
また、インデックスが生成されていない列３に対する検索処理が多く実行されていて、更新処理は一度も実行されていないため、列３にインデックスを生成することを提案する。
【００５１】
以上のことから、表Ａに関するインデックス構成の提案は図９のように出力される。
【００５２】
次に、本発明の第１の実施の形態の効果について説明する。
【００５３】
第１の効果は、データベースの用途に応じた解析ができることにある。
【００５４】
その理由は、データベースに対してアクセスした問い合わせ情報を全てキャッシュメモリに保持し、キャッシュメモリに保持した情報を収集して、実際に利用された検索処理あるいは更新処理の情報を取得し、データベースの用途に応じたインデックス構成の解析を行うようにしたためである。
【００５５】
第２の効果は、用途に適したインデックス構成を決定することができることにある。実際にインデックスの生成および破棄を行なうデータベース管理者は、単に検索を高速化するためにインデックスを生成する等の観点だけではなく、更新処理への影響や時間帯ごとのデータベース利用状況などを考慮した上で、実際の運用や用途に適したインデックス構成を自ら決定できるようになる。
【００５６】
その理由は、インデックス生成ルールに基づいたインデックス構成を導き出すようにしたためである。
【００５７】
次に、本発明の第２の実施の形態の構成について図面を参照して詳細に説明する。
【００５８】
図１０を参照すると、本発明の第２の実施の形態の構成は、キーボード等の入力装置１０１と、データ処理装置２０４と、データ解析装置２０９と、ディスプレイ等の出力装置１１１とを備えている。
【００５９】
上述した第１の実施の形態の構成要素と異なる構成要素について、以下に説明する。
【００６０】
データ処理装置２０４は、プログラム制御で動作するサーバ等の情報処理装置であり、オープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)を含んでいる。オブジェクトリレーショナルデータベース管理システムは、例えばPostgreSQLでいる。
【００６１】
また、データ処理装置２０４は、キャッシュメモリ２０２と、データベース１０３とを含む。
【００６２】
また、データ処理装置２０４は、入力装置１０１から入力された問い合わせ情報についてデータベース１０３に対する問い合わせを実行する問い合わせ実行手段を含む。また、問い合わせ情報と実行した問い合わせに要した処理時間とをキャッシュメモリ２０２に格納するキャッシュメモリ格納手段を含んでいる。
【００６３】
キャッシュメモリ２０２は、データ処理装置２０４の記憶装置（図示せず）の一部であり、入力装置１０１から入力されたデータベース１０３に対する問い合わせ情報を保持する。また、実行した問い合わせに要した処理時間を保持する。キャッシュメモリ２０２に保持する項目は、表名，処理内容（検索処理か更新処理か），データ抽出条件に含まれる列名，アクセス時刻，問い合わせに要した処理時間などである。
【００６４】
データ解析装置２０９は、プログラム制御で動作するサーバ等の情報処理装置で、インデックス情報取得手段１０８と、問い合わせ情報収集手段２０５と、問い合わせ情報解析手段２０６とを備える。
【００６５】
問い合わせ情報収集手段２０５は、処理時間取得手段２１２を含み、データ処理装置１０４のキャッシュメモリ１０２に保持されている問い合わせ情報を一定期間収集する。更に、時間帯ごとにその内容を実行した回数をカウントしてアクセス数を算出し、記憶装置（図示せず）に保持する。収集して保持する項目は、表名，処理内容（検索処理か更新処理か），データ抽出条件に含まれる列名，時間帯ごとのアクセス数，問い合わせに要した処理時間，１回目の処理時間に対する処理時間の増加／減少時間などである。
【００６６】
処理時間取得手段２１２は、問い合わせ情報収集手段２０５で保持する項目から、問い合わせに要した処理時間を取得する。そして、同じ条件の問い合わせがあった場合の処理時間の変化を導き出し、記憶装置（図示せず）に保持する項目である「１回目の処理時間に対する処理時間の増加／減少時間」欄に格納する。すなわち、同じ条件の問い合わせに対して、１回目の処理時間を基準に、２回目以降の処理時間が１回目の処理時間に比べ増加あるいは減少している時間を算出して格納する。
【００６７】
問い合わせ情報解析手段２０６は、インデックス情報取得手段１０８によって取得したインデックス情報と、問い合わせ情報収集手段２０５によって収集した情報とにより、インデックス構成を解析し、時間帯ごとの検索処理と更新処理に対するインデックスの使用状況を作成する。そして、インデックス生成ルール１０７に基づき、インデックスの生成，破棄あるいは定義変更といった現在のインデックス構成に対する提案を導き出し、提案表を作成する。例えば、ある列を検索条件に含めた問い合わせが複数ある（アクセス数と予め定めた閾値とを比較し、アクセス数が閾値以上である）が、インデックスが定義されていない場合には、その列に対してインデックスを定義（生成）するように提案を作成する。
【００６８】
また、問い合わせ情報解析手段２０６は、処理時間取得手段２１２とインデックス情報収集手段１０８より取得した情報から、インデックスが生成されているにもかかわらずアクセス回数が増える度に著しく処理時間が長くなっている場合には、インデックスの再編成を行う提案を作成する。
【００６９】
次に、本発明の第２の実施の形態の動作について、図１１のフローチャートを参照して詳細に説明する。
【００７０】
データ処理装置２０４は、入力装置１０１から入力された問い合わせ情報について、データベース１０３に対する問い合わせを実行する（ステップＢ１）。
【００７１】
データ処理装置２０４は、その問い合わせ情報をキャッシュメモリ２０２に保持する（ステップＢ２）。
【００７２】
問い合わせ情報収集手段２０５は、問い合わせ内容情報に含まれる情報（表名，処理内容（検索処理あるいは更新処理），データ抽出条件に含まれる列名などを含む）をキャッシュメモリ２０２から収集し（ステップＢ３）、更にその内容を実行した回数をカウントする（ステップＢ４）。
【００７３】
処理時間取得手段２１２は、問い合わせに対する処理時間を取得し、同じ条件の問い合わせがあった場合の所要時間の変化を導き出す（ステップＢ４１）。
【００７４】
問い合わせ情報解析手段２０６は、インデックス情報取得手段１０８によって取得したインデックス情報と、問い合わせ情報収集手段２０５によって収集した情報とにより、インデックス構成を解析する。そして、時間帯ごとの検索処理と更新処理に対するインデックスの使用状況を作成する。更に、予め決められたインデックス生成ルール１０７に基づき、問い合わせ処理内容や頻度に対するインデックス使用の有無などから、各列に対するインデックスの生成，破棄あるいは定義変更といった現在のインデックス構成に対する提案を導き出す（ステップＢ５）。
【００７５】
また、問い合わせ情報解析手段２０６は、処理時間取得手段２１２とインデックス情報収集手段１０８より取得した情報から、インデックスが生成されているにもかかわらずアクセス回数が増える度に著しく処理時間が長くなっている場合は、インデックスの再編成を提案する（ステップＢ５１）。
【００７６】
出力装置１１１は、ステップＢ５〜ステップＢ５１で解析した結果をもとに、データベース１０３の用途とそれに適したインデックス構成の提案結果を表示する（ステップＢ６）。
【００７７】
次に、本発明の第２の実施の形態の効果について説明する。
【００７８】
第１の効果は、処理時間が長くなっている場合に大量のデータ削除などによりインデックスが断片化されている可能性を指摘し、インデックス再編成による検索効率の向上を提案できることである。
【００７９】
その理由は、インデックスが生成されている列を指定した検索による処理時間の変化を導き出すようにしたからである。
【産業上の利用可能性】
【００８０】
本発明は、インデックスを使用してデータベース検索するデータベースシステムにおけるインデックス構成解析装置に利用可能である。
【図面の簡単な説明】
【００８１】
【図１】本発明の第１の実施の形態の構成例を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示すフローチャートである。
【図３】インデックス生成ルールの内容例を示す図である。
【図４】表Ａの構成例を示す図である。
【図５】表Ａのインデックス情報の例を示す図である。
【図６】キャッシュメモリに保持される問い合わせ情報の例を示す図である。
【図７】表Ａの問い合わせ情報収集例を示す図である。
【図８】表Ａのインデックス構成の解析結果の例を示す図である。
【図９】表Ａのインデックス構成提案表の例を示す図である。
【図１０】本発明の第２の実施の形態の構成例を示すブロック図である。
【図１１】本発明の第２の実施の形態の動作を示すフローチャートである。
【符号の説明】
【００８２】
１０１    入力装置
１０２    キャッシュメモリ
１０３    データベース
１０４    データ処理装置
１０５    問い合わせ情報収集手段
１０６    問い合わせ情報解析手段
１０７    インデックス生成ルール
１０８    インデックス情報取得手段
１０９    データ解析装置
１１０    インデックス構成提案表
１１１    出力装置
２０２    キャッシュメモリ
２０４    データ処理装置
２０５    問い合わせ情報収集手段
２０６    問い合わせ情報解析手段
２０９    データ解析装置
２１２    処理時間取得手段
【図１】
2008204141.tif 000003
【図２】
2008204141.tif 000004
【図３】
2008204141.tif 000005
【図４】
2008204141.tif 000006
【図５】
2008204141.tif 000007
【図６】
2008204141.tif 000008
【図７】
2008204141.tif 000009
【図８】
2008204141.tif 000010
【図９】
2008204141.tif 000011
【図１０】
2008204141.tif 000012
【図１１】
2008204141.tif 000013