(57)【特許請求の範囲】
【請求項１】
データの二次情報であるインデックスを格納したインデックスファイルを検索する装置であって、
前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、
前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、
前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、
前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、
与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すアクセス手段と、
前記インデックスブロックが取り出されるときに、
前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、
求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、
与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として１つの排他単位を決定し、
決定された前記１つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記１つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記アクセス手段を制御する制御手段とを備えたことを特徴とするインデックスファイル検索装置。
【請求項２】
前記制御手段は、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理する管理表と、前記１つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行う手段とを有することを特徴とする請求項１に記載のインデックスファイル検索装置。
【請求項３】
コンピュータがデータの二次情報であるインデックスを格納したインデックスファイルを検索する方法であって、
前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、
前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、
前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、
前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、
前記コンピュータが、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すステップと、
前記コンピュータが、前記インデックスブロックが取り出されるときに、
前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、
求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、
与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として１つの排他単位を決定し、
決定された前記１つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記１つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御ステップとを備えたことを特徴とするインデックスファイル検索方法。
【請求項４】
前記制御ステップは、前記コンピュータが、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理表で管理するステップと、前記コンピュータが、前記１つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行うステップとを有することを特徴とする請求項３に記載のインデックスファイル検索方法。
【請求項５】
データの二次情報であるインデックスを格納したインデックスファイルを検索するプログラムであって、
前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、
前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、
前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、
前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、
コンピュータに、
与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出す手順と、
前記インデックスブロックが取り出されるときに、
前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、
求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、
与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として１つの排他単位を決定し、
決定された前記１つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記１つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御手順とを実行させることを特徴とするインデックスファイル検索プログラム。
【請求項６】
前記制御手順は、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理表で管理する手順と、前記１つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行う手順とを有することを特徴とする請求項５に記載のインデックスファイル検索プログラム。
【請求項７】
請求項５又は６に記載のインデックスファイル検索プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースのインデックスファイルに対する検索要求を処理するインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来、データベースに対する検索処理を高速化する技術として、インデックスと称する二次情報を生成しておき、このインデックスレコードを検索することによって目的とするデータレコードを求めるという手法が広く知られている。
【０００３】
図２は、この手法で用いるインデックスの構造を示した図である。インデックスは、木構造という階層構造になっている。インデックスレコードは、インデックス値が昇順、もしくは降順になるようにインデックスブロックに格納されている。図２の例では、３階層のインデックスになっている。インデックスは、最上位インデックスブロック２０１、中間位インデックスブロック２０３、最下位インデックスブロック２０５から構成されている。最上位インデックスブロック２０１は、インデックスにつき１つである。
【０００４】
このインデックスを構成しているインデックスブロックには、最上位インデックスブロック２０１からその下位のインデックスブロックに順番にたどれるように、自分のインデックスブロック番号（自インデックスブロック番号）と、一つ前のインデックスブロック番号（前インデックスブロック番号）と、一つ後ろのインデックスブロック番号（次インデックスブロック番号）と、何階層目のインデックスブロックかを示す階層番号とを制御用領域に持っている。
【０００５】
最上位インデックスブロック２０１に格納されている最上位インデックスレコード２０２と、中間位インデックスブロック２０３に格納されている中間位インデックスレコード２０４は、レコード番号（ＲＥＣＮＯ）と、管理している下位のインデックスブロック番号（下位ブロック番号）と、管理している下位のインデックスブロックに格納されている最大インデックス値とを持っている。最下位インデックスブロック２０５に格納されている最下位インデックスレコード２０６は、レコード番号（ＲＥＣＮＯ）と、インデックス値と、これに対応するデータレコードの識別子であるＩＤ（以下、ＲＩＤとする）とを持っている。
【０００６】
インデックスを検索する場合は、最上位インデックスブロック２０１から検索をはじめて、中間位インデックスブロック２０３、そして最下位インデックスブロック２０５と検索して求める最下位インデックスレコード２０６を検索する。
【０００７】
図３は、インデックスの構造の例を示した図である。図３のインデックスは、４階層のインデックスになっている。図３の例では、インデックスは、ＡからＰまでのインデックス値を持つものを図示している。この範囲では、Ａが最小インデックス値に、Ｐが最大インデックス値にそれぞれ対応する。最下位インデックスレコード３０８は、インデックス値が昇順になるように最下位インデックスブロック３０７に格納されている。
【０００８】
最上位インデックスブロック３０１は、自インデックスブロック番号が１、次インデックスブロック番号が５、前インデックスブロック番号が０、階層番号が４となっている。前インデックスブロック番号が０となっているのは、この最上位インデックスブロック３０１の前にインデックスブロックがないためである。この最上位インデックスブロック３０１には、２つの最上位インデックスレコード３０２が格納されている。１つは、レコード番号が１、下位ブロック番号が５、最大インデックス値がＨをもつものであり、もう１つは、レコード番号が２、下位ブロック番号が７、最大インデックス値がＰをもつものである。
【０００９】
３階層目の中間位インデックスブロック３０３は２つあり、１つ目は、自インデックスブロック番号が５、前インデックスブロック番号が１、次インデックスブロック番号が７、階層番号が３である。これには、２つの中間位インデックスレコード３０４が格納され、１つは、レコード番号が３、下位ブロック番号が１２、最大インデックス値がＤをもつものであり、もう１つは、レコード番号が４、下位ブロック番号が１５、最大インデックス値がＨをもつものである。２つ目については省略する。
【００１０】
２階層目の中間位インデックスブロック３０５は４つある。１つ目は、自インデックスブロック番号が１２、前インデックスブロック番号が７、次インデックスブロック番号が１５、階層番号が２である。これには、２つの中間位インデックスレコード３０６が格納され、１つは、レコード番号が７、下位ブロック番号が３０、最大インデックス値がＢをもつものであり、もう１つは、レコード番号が８、下位ブロック番号が３３、最大インデックス値がＤをもつものである。２つ目〜４つ目については省略する。
【００１１】
最下位インデックスブロック３０７は８つある。１つ目は、自インデックスブロック番号が３０、前インデックスブロック番号が２２、次インデックスブロック番号が３３、階層番号が１である。これには、２つの最下位インデックスレコード３０８が格納され、１つは、レコード番号が１５、インデックス値がＡ、これに対応するＲＩＤをもつものであり、もう１つは、レコード番号が１６、インデックス値がＢ、対応するデータレコードのＲＩＤをもつものである。以下、残り２つ目〜８つ目については省略する。なお、８つ目のインデックスブロック番号８８の最下位インデックスブロック３０７は、後ろにインデックスブロックがないので、次インデックスブロック番号は０となっている。
【００１２】
データレコード、インデックスレコードは、オンライン処理等で検索、更新処理が同時に行われる。このため、ある排他単位（例えばレコードが格納されているブロック単位）に更新中の排他単位は、該排他単位の参照を禁止する等の規則を用いる二相ロック方式という広く知られている手法によって排他制御を行い、データレコード、インデックスレコードの整合性を保っている。
【００１３】
また、データベースシステムの利用形態には、オンライン処理等の主要となる処理では検索処理が主体で、しかもインデックスだけを検索することによって求める情報を得るような処理に用いるインデックスがあり、主体となる検索処理のスループットを重視するシステム利用形態がある。このような利用形態において、大量のインデックスレコードで構成されたインデックスに対して検索処理を行う場合、排他単位が大量になることによって排他制御のオーバヘッドが大きくなり、検索処理のスループットが低下してしまう。
【００１４】
そこで、このような問題点を解決するために、インデックス全体として１つの排他単位を設定して一括して排他制御を行うことによって検索処理のスループットを低下させないという技術が提案されている（例えば、特許文献１参照）。この技術では、インデックス全体として１つの排他単位（上述した技術では、インデックスの最上位インデックスブロックを排他単位としている）を一括して排他制御することによって、排他制御によるオーバヘッドを小さくして、検索処理のスループットを低下させないようにしている。
【特許文献１】特開２００４−０３０４２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上述した従来例の技術では、インデックスに対して検索処理を行う場合、インデックス全体として１つの排他単位（例えばインデックスの最上位インデックスブロック）を設定することによって一括して排他制御を行うようにすれば、その目的を達成することができるが、該当インデックスに対する他の検索、更新処理のスループットに影響を与えてしまう、という問題があった。
【００１６】
本発明は、このような従来の事情を考慮してなされたもので、インデックスに対して検索処理を行っても、検索処理のスループットを落とさず、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないことを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、本発明に係るインデックスファイル検索装置は、データの二次情報であるインデックスを格納したインデックスファイルを検索する装置であって、前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すアクセス手段と、前記インデックスブロックが取り出されるときに、前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として１つの排他単位を決定し、決定された前記１つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記１つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記アクセス手段を制御する制御手段とを備えたことを特徴とする。
【００１９】
本発明において、前記制御手段は、前記インデックスに対応付けて前記インデックスブロックのうち一括して排他制御すべきインデックスブロックの階層数を管理する管理表と、前記１つの排他単位を構成するインデックスブロックのうち、前記インデックスブロックの格納用領域に格納された階層番号に相当する階層数が前記管理表の階層数以下のものに対して一括して排他制御を行う手段とを有してもよい。
【００２０】
本発明に係るインデックスファイル検索方法は、コンピュータがデータの二次情報であるインデックスを格納したインデックスファイルを検索する方法であって、前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、前記コンピュータが、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出すステップと、前記コンピュータが、前記インデックスブロックが取り出されるときに、前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として１つの排他単位を決定し、決定された前記１つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記１つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御ステップとを備えたことを特徴とする。
【００２１】
本発明に係るインデックスファイル検索プログラムは、データの二次情報であるインデックスを格納したインデックスファイルを検索するプログラムであって、前記インデックスファイルは、木構造の最上位インデックスブロックから最下位インデックスブロックまでの複数階層のインデックスブロックで構成され、前記インデックスブロックは、自インデックスブロック番号、前インデックスブロック番号、次インデックスブロック番号、及び階層番号が格納される制御用領域と、前記インデックスのインデックスレコードとを有し、前記最下位インデックスブロック以外のインデックスブロックのインデックスレコードには、レコード番号と、管理している下位のインデックスブロックにおけるインデックスブロック番号と、管理している下位のインデックスブロックにおけるインデックスレコードの最大インデックス値とが格納され、前記最下位インデックスブロックのインデックスレコードには、レコード番号と、インデックス値と、そのインデックス値に対応するデータレコードの識別子とが格納され、コンピュータに、与えられたインデックス値を含む検索条件に基づき、前記インデックスファイルから前記インデックスを検索するときに、前記インデックスファイルをアクセスして指定されたインデックスブロックを取り出す手順と、前記インデックスブロックが取り出されるときに、前記インデックスのインデックス名と最上位インデックスブロックのインデックスブロック番号とを予め互いに関連付けて登録されている内容から、最上位インデックスブロックのインデックスブロック番号を求め、求めたインデックスブロック番号に対応する最上位インデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、求めた下位のインデックスブロック番号に対応するインデックスブロックの制御用領域に格納された階層番号から当該インデックスブロックが最下位インデックスブロック以外か否かを判断し、最下位インデックスブロック以外の場合は、インデックスレコードの最大インデックス値に前記検索条件のインデックス値が含まれるものに該当する下位のインデックスブロック番号を求め、以下同様の処理を前記最下位インデックスブロックまで行うことにより、与えられた検索条件のインデックス値を含むインデックスレコードを格納した最下位インデックスブロックと、インデックスレコードの最大インデックス値に当該インデックス値が含まれるものを格納した最上位インデックスブロック以外のインデックスブロックとに局所化した全体として１つの排他単位を決定し、決定された前記１つの排他単位を構成するインデックスブロックのみに対し一括して排他制御を行う一方、前記１つの排他単位以外のインデックスブロックに対して排他制御を行わないように前記インデックスファイルのアクセスを制御する制御手順とを実行させることを特徴とする。
【００２２】
本発明に係るコンピュータ読み取り可能な記録媒体は、上記のインデックスファイル検索プログラムを記録したことを特徴とする。
【発明の効果】
【００２３】
本発明によれば、次のような効果が得られる。
【００２４】
第１の効果は、インデックスファイルに対して条件検索処理を行っても、検索処理のスループットを落とさないことにある。その理由は、インデックスファイルに対して検索処理を行う時は、１つの排他単位で一括して排他制御を行ってインデックス検索を行うので、排他制御によるオーバヘッドを小さくして検索処理を行うためである。
【００２５】
第２の効果は、インデックスファイルに対して条件検索処理を行っても、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないことにある。その理由は、与えられた条件に関係するインデックスのみに局所化した全体として１つの排他単位で一括して排他制御を行ってインデックス検索処理を行うためである。
【発明を実施するための最良の形態】
【００２６】
次に、本発明に係るインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体を実施するための最良の形態について、図面を参照して詳細に説明する。なお、検索対象とするインデックスファイル内のインデックスの階層構造は、例えば前述した図２及び図３に示すものと同様であるため、その説明は省略する。
（第１の実施の形態）
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００２７】
図１は、本実施の形態に係るインデックスファイル検索システムの全体構成を示すブロック図であり、予め設定された利用者プログラムを実行するコンピュータを搭載した利用者端末１０１と、この利用者端末１０１の検索対象となるインデックスを格納したデータベースを構成するインデックスファイル１０６と、利用者端末１０１とインデックスファイル１０６との間に配置された複数の手段とを備える。各手段には、処理要求制御手段１０２と、排他資源決定手段１０３と、インデックスファイルアクセス手段１０４と、排他制御手段１０５とが含まれる。
【００２８】
これら各手段１０２〜１０５は、例えば利用者端末１０１にネットワークを介して接続されるサーバ機等の１台又は複数台のコンピュータ機に搭載される。この場合、コンピュータ機のＣＰＵ（Central Processing Unit）が予め設定されたプログラム（本発明のインデックスファイル検索プログラムに対応する。）の命令を実行することにより、これら各手段１０２〜１０５の機能（後述参照）が実現される。なお、本実施の形態では、処理要求制御手段１０２、排他資源決定手段１０３、および排他制御手段１０５が本発明の制御手段を構成し、インデックスファイルアクセス手段１０４が本発明のアクセス手段を構成する。
【００２９】
利用者端末１０１は、利用者の操作によるインデックスファイル１０６の検索時に予め設定された利用者プログラムを実行することにより、検索するインデックス名、およびインデックス検索条件のインデックス値を含んだインデックス検索要求を出力する。インデックス検索条件には、検索対象のインデックス値のほか、そのインデックス値を昇順に読むか降順に読むかの検索条件も含まれる。
【００３０】
処理要求制御手段１０２は、利用者端末１０１からインデックス検索要求が出力された場合、その検索要求から一括して排他制御を行うための排他資源に対応する最上位インデックスブロックのブロック番号を取得するために、その検索要求に含まれるインデックス名を排他資源決定手段１０３に渡す。またこの手段１０２は、排他資源決定手段１０３から排他資源のブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ると、これらの制御情報に基づいて、ブロックイメージをインデックスファイル１０６から取り出すためにブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００３１】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から受け取ったブロックイメージが最下位インデックスでない、つまり最上位インデックスブロック又は中間位インデックスブロックならば、ブロックイメージ、インデックス検索条件、および一括排他資源が確定しているか否かの制御情報を排他資源決定手段１０３に渡す。またこの手段１０２は、排他資源決定手段１０３から排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報を受け取ると、これらの制御情報に基づいて、ブロックイメージをインデックスファイル１０６から取り出すために必要な排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報をインデックスファイルアクセス手段１０４に渡す。
【００３２】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から受け取ったブロックイメージが最下位インデックスブロックであるならば、検索条件を満たすインデックス値を保持したインデックスレコードを求め、該当するインデックスレコードを利用者端末１０１に返却する。
【００３３】
排他資源決定手段１０３は、処理要求制御手段１０２から渡されるインデックス名から該当するインデックスの最上位インデックスブロック番号を求め、処理要求制御手段１０２に排他資源に対応する最上位インデックスブロックのブロック番号、および一括排他資源が確定していない旨の制御情報を渡す。なお、インデックス名と該当するインデックスの最上位インデックスブロック番号とは、例えば予め図示しない表で互いに関連付けて登録されている。
【００３４】
排他資源決定手段１０３は、処理要求制御手段１０２から渡されるブロックイメージ、および一括排他資源が確定しているか否かの制御情報から、排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報を処理要求制御手段１０２に渡す。
【００３５】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２からブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ったら、これらの制御情報に基づいて、排他制御を行うために排他資源であるブロック番号、および排他制御する旨の制御情報を排他制御手段１０５に渡す。またこの手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいて、該当ブロック番号に対するブロックイメージをインデックスファイル１０６から取り出し、ブロックイメージを処理要求制御手段１０２に渡す。
【００３６】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定している旨の制御情報、排他資源および排他資源の上位ブロックのブロック番号を受け取ったら、これらの制御情報に基づいて、排他制御を行わないで排他資源のブロック番号に対するブロックイメージをインデックスファイル１０６から取り出し、ブロックイメージを処理要求制御手段１０２に渡す。
【００３７】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨の制御情報、排他資源および排他資源の上位ブロックのブロック番号を受け取ったら、これらの制御情報に基づいて、排他制御を行うために排他資源であるブロック番号、および排他制御する旨の制御情報を排他制御手段１０５に渡す。またこの手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいて、排他資源の上位ブロックの排他制御を解除するために排他資源の上位ブロックのブロック番号、および排他制御を解除する旨の制御情報を排他制御手段１０５に渡す。またこの手段１０４は、排他制御手段１０５から該当ブロックの排他制御を解除した旨の制御情報を受け取ったら、その制御情報に基づいて、排他資源のブロック番号に対するブロックイメージをインデックスファイル１０６から取り出し、ブロックイメージを処理要求制御手段１０２に渡す。
【００３８】
排他制御手段１０５は、インデックスファイルアクセス手段１０４から排他資源であるブロック番号、および排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、該当ブロックが排他制御されている場合は、該当ブロックの排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００３９】
排他制御手段１０５は、インデックスファイルアクセス手段１０４から排他資源であるブロック番号、および排他制御を解除する旨の制御情報を受け取ったら、これらの制御情報に基づいて、該当ブロックの排他制御を解除して、該当ブロックの排他制御を解除した旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一般的にブロックの排他制御は、検索、更新処理が終わった時点でも解除される。
【００４０】
インデックスファイル１０６は、１個または複数個のブロックから構成されるインデックスが１個、または複数個格納されている。図４は、ブロック４０１とレコード４０３との関係を示した図である。ブロック４０１には、先頭に該当ブロックを管理するための制御用領域４０２が取られ、１個または複数個のレコード４０３を含む。
【００４１】
次に図１及び図５のフローチャートを参照して、第１の実施の形態の全体の動作について詳細に説明する。
【００４２】
まず、利用者端末１０１は、利用者プログラムを実行して、インデックスの検索を行うためにインデックス検索要求を発行する。インデックス検索要求には、検索するインデックス名と、インデックス検索条件のインデックス値が含まれる。
【００４３】
利用者端末１０１からインデックス検索要求が発行されると、処理要求制御手段１０２は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名を排他資源決定手段１０３に渡す。
【００４４】
排他資源決定手段１０３は、処理要求制御手段１０２から渡されるインデックス名から該当する最上位インデックスブロック番号を求め（ステップＳ５０１）、最上位インデックスブロック番号、一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。処理要求制御手段１０２は、最上位インデックスブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００４５】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨の制御情報、および最上位インデックスブロック番号を受け取ったら、排他制御を行うために排他資源である最上位インデックスブロック番号、および排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う（ステップＳ５０２）。
【００４６】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００４７】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、該当ブロック番号に対するブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、ブロックイメージを処理要求制御手段１０２に返却する。
【００４８】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたインデックスブロックが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。その結果、最下位インデックスブロックでない場合（ステップＳ５０４のノー）、つまり最上位インデックスブロック又は中間位インデックスブロックの場合は、ブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を排他資源決定手段１０３に渡す。
【００４９】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合（ステップＳ５０６のノー）、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求める（ステップＳ５０７）。これにより、検索条件に当てはまる下位のインデックスブロック番号が全て同一の番号である場合（ステップＳ５０８のイエス）、該当ブロック番号、上位のブロック番号、および一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。
【００５０】
処理要求制御手段１０２は、排他資源決定手段１０３から排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ったら、一括排他資源を変更するために、排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００５１】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定していない旨の制御情報を受け取ったら、排他資源を排他制御するために排他資源のブロック番号、および排他制御する旨を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて、該当ブロックに対して排他制御を行う（ステップＳ５０９）。
【００５２】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００５３】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、該当ブロックの上位ブロックに対する排他制御を解除するために上位ブロックのブロック番号、排他制御を解除する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された情報に基づいて該当ブロックの上位ブロックに対する排他制御の解除を行う（ステップＳ５１０）。
【００５４】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号、排他制御を解除する旨の制御情報を受け取ったら、これらの制御情報に基づいて該当ブロックの排他制御を解除して、該当ブロックの排他制御を解除した旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００５５】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックの排他制御を解除した旨の制御情報を受け取ったら、その制御情報に基づいて排他対象ブロック番号に対するブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、ブロックイメージを処理要求制御手段１０２に返却する。
【００５６】
排他資源決定手段１０３は、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求め（ステップＳ５０７）、検索条件に当てはまる下位のインデックスブロック番号が同一でない場合（ステップＳ５０８のノー）、該当ブロック番号、上位のブロック番号、および一括排他資源が確定している（ステップＳ５１１）旨の制御情報を処理要求制御手段１０２に渡す。
【００５７】
処理要求制御手段１０２は、排他資源決定手段１０３から排他資源のブロック番号、排他資源の上位のブロック番号、および一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わなくてもいいので、排他資源のブロック番号、排他資源の上位のブロック番号、一括排他資源が確定している旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００５８】
インデックスファイルアクセス手段１０４は、排他資源のブロック番号、排他資源の上位のブロック番号、一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わないで該当ブロック番号に対するブロックイメージをインデックスファイル１０６から取り出し（Ｓ５０３）、ブロックイメージを処理要求制御手段１０２に返却する。
【００５９】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定している場合（ステップＳ５０６のイエス）、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求め（ステップＳ５１２）、該当ブロック番号、その上位ブロックのブロック番号、および一括排他資源が確定している旨の制御情報を処理要求制御手段１０２に渡す。
【００６０】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたインデックスブロックが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。その結果、最下位インデックスブロックである場合（ステップＳ５０４のイエス）、検索条件を満たすインデックス値を保持する最下位インデックスレコードを求め（ステップＳ５０５）、該当するインデックスレコードを利用者端末１０１に返却する。
【００６１】
次に、具体的な実施例を用いて、本実施の形態の動作を説明する。
【００６２】
ここでは、検索対象インデックスが図３のような階層構造をもつインデックス（インデックス名Ｉとする）の状態の時に、利用者端末１０１からそのインデックス名Ｉのインデックスに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡された場合を考える。この場合、検索対象インデックス名と最上位インデックスブロック３０１のインデックスブロック番号とは、例えば予め図示しないテーブルを用いて、互いに関連付けて登録されているものとする。
【００６３】
まず、処理要求制御手段１０２は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号１を取得するために、インデックス検索要求に含まれるインデックス名Ｉを排他資源決定手段１０３に渡す。排他資源決定手段１０３は、処理要求制御手段１０２から渡されたインデックス名Ｉから、図示しないテーブルを参照して、該当する最上位インデックスブロック番号１を求める（ステップＳ５０１）。そして、求めた最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。処理要求制御手段１０２は、その最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００６４】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨、および最上位インデックスブロック番号１の制御情報を受け取ったら、排他制御を行うために、排他資源である最上位インデックスブロック３０１のブロック番号１、排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて該当ブロックに対する排他制御を行う（ステップＳ５０２）。
【００６５】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号１、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００６６】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号１に対応する最上位インデックスブロック３０１のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【００６７】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号４の最上位インデックスブロックで、階層番号１の最下位インデックスブロックではない（ステップＳ５０４のノー）。このため、処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段１０３に渡す。
【００６８】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、この場合は一括資源が確定していないので（ステップＳ５０６のノー）、インデックス検索条件であるインデックスレコード値Ｂ〜Ｇと、ブロックイメージである最上位インデックスブロック３０１に格納されている最上位インデックスレコード３０２の最大インデックス値とから、最大インデックス値に検索条件のインデックス値Ｂ〜Ｇが含まれる下位ブロック番号を求める（ステップＳ５０７）。この場合、検索条件に当てはまる下位ブロック番号は、インデックス値Ｂ〜Ｇを全て含む最大インデックス値Ｈに対応する５のみで、同一のブロック番号である（ステップＳ５０８のイエス）。このため、排他資源決定手段１０３は、その検索されたブロック番号５と、その上位ブロックのブロック番号１と、一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。
【００６９】
処理要求制御手段１０２は、排他資源決定手段１０３から排他資源のブロック番号５、排他資源の上位のブロック番号１、および一括排他資源が確定していない旨の制御情報を受け取ったら、一括排他資源を変更するために、排他資源のブロック番号５、排他資源の上位のブロック番号１、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から排他資源のブロック番号５、排他資源の上位のブロック番号１、および一括排他資源が確定していない旨の制御情報を受け取ったら、排他資源を排他制御するために排他資源のブロック番号５、および排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて該当ブロックであるブロック番号５の中間位インデックスブロック３０３に対して排他制御を行う（ステップＳ５０９）。
【００７０】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号５、および排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、該当ブロックの上位ブロックの排他制御を解除するために上位ブロックのブロック番号１、および排他制御を解除する旨の制御情報を排他制御手段１０５に渡す。
【００７１】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号１、および排他制御を解除する旨の制御情報を受け取ったら、これらの制御情報に基づいて、該当ブロックであるブロック番号１の最上位インデックスブロックに対する排他制御を解除する（ステップＳ５１０）。そして、その該当ブロックの排他制御を解除した旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００７２】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックの排他制御を解除した旨の制御情報を受け取ったら、その制御情報に基づいて排他対象ブロック番号５に対する中間位インデックスブロック３０３のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【００７３】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号３の中間位インデックスブロック３０３で、階層番号１の最下位インデックスブロックではない（ステップＳ５０４のノー）。このため、処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段１０３に渡す。
【００７４】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、この場合は一括排他資源が確定していないので（ステップＳ５０６のノー）、インデックス検索条件であるインデックスレコード値Ｂ〜Ｇと、ブロックイメージである中間位インデックスブロック３０３に格納されている中間位インデックスレコード３０４の最大インデックス値とから、最大インデックス値に検索条件のインデックス値Ｂ〜Ｇが含まれる下位ブロック番号を求める（ステップＳ５０７）。この場合、検索条件に当てはまる下位ブロック番号は、インデックス値Ｂ〜Ｄを含む最大インデックス値Ｄに対応するブロック番号１２と、インデックス値Ｅ〜Ｈを含む最大インデックス値Ｈに対応するブロック番号１５との２つがあり、同一でない（ステップＳ５０８のノー）。このため、排他資源決定手段１０３は、検索された２つのブロック番号１２、１５のうちインデックス値を昇順に読む場合の検索条件を満たすブロック番号１２と、その上位ブロックのブロック番号５と、一括排他資源が確定している（ステップＳ５１１）旨の制御情報を処理要求制御手段１０２に渡す。なお、検索条件には、インデックス値を昇順に読むか降順に読むかが記載され、本説明では昇順に読むとして説明する。
【００７５】
処理要求制御手段１０２は、排他資源決定手段１０３から排他資源のブロック番号１２、排他資源の上位ブロックのブロック番号５、および一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わなくてもいいので、排他資源のブロック番号１２、排他資源の上位ブロックのブロック番号５、一括排他資源が確定している旨の制御情報をインデックスファイルアクセス手段１０４に渡す。インデックスファイルアクセス手段１０４は、排他資源のブロック番号１２、排他資源の上位ブロックのブロック番号５、一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わないで該当ブロック番号１２に対する中間位インデックスブロック３０５のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【００７６】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かの制御情報をその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号２の中間位インデックスブロック３０５で、階層番号１の最下位インデックスブロックではない（ステップＳ５０４のノー）。このため、処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定している旨の制御情報を排他資源決定手段１０３に渡す。
【００７７】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件、一括排他資源が確定している旨の制御情報を受け取ったら、一括資源が確定しているので（Ｓ５０６のイエス）、インデックス検索条件であるインデックスレコード値Ｂ〜Ｇと、ブロックイメージである中間位インデックスブロック３０５に格納されている中間位インデックスレコード３０６の最大インデックス値とから、下位のインデックスブロック番号を求める（ステップＳ５１２）。この場合、中間位インデックスレコード３０６には、最大インデックス値Ｂでブロック番号３０のものと、最大インデックス値Ｄでブロック番号３３のものとの２つがある。ここでは、ブロック番号３０のものがインデックス値を昇順に読む場合の条件を満たす。このため、排他資源決定手段１０３は、その該当ブロック番号３０と、その上位ブロックのブロック番号１２と、一括排他資源が確定している旨の制御情報を処理要求制御手段１０２に渡す。
【００７８】
処理要求制御手段１０２は、排他資源決定手段１０３から排他資源のブロック番号３０、排他資源の上位のブロック番号１２、および一括排他資源が確定している旨の制御情報を受け取ったら、排他制御を行わなくてもいいので、排他資源のブロック番号３０、排他資源の上位のブロック番号１２、一括排他資源が確定している旨の制御情報をインデックスファイルアクセス手段１０４に渡す。インデックスファイルアクセス手段１０４は、排他資源のブロック番号３０、排他資源の上位のブロック番号１２、一括排他資源が確定している旨の制御情報を受け取ったら、その制御情報に基づいて、排他制御を行わないで該当ブロック番号３０に対する最下位インデックスブロック３０７のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【００７９】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号１の最下位インデックスブロック３０７である（ステップＳ５０４のイエス）。このため、処理要求制御手段１０２は、検索条件を満たすインデックス値を保持する最下位インデックスレコードを求める（ステップＳ５０５）。この場合は、インデックス値Ｂに該当する最下位インデックスレコード３０８を取り出して、利用者端末１０１に返却する。
【００８０】
次に、本実施の形態の効果について説明する。
【００８１】
本実施の形態では、与えられた条件に関係するインデックス部分（図３中の３０９で示す点線で囲んだインデックス部分、すなわち図中左側のブロック番号５、１２、１５の中間位インデックスブロック、ブロック番号３０、３３、３６、５５の最下位インデックスブロック）のみに局所化した全体として１つの排他単位で一括して排他制御を行い、排他制御のオーバヘッドを小さくして、インデックスに対する検索処理が十分な処理速度を得ることができる。これとともに、与えられた条件に関係しないインデックス部分（図３の３０９で示す点線で囲んだインデックス部分以外のインデックス部分、すなわちブロック番号１の最上位インデックスブロック、図中右側のブロック番号７、２０、２２の中間位インデックスブロック、ブロック番号７０、７２、７７、８８の最下位インデックスブロック）に対する他の検索、更新処理のスループットに影響を与えないように動作することができる。
（第２の実施の形態）
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。
【００８２】
図６を参照すると、本実施の形態は、図１に示された第１の実施の形態の構造に加え、一括排他情報管理表１０７を有する点で異なる。一括排他情報管理表１０７は、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を含む。
【００８３】
図７は、一括排他情報管理表１０７の内容例を示した図である。この例では、一括して排他制御を行うインデックス名がＩ、そのインデックス名Ｉに対して一括排他資源を４階層までにすることを示している。
【００８４】
利用者端末１０１は、予め設定された利用者プログラムを実行して、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他制御資源を何階層までにするかの階層数を含んだ一括排他情報登録要求、および一括排他情報を削除するインデックス名を含んだ一括排他情報削除要求を出力する。
【００８５】
処理要求制御手段１０２は、利用者端末１０１から一括排他情報登録要求が出力された場合、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を一括排他情報管理表１０７に登録して、一括排他情報を一括排他情報管理表１０７に登録した旨を利用者端末１０１に返却する。処理要求制御手段１０２は、利用者端末１０１から一括排他情報削除要求が出力された場合、一括排他情報を削除するインデックス名を元に、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を一括排他情報管理表１０７から削除して、一括排他情報を一括排他情報管理表１０７から削除した旨を利用者端末１０１に返却する。
【００８６】
排他資源決定手段１０３は、処理要求制御手段１０２から渡されるインデックス名を元に、一括排他情報管理表１０７の一括排他資源を何階層までにするかの階層数を参照して、処理要求制御手段１０２から渡されるブロックイメージの階層数と比較して、一括排他資源が確定しているか否かを判断し、排他資源のブロック番号、排他資源の上位ブロックのブロック番号、および一括排他資源が確定しているか否かの制御情報を処理要求制御手段１０２に渡す。
【００８７】
次に、図６及び図８のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００８８】
図６で、利用者端末１０１が一括排他情報登録要求、および一括排他情報削除要求を発行した時の動作について詳細に説明する。
【００８９】
一括排他情報登録要求には、一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を含む。一括排他情報削除要求には、一括排他情報を削除するインデックス名を含む。
【００９０】
利用者端末１０１は、一括排他情報登録要求を処理要求手段１０２に渡す。処理要求制御手段１０２は、一括排他情報登録要求であることから、一括排他情報登録要求に含まれる一括して排他制御を行うインデックス名、および該当インデックスに対して一括排他資源を何階層までにするかの階層数を、一括排他情報管理表１０７に登録する。一括排他情報管理表１０７の登録が終了したら、一括排他情報を一括排他情報管理表１０７に登録した旨を利用者端末１０１に返却する。
【００９１】
利用者端末１０１は、一括排他情報削除要求を処理要求手段１０２に渡す。処理要求制御手段１０２は、一括排他情報削除要求であることから、一括排他情報削除要求に含まれる一括排他情報を削除するインデックス名を元に一括排他情報管理表１０７から該当インデックスの一括排他情報を削除する。一括排他情報管理表１０７からの削除が終了したら、一括排他情報管理表１０７から一括排他情報を削除した旨を利用者端末１０１に返却する。
【００９２】
次に、図６及び図８のフローチャートで、一括排他情報管理表１０７に管理されている一括排他資源を何階層までにするかの階層数が一括排他資源のブロックイメージの階層数以上の時、および一括排他情報管理表１０７に管理されている一括排他資源を何階層までにするかの階層数が一括排他資源のブロックイメージの階層数より小さい時、もしくはインデックス検索要求に含まれる検索するインデックス名が一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名になかった時に、利用者端末１０１が、インデックスの検索を行うためにインデックス検索要求を発行した時の動作について詳細に説明する。
【００９３】
図８のフローチャートには、前述した図５のステップＳ５０１〜Ｓ５１２の処理（省略）に加え、ステップＳ５０６とＳ５０７との間にステップＳ８０１〜Ｓ８０３の処理が追加されている。
【００９４】
まず、利用者端末１０１からインデックス検索要求が発行されると、処理要求制御手段１０２は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名を排他資源決定手段１０３に渡す。
【００９５】
排他資源決定手段１０３は、処理要求制御手段１０２から渡されるインデックス名から該当する最上位インデックスブロック番号を求め（ステップＳ５０１）、処理要求制御手段１０２に最上位インデックスブロック番号、一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。処理要求制御手段１０２は、最上位インデックスブロック番号、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００９６】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨、および最上位インデックスブロック番号の制御情報を受け取ったら、排他制御を行うために排他資源である最上位インデックスブロック番号、および排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、該当ブロックに対して排他制御を行う（ステップＳ５０２）。
【００９７】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【００９８】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいて、該当ブロック番号に対するインデックスブロックのブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【００９９】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたインデックスブロックのブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。その結果、最下位インデックスブロックでない場合（ステップＳ５０４のノー）、つまり最上位インデックスブロック又は中間位インデックスブロックの場合、ブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を排他資源決定手段１０３に渡す。
【０１００】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合（ステップＳ５０６のノー）、インデックス名から一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する（ステップＳ８０１）。その結果、インデックス名があったら（ステップＳ８０１のイエス）、一括排他情報管理表１０７の一括排他資源を何階層までにするかの階層数を参照して、処理要求制御手段１０２から渡されるブロックイメージの階層番号に相当する階層数と比較する（ステップＳ８０２）。その結果、一括排他情報管理表１０７で管理している階層数がブロックイメージの階層数以上だったら（ステップＳ８０２のイエス）、一括排他資源が確定しているとして（図８のステップＳ８０３）、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求め（ステップＳ５１２）、該当ブロック番号、上位のブロック番号、および一括排他資源が確定している旨の制御情報を処理要求制御手段１０２に渡す。この後の処理は、第１の実施の形態と変わらないので、説明は省略する。
【０１０１】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合（ステップＳ５０６のノー）、インデックス名から一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名にあるか確認する（ステップＳ８０１）。その結果、インデックス名があったら（ステップＳ８０１のイエス）、一括排他資源を何階層までにするかの階層数を参照して、処理要求制御手段１０２から渡されるブロックイメージの階層番号に相当する階層数と比較する（ステップＳ８０２）。その結果、一括排他情報管理表１０７で管理している階層数がブロックイメージの階層数より小さかったら（ステップＳ８０２のノー）、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求める（ステップＳ５０７）。この後の処理は、第１の実施の形態と変わらないので、説明は省略する。
【０１０２】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件のインデックス値、および一括排他資源が確定しているか否かの制御情報を受け取ったら、一括排他資源が確定していない場合（ステップＳ５０６のノー）、インデックス名から一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名にあるか確認する（ステップＳ８０１）。その結果、インデックス名がなかったら（ステップＳ８０１のノー）、インデックス検索条件のインデックス値から下位のインデックスブロック番号を求める（ステップＳ５０７）。この後の処理は、第１の実施の形態と変わらないので、説明は省略する。
【０１０３】
次に、本実施の形態の効果について説明する。
【０１０４】
本実施の形態では、利用者が一括して排他制御を行うインデックス名、および該当するインデックスに対して一括排他資源を何階層までにするかの階層数を登録することができるため、一括排他資源を何階層までにするか利用者が意識して一括して排他制御を行い、インデックス検索処理を行うことができる。
【０１０５】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
（動作例１）
まず、図７のような一括排他情報管理表１０７の状態の時に、利用者端末１０１から、一括して排他制御を行うインデックス名がＩＤＸ、該当インデックスに対して一括排他資源を２階層までにする一括排他情報登録要求が、処理要求制御手段１０２に渡された場合の動作を説明する。
【０１０６】
この場合、処理要求制御手段１０２は、一括排他情報登録要求であることから、一括排他情報登録要求に含まれる一括して排他制御を行うインデックス名ＩＤＸ、該当インデックスに対して一括排他資源を２階層で、一括排他情報管理表１０７に登録する。一括排他情報管理表１０７の登録が終了したら、一括排他情報の一括排他情報管理表１０７への登録が終了した旨を、利用者端末１０１に返却する。図９は、一括排他情報登録要求が終了した後の一括排他情報管理表１０７を示している。
（動作例２）
次に、図９のような一括排他情報管理表１０７の状態の時に、利用者端末１０１から、一括排他情報を削除するインデックス名Ｉである一括排他情報削除要求が、処理要求制御手段１０２に渡された場合の動作を説明する。
【０１０７】
この場合、処理要求制御手段１０２は、一括排他情報削除要求であることから、一括排他情報削除要求に含まれる一括排他情報を削除するインデックス名Ｉを元に、該当するインデックスに関する一括排他情報を一括排他情報管理表１０７から削除する。一括排他情報管理表１０７からの削除が終了したら、一括排他情報管理表１０７からの一括排他情報の削除が終了した旨を、利用者端末１０１に返却する。図１０は、一括排他情報削除要求が終了した後の一括排他情報管理表１０７を示している。
（動作例３）
次に、図７のような一括排他情報管理表１０７の状態で、利用者端末１０１からインデックスＩに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡された時の動作について説明する。
【０１０８】
まず、利用者端末１０１からインデックスＩに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡される。処理要求制御手段１０２は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名Ｉを排他資源決定手段１０３に渡す。排他資源決定手段１０３は、処理要求制御手段１０２から渡されたインデックス名Ｉから該当する最上位インデックスブロック番号１を求め（ステップＳ５０１）、処理要求制御手段１０２に最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。処理要求制御手段１０２は、最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【０１０９】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨、および最上位インデックスブロック番号１の制御情報を受け取ったら、排他制御を行うために排他資源であるブロック番号１、排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う（ステップＳ５０２）。
【０１１０】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号１、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【０１１１】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号１に対応する最上位インデックスブロック３０１のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【０１１２】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号４の最上位インデックスブロック３０１で、階層番号１の最下位インデックスブロックではない（ステップＳ５０４のノー）。このため、処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段１０３に渡す。
【０１１３】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、一括資源が確定していないので（ステップＳ５０６のノー）、インデックス名Ｉから図７に示す一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する（ステップＳ８０１）。
【０１１４】
この場合、図７に示すようにインデックス名Ｉが一括排他情報管理表１０７で管理されているので（ステップＳ８０１のイエス）、これに対応して登録された一括排他情報管理表１０７の一括排他資源を４階層までにするという情報を参照して、処理要求制御手段１０２から渡されるブロックイメージの階層番号４に相当する階層数４と比較する（ステップＳ８０２）。
【０１１５】
この場合、一括排他情報管理表１０７で管理している階層数４がブロックイメージの階層数４以上であるので（ステップＳ８０２のイエス）、一括排他資源が確定しているとする（ステップＳ８０３）。そして、インデックス検索条件であるインデックスレコード値Ｂ〜Ｇから、下位のインデックスブロック番号を求め（ステップＳ５１２）、該当ブロック番号５、上位のブロック番号１、および一括排他資源が確定している旨の制御情報を処理要求制御手段１０２に渡す。この後の処理は、第１の実施の形態と変わらないので、説明は省略する。
（動作例４）
次に、図１１のような一括排他情報管理表１０７の状態で、利用者端末１０１からインデックスＩに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡された時の動作について説明する。
【０１１６】
まず、利用者端末１０１からインデックスＩに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡される。処理要求制御手段１０２は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名Ｉを排他資源決定手段１０３に渡す。排他資源決定手段１０３は、処理要求制御手段１０２から渡されたインデックス名Ｉから該当する最上位インデックスブロック番号１を求め（ステップＳ５０１）、処理要求制御手段１０２に最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。処理要求制御手段１０２は、最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【０１１７】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨、および最上位インデックスブロック番号１の制御情報を受け取ったら、排他制御を行うために排他資源であるブロック番号１、排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う（ステップＳ５０２）。
【０１１８】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号１、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。一方、すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【０１１９】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号１に対応する最上位インデックスブロック３０１のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【０１２０】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号４の最上位インデックスブロック３０１で、階層番号１の最下位インデックスブロックではない（ステップＳ５０４のノー）。このため、処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段１０３に渡す。
【０１２１】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、一括資源が確定していないので（ステップＳ５０６のノー）、インデックス名Ｉから図１１に示す一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する（ステップＳ８０１）。
【０１２２】
この場合、図１１に示すようにインデックス名Ｉが一括排他情報管理表１０７で管理されているので（ステップＳ８０１のイエス）、これに対応して登録された一括排他情報管理表１０７の一括排他資源を２階層までにするという情報を参照して、処理要求制御手段１０２から渡されるブロックイメージの階層番号４に相当する階層数４と比較する（ステップＳ８０２）。
【０１２３】
その結果、一括排他情報管理表１０７で管理している階層数２がブロックイメージの階層数４より小さいので（ステップＳ８０２のノー）、インデックス検索条件であるインデックスレコード値Ｂ〜Ｇから、その検索条件のインデックス値Ｂ〜Ｇが含まれる下位ブロックのブロック番号５を求める（ステップＳ５０７）。この後の処理は、第１の実施の形態と変わらないので、説明は省略する。
（動作例５）
次に、図１０のような一括排他情報管理表１０７の状態で、利用者端末１０１からインデックスＩに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡された時の動作について説明する。
【０１２４】
まず、利用者端末１０１からインデックスＩに対する検索条件（インデックスレコード値ＢからＧまで）のインデックス検索要求が、処理要求制御手段１０２に渡される。処理要求制御手段１０２は、一括して排他制御を行うための排他資源である最上位インデックスブロック番号を取得するためにインデックス名Ｉを排他資源決定手段１０３に渡す。排他資源決定手段１０３は、処理要求制御手段１０２から渡されたインデックス名Ｉから該当する最上位インデックスブロック番号１を求め（ステップＳ５０１）、処理要求制御手段１０２に最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報を処理要求制御手段１０２に渡す。処理要求制御手段１０２は、最上位インデックスブロック番号１、および一括排他資源が確定していない旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【０１２５】
インデックスファイルアクセス手段１０４は、処理要求制御手段１０２から一括排他資源が確定していない旨、および最上位インデックスブロック番号１の制御情報を受け取ったら、排他制御を行うために排他資源であるブロック番号１、排他制御する旨の制御情報を排他制御手段１０５に渡す。排他制御手段１０５は、渡された制御情報に基づいて該当ブロックに対して排他制御を行う（ステップＳ５０２）。
【０１２６】
排他制御手段１０５は、インデックスファイルアクセス手段１０４からブロック番号１、排他制御する旨の制御情報を受け取ったら、該当ブロックが排他制御されていない場合は、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。すでに該当ブロックが排他制御されている場合は、排他制御が解除されるまで待ち、排他制御が解除されたら、該当ブロックを取り出してよい旨の制御情報をインデックスファイルアクセス手段１０４に渡す。
【０１２７】
インデックスファイルアクセス手段１０４は、排他制御手段１０５から該当ブロックを取り出してよい旨の制御情報を受け取ったら、その制御情報に基づいてインデックスブロック番号１に対応する最上位インデックスブロック３０１のブロックイメージをインデックスファイル１０６から取り出し（ステップＳ５０３）、そのブロックイメージを処理要求制御手段１０２に返却する。
【０１２８】
処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージが最下位インデックスブロックであるか否かをその階層番号に基づいて判断する（ステップＳ５０４）。この場合、該当インデックスブロックは、階層番号４の最上位インデックスブロック３０１で、階層番号１の最下位インデックスブロックではない（ステップＳ５０４のノー）。このため、処理要求制御手段１０２は、インデックスファイルアクセス手段１０４から渡されたブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を排他資源決定手段１０３に渡す。
【０１２９】
排他資源決定手段１０３は、処理要求制御手段１０２からブロックイメージ、インデックス検索条件、一括排他資源が確定していない旨の制御情報を受け取ったら、一括資源が確定していないので（ステップＳ５０６のノー）、インデックス名Ｉから図１０に示す一括排他情報管理表１０７に管理されている一括して排他制御を行うインデックス名にあるか否かを確認する（ステップＳ８０１）。その結果、図１０に示すように一括排他情報管理表１０７はインデックス名Ｉを管理していないので、インデックス検索条件であるインデックスレコード値Ｂ〜Ｇから、その検索条件のインデックス値Ｂ〜Ｇが含まれる下位ブロックのブロック番号５を求める（ステップＳ５０７）。この後の処理は、第１の実施の形態と変わらないので、説明は省略する。
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
【０１３０】
図１２は、本実施の形態のインデックスファイル検索装置のハードウェア構成の一例を示すブロック図であり、インデックスファイル検索装置を構成するコンピュータ１２０１と、インデックスファイル検索プログラムが記憶された記憶媒体１２０２とから構成されている。コンピュータ１２０１には、ＣＰＵ、メモリ（ＲＡＭ／ＲＯＭ）、各種入出力装置（例えば、表示装置、入力装置、通信装置等）等が搭載される。記憶媒体１２０２は、磁気ディスク、半導体メモリ、その他の記録媒体である。
【０１３１】
記憶媒体１２０２に記憶されたインデックスファイル検索プログラムは、コンピュータ１２０１に読み込まれ、コンピュータ１２０１の動作を制御することで、コンピュータ１２０１上に、図６に示した処理要求制御手段１０２、排他資源決定手段１０３、インデックスファイルアクセス手段１０４、排他制御手段１０５を実現する。
【０１３２】
以上説明したように、上記の各実施の形態によれば、インデックスの検索処理を行う時は、与えられた条件に関係するインデックスのみに局所化した全体として１つの排他単位（例えば、インデックスの中間位インデックスブロック）を排他資源決定手段１０３が設定して、排他制御を行う排他制御手段１０５を使用して排他制御を行い、インデックスファイルをアクセスしてブロックイメージを取り出す、もしくは排他制御を行わないでインデックスファイルをアクセスしてブロックイメージを取り出すインデックスファイルアクセス手段１０４とを備える。これにより、一括して排他制御を行い、排他制御のオーバヘッドを小さくして、インデックスに対する検索処理が十分な処理速度を得るとともに、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないように動作する。
【０１３３】
この効果は、例えばデータベースシステムの利用形態のうち、オンライン処理等の主要となる処理では検索処理が主体で、しかもインデックスだけを検索することによって求める情報を得るような処理に用いるインデックスがあり、そのインデックスを利用することで検索処理のスループットを重視するシステム利用形態において、最大限に発揮させることができる。すなわち、このような利用形態において、インデックスに対して条件検索処理を行う場合、与えられた条件に関係するインデックスのみに局所化して全体として１つの排他単位（例えば、インデックスの中間位インデックスブロック）を設定することによって一括して排他制御を行うことにより、中間位インデックスブロック、最下位インデックスブロックなどは排他制御を行わず、排他制御によるオーバヘッドを小さくして、インデックスに対する検索処理の十分な処理速度を得るとともに、条件に関係しないインデックス部分に対する他の検索、更新処理のスループットに影響を与えないことを可能にする。
【０１３４】
なお、前述した特許文献１では、インデックスの最上位レベルに対して単純に排他制御を行うため、その影響範囲がインデックス全体になり、検索処理のスループットを優先し、同時走行性は考慮していない。これに対し、本発明では検索条件から関係するインデックス部分だけに絞って排他制御を行うため、その影響範囲がインデックス全体と比べると格段に少なくなり、検索処理のスループットと同時に同時走行性も考慮に入れており、この点からも特許文献１にはない効果を得ることができる。
【０１３５】
以上、本発明の実施の形態を詳細に説明したが、本発明は、代表的に例示した上述の実施の形態に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、本発明の要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変形例や変更例も本発明の権利範囲に属するものである。
【０１３６】
また、本実施の形態に係るインデックスファイル検索装置を構成する各手段の少なくとも一部の機能を、プログラムコードを用いて実現する場合、かかるプログラムコード及びこれを記録するコンピュータ読み取り可能な記録媒体は、本発明の範疇に含まれる。この場合のプログラムコードは、オペレーティングシステムや他のアプリケーションソフト等と共同して上記機能が実現される場合は、それらのプログラムコードも含まれる。また、記録媒体としては、ハードディスクやＲＯＭ（Read Only Memory）のほか、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード等を用いることができる。
【産業上の利用可能性】
【０１３７】
本発明は、データベースのインデックスファイルに対する検索要求を処理するインデックスファイル検索装置、検索方法、検索プログラム及びこれを記録したコンピュータ読み取り可能な記録媒体の用途に利用できる。
【図面の簡単な説明】
【０１３８】
【図１】本発明の第１の実施の形態に係るインデックスファイル検索装置の全体構成を示すブロック図である。
【図２】インデックスの構造を示す図である。
【図３】インデックスの構造例を示す図である。
【図４】ブロックとレコードの関係を示す図である。
【図５】第１の実施の形態のインデックス検索要求時の動作を示す流れ図である。
【図６】本発明の第２の実施の形態に係るインデックスファイル検索装置の全体構成を示すブロック図である。
【図７】第２の実施の形態の一括排他情報管理表の内容例を示す図である。
【図８】第２の実施の形態のインデックス検索要求時の動作を示す流れ図である。
【図９】第２の実施の形態の一括排他情報管理表の内容例を示す図である。
【図１０】第２の実施の形態の一括排他情報管理表の内容例を示す図である。
【図１１】第２の実施の形態の一括排他情報管理表の内容例を示す図である。
【図１２】本発明の第３の実施の形態に係るインデックスファイル検索装置の全体構成を示すブロック図である。
【符号の説明】
【０１３９】
１０１  利用者端末
１０２  処理要求制御手段
１０３  排他資源決定手段
１０４  インデックスファイルアクセス手段
１０５  排他制御手段
１０６  インデックスファイル
１０７  一括排他情報管理表
１２０１  コンピュータ
１２０２  記録媒体
【図１】
0004508157.tif 000002
【図２】
0004508157.tif 000003
【図３】
0004508157.tif 000004
【図４】
0004508157.tif 000005
【図５】
0004508157.tif 000006
【図６】
0004508157.tif 000007
【図７】
0004508157.tif 000008
【図８】
0004508157.tif 000009
【図９】
0004508157.tif 000010
【図１０】
0004508157.tif 000011
【図１１】
0004508157.tif 000012
【図１２】
0004508157.tif 000013