(57)【要約】【課題】多重にデータ読出し要求を発行可能なデータベース処理システムにおける問合せ結果のソートを高速化する。【解決手段】データと当該データの格納位置が所定の順序で記録されている格納位置情報が格納された記憶装置から要求されたデータを出力するデータベース処理システムで、並列して処理可能なタスクによって必要なデータを記憶装置から取得し、第１タスクで取得したデータに基づいて実行される第２タスクが存在しない場合には、第１タスクよりも先行して実行された第３タスクで要求されたデータがすべて取得されたか否かを判定し、第３タスクで要求されたデータがすべて取得済みの場合には第１タスクで取得したデータを出力し、一部のデータが取得されていない場合には、第３タスクで要求されたデータがすべて取得されるまで一時バッファに第１タスクで取得したデータを保持し、その後、出力する。【選択図】図１
2010186391.tif 000002
【特許請求の範囲】
【請求項１】
外部から受け付けた問合せ要求に基づいて問合せ結果全体を出力する計算機と、前記問合せ要求により出力される対象であるデータを格納するストレージシステムと、を含み、
前記計算機は、前記ストレージシステムに接続される第１インタフェースと、前記第１インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ストレージシステムは、前記計算機に接続される第２インタフェースと、前記第２インタフェースに接続される制御装置と、前記制御装置に接続される記憶装置と、を備え、
前記記憶装置には、前記データ、及び前記データの格納位置が所定の順序で記録されている格納位置情報が格納され、
たデータベース処理システムにおいて、
前記計算機は、
前記格納位置情報に記録された値の順序に従って問合せ結果を出力する問合せ要求を受け付け、前記問合せ要求に基づいて前記データを取得する複数個のデータ読み出し要求に対する前記格納位置情報に記録された値の順序関係を記憶し、前記データ読み出し要求を前記ストレージシステムに送信し、
前記ストレージシステムは、
前記計算機から受信した個々の前記データ読み出し要求に対し、前記受信したデータ読み出し要求に基づく取得されたデータを前記計算機に送信し、
前記計算機は、
前記送信した複数のデータ読出し要求がすべて完了する前に、取得済の部分的な前記取得データ中に次に出力すべき問合せ結果が存在するかを前記順序関係により確認し、前記次に出力すべきデータが存在する場合には前記問合せ結果の出力を開始することを特徴とするデータベース処理システム。
【請求項２】
前記メモリには、前記問合せ要求に基づいて前記ストレージシステムから取得されたデータから生成される問合せ結果を一時的に保持する一時バッファが含まれ、
前記計算機は、
前記メモリ上にある、問合せ要求を受付け、前記ストレージシステムへデータ読出し要求を行うことで問合せ結果全体を生成し、出力するデータベース管理システムをプロセッサで実行しており、
前記データベース管理システムは、前記問合せ要求を受けつけ、問合せ結果を生成するための手順である問合せプランを生成する問合せ受付部と、前記問合せプランを実行し問合せ結果全体を生成する問合せ実行部を持ち、
前記問合せプランは、前記データ又は前記格納位置情報にアクセスするオペレーションによって構成され、
前記問合せ実行部は、
前記問合せプランを構成するオペレーションをデータごとに並列して実行することで前記データを取得する複数個のデータ読出し要求を前記ストレージシステムに送信し、その結果得られる前記データから問合せ結果を生成するオペレーション実行部を含み、
前記問合せ実行部は、前記問合せ要求により指定される順序関係を示すためのソート契機情報を格納位置情報及びオペレーションの処理順序に基づいて生成するソート契機情報付与部と、前記問合せ要求の指示に従い問合せ結果を出力する部分ソート実施部を含み、
前記オペレーション実行部は、生成した問合せ結果と対応するソート契機情報を部分ソート実施部に出力し、問合せ結果を生成せずに終了した処理のソート契機情報を部分ソート実施部に出力し、
前記部分ソート実施部は、
次に出力すべきソート契機情報の値を保持する出力判定情報をメモリ上に保持し、
前記ソート判定情報の初期値には、一番最初に出力すべきソート契機情報の値を設定し、
前記オペレーション実施部から出力される問合せ結果とソート契機情報の組又はソート契機情報を受け取り、前記ソート契機情報と前記出力判定情報を比較し、
前記ソート契機情報と前記出力判定情報が異なった場合、前記一時バッファに前記ソート契機情報と前記問合せ結果の組である一時バッファ要素として格納し、
前記ソート契機情報と前記出力判定情報が同じである場合、対応する前記問合せ結果があれば前期問合せ結果を出力し、前記出力判定情報を次に出力すべきソート契機情報の値に更新し、更新後の前記出力判定情報と同じソート契機情報を含む一時バッファ要素を前記一時バッファから探し、
前記一時バッファ要素がある場合、一時バッファ要素に問合せ結果があれば前記問合せ結果を出力し、前記出力判定情報を次に出力すべきソート契機情報の値に更新し、再度更新後の前記出力判定情報と同じソート契機情報を含む一時バッファ要素を前記一時バッファから探し、前記出力判定情報と同じソート契機情報を含む一時バッファ要素が見つからなくなるまで繰り返す、ことを特徴とする請求項１に記載されたデータベース処理システム。
【請求項３】
前記オペレーション実行部は、並列に動作可能な複数のタスクによりオペレーションを前記データ又は前記格納位置情報ごと独立に実行することで問合せ結果を生成し、
前記タスクは、オペレーションを実行している前記データ又は前記格納位置情報に対応するソート契機情報をソート契機情報付与部から取得し、問合せ結果を完成させる場合は、問合せ結果とソート契機情報を部分ソート実施部に出力し、問合せ結果を生成せずに終了する場合は、ソート契機情報を部分ソート実施部に出力し、
前記ソート契機情報は、
前記問合せプランにおけるオペレーションの先行関係に基づいて階層化され、前記データ又は前記格納位置情報に対するアクセス順序に対応する値が階層ごとに連結された構造となっており、
さらに、各階層における最後のアクセスを示す情報を含むことを特徴とする請求項２に記載されたデータベース処理システム。
【請求項４】
前記計算機は、前記一時バッファに保持されたデータの容量が所定の第１の閾値を超えた場合には、前記計算機からアクセス可能な外部記憶装置に割り当てられた一時記憶領域を利用して、前記受け付けられた問合せの結果をソートすることを特徴とする請求項２に記載されたデータベース処理システム。
【請求項５】
前記計算機は、前記所定の第１の閾値の設定を受け付けることを特徴とする請求項４に記載されたデータベース処理システム。
【請求項６】
前記計算機は、前記外部記憶装置の指定を受け付けることを特徴とする請求項４に記載されたデータベース処理システム。
【請求項７】
前記メモリには、前記プロセッサによって実行されているタスクを管理するタスク管理情報が記憶され、
前記計算機は、
前記一時バッファに保持されたデータの容量が所定の第２の閾値を超えた場合には、前記一時バッファに保持されたソート契機情報よりも先に出力すべきソート契機情報を保持するタスクよりも先行して実行されたタスクを前記タスク管理情報から選択し、
前記選択されたタスクの実行を、他に実行されているタスクよりも優先させることを特徴とする請求項３に記載されたデータベース処理システム。
【請求項８】
前記計算機は、前記所定の第２の閾値の設定を受け付けることを特徴とする請求項７に記載されたデータベース処理システム。
【請求項９】
前記メモリには、前記プロセッサによって実行されているタスクを管理するタスク管理情報が記憶され、
前記計算機は、
前記一時バッファに保持されたデータの容量が所定の第３の閾値を超えた場合には、前記一時バッファに保持されたソート契機情報よりも先に出力すべきソート契機情報を保持するタスクよりも先行して実行されたタスクを前記タスク管理情報から選択し、
前記選択されたタスクで発行されたデータ読み出し要求を他のタスクで発行されたデータ読み出し要求よりも高い優先度で再発行することを特徴とする請求項３に記載されたデータベース処理システム。
【請求項１０】
前記計算機は、前記所定の第３の閾値の設定を受け付けることを特徴とする請求項９に記載されたデータベース処理システム。
【請求項１１】
外部から受け付けた問合せ要求に基づいて問合せ結果全体を出力する計算機であって、前記問合せ要求により出力される対象であるデータを格納するストレージシステムにネットワークを介して接続される第１インタフェースと、前記第１インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ストレージシステムは、前記計算機に接続される第２インタフェースと、前記第２インタフェースに接続される制御装置と、前記制御装置に接続される記憶装置と、を備え、
前記記憶装置には、前記データ、及び前記データの格納位置が所定の順序で記録されている格納位置情報が格納され、
たデータベース処理システムにおいて、
前記プロセッサは、
前記格納位置情報に記録された値の順序に従って問合せ結果を出力する問合せ要求を受け付け、前記問合せ要求に基づいて前記データを取得する複数個のデータ読み出し要求に対する前記格納位置情報に記録された値の順序関係を記憶し、前記データ読み出し要求を前記第１インターフェースを介して前記ストレージシステムに送信し、
前記ストレージシステムから、前記計算機から受信した個々の前記データ読み出し要求に基づき、前記ストレージシステムが格納するデータから取得されたデータを前記第１インターフェースを介して受信し、
前記送信した複数のデータ読出し要求がすべて完了する前に、取得済の部分的な前記取得データ中に次に出力すべき問合せ結果が存在するかを前記順序関係により確認し、前記次に出力すべきデータが有る場合には前記問合せ結果の出力を開始することを特徴とする計算機。
【請求項１２】
前記メモリには、前記問合せ要求に基づいて前記ストレージシステムから取得されたデータから生成される問合せ結果を一時的に保持する一時バッファが含まれ、
前記プロセッサは、
前記メモリ上にある、問合せ要求を受付け、前記ストレージシステムへデータ読出し要求を行うことで問合せ結果全体を生成し、出力するデータベース管理システムを実行し、
前記データベース管理システムは、前記問合せ要求を受けつけ、問合せ結果を生成するための手順である問合せプランを生成する問合せ受付部と、前記問合せプランを実行し問合せ結果全体を生成する問合せ実行部を持ち、
前記問合せプランは、前記データ又は前記格納位置情報にアクセスするオペレーションによって構成され、
前記問合せ実行部は、
前記問合せプランを構成するオペレーションをデータごとに並列して実行することで前記データを取得する複数個のデータ読出し要求を前記ストレージシステムに送信し、その結果得られる前記データから問合せ結果を生成するオペレーション実行部を含み、
前記問合せ実行部は、前記問合せ要求により指定される順序関係を示すためのソート契機情報を格納位置情報及びオペレーションの処理順序に基づいて生成するソート契機情報付与部と、前記問合せ要求の指示に従い問合せ結果を出力する部分ソート実施部を含み、
前記オペレーション実行部は、生成した問合せ結果と対応するソート契機情報を部分ソート実施部に出力し、問合せ結果を生成せずに終了した処理のソート契機情報を部分ソート実施部に出力し、
前記部分ソート実施部は、
次に出力すべきソート契機情報の値を保持する出力判定情報をメモリ上に保持し、
前記ソート判定情報の初期値には、一番最初に出力すべきソート契機情報の値を設定し、
前記オペレーション実施部から出力される問合せ結果とソート契機情報の組又はソート契機情報を受け取り、前記ソート契機情報と前記出力判定情報を比較し、
前記ソート契機情報と前記出力判定情報が異なった場合、前記一時バッファに前記ソート契機情報と前記問合せ結果の組である一時バッファ要素として格納し、
前記ソート契機情報と前記出力判定情報が同じである場合、対応する前記問合せ結果があれば前期問合せ結果を出力し、前記出力判定情報を次に出力すべきソート契機情報の値に更新し、更新後の前記出力判定情報と同じソート契機情報を含む一時バッファ要素を前記一時バッファから探し、
前記一時バッファ要素がある場合、一時バッファ要素に問合せ結果があれば前記問合せ結果を出力し、前記出力判定情報を次に出力すべきソート契機情報の値に更新し、再度更新後の前記出力判定情報と同じソート契機情報を含む一時バッファ要素を前記一時バッファから探し、前記出力判定情報と同じソート契機情報を含む一時バッファ要素が見つからなくなるまで繰り返す、ことを特徴とする請求項１１に記載された計算機。
【請求項１３】
前記オペレーション実行部は、並列に動作可能な複数のタスクによりオペレーションを前記データ又は前記格納位置情報ごと独立に実行することで問合せ結果を生成し、
前記タスクは、オペレーションを実行している前記データ又は前記格納位置情報に対応するソート契機情報をソート契機情報付与部から取得し、問合せ結果を完成させる場合は、問合せ結果とソート契機情報を部分ソート実施部に出力し、問合せ結果を生成せずに終了する場合は、ソート契機情報を部分ソート実施部に出力し、
前記ソート契機情報は、
前記問合せプランにおけるオペレーションの先行関係に基づいて階層化され、前記データ又は前記格納位置情報に対するアクセス順序に対応する値が階層ごとに連結された構造となっており、
さらに、各階層における最後のアクセスを示す情報を含むことを特徴とする請求項１２に記載された計算機。
【請求項１４】
前記メモリには、前記プロセッサによって実行されているタスクを管理するタスク管理情報が記憶され、
前記プロセッサは、
前記一時バッファに保持されたデータの容量が所定の閾値を超えた場合には、前記一時バッファに保持されたソート契機情報よりも先に出力すべきソート契機情報を保持するタスクを前記タスク管理情報から選択し、
前記選択されたタスクで発行されたデータ読み出し要求を他のタスクで発行されたデータ読み出し要求よりも高い優先度で再発行することを特徴とする請求項１３に記載された計算機。
【請求項１５】
外部から受け付けた問合せ要求に基づいて問合せ結果全体を出力する計算機と、問合せ要求により出力される対象であるデータを格納するストレージシステムとを含むシステムにおけるデータベース処理方法であって、
前記計算機は、前記格納位置情報に記録された値の順序に従って問合せ結果を出力する問合せ要求を受け付け、
前記計算機は、前記問合せ要求に基づいて前記データを取得する複数個のデータ読み出し要求に対する前記格納位置情報に記録された値の順序関係を保持し、
前記計算機は、前記データ読み出し要求を前記ストレージシステムに送信し、
前記ストレージシステムは、前記計算機から受信した個々の前記データ読み出し要求に対し、前記受信したデータ読み出し要求に基づく取得されたデータを前記計算機に送信し、
前記計算機は、前記送信した複数のデータ読出し要求がすべて完了する前に、取得済の部分的な前記取得データ中に次に出力すべき問合せ結果が存在するかを前記順序関係により確認し、前記次に出力すべきデータが有る場合には前記問合せ結果の出力を開始する、ことを特徴とするデータベース処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースからデータを取得する技術に関し、特に、ソートされたデータを取得する技術に関する。
【背景技術】
【０００２】
近年、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）の登場によってトランザクションデータ及びトレーサビリティデータなどを格納するためのデータベースの規模が急速に拡大している。このような大規模なデータベースを高速に検索するニーズがより一層高まっている。
【０００３】
大規模なデータベースを高速に検索するシステムには、二次記憶装置へデータ読み出し要求を多重に発行するデータベース処理システムがある。問合せ処理の多くを占める二次記憶装置に対する入出力（Ｉ／Ｏ）処理に着目し、二次記憶装置へデータ読み出し要求を多重に発行することで処理時間を短縮したデータベース処理システムである（例えば、特許文献１参照）。
【０００４】
特許文献１に開示されているデータベース処理システムは、データを必要とする都度、データを取得するためのタスクを生成し、生成されたタスクの実行時に必要に応じて、データ読み出し要求を発行する。データの読み出しを要求するタスクが複数で並列に処理されるため、データ読み出し要求が二次記憶装置に多重に発行される。
【０００５】
データベース処理システムでは、データ読み出し要求の完了順に処理が進行する。通常、多重に二次記憶装置へデータ読み出し要求を発行した場合、読み出しの完了順序は実行のたびに毎回異なるため、問合せ結果が生成される順序も毎回異なるといった特徴を持つ。問合せの結果出力順序が指定されていなければ、実行のたびに問合せ結果の出力順序が違うことを確認することができる。
【０００６】
また、高速な検索を実現する手段には、問合せ処理のソート処理に着目した技術がある。ソート処理は、問合せ結果を特定の出力順序にしたり、問合せ結果を集計する際の前処理として使われたりする。データベースが大規模になればソート処理のコストも大きくなるため、ソート処理に着目した高速化技術も重要である。
【０００７】
ソート処理に着目した高速化技術には、ソートキャンセルと呼ばれる技術が知られている。一般にデータベース処理システムでは、特定の順序でデータを読み出すアクセス手段を備えている。例えば、少ないデータ読み出し要求でデータを取得するための索引を用いた場合、索引のキーの順にデータをアクセスできる。また、クラスタ表のアクセスではクラスタキーによる順序でデータにアクセスできる。これはアクセス手段によって保障されるデータの読み出し順序を利用して、その後のソート処理を回避するものである。さらに、ソートキャンセルでは、検索時にソート処理が含まれないため、データの読み出しがすべて終了する前に問合せ結果を出力できる利点がある。特に、上位ｎ件のみ取得するｔｏｐ−ｋクエリの場合に効果が高い。なお、ソートキャンセルの詳細については、非特許文献１に説明されている。
【特許文献１】特開２００７−３４４１４号公報
【非特許文献１】Hector Garcia-Molina著、「Database System Implementation」、Prentice Hall、1999年、P.258,417-418
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、二次記憶装置へデータ読み出し要求を多重に発行するデータベース処理システムでは、ソートキャンセルを適用することができないという問題がある。具体的には、特定の順序でデータを読み出し可能なアクセス手段を適用しても、データ読み出し要求の発行順だけが保障され、データ読み出し要求の完了順は実行のたびに毎回異なってしまうため、問合せ結果の生成順序が保障されない。したがって、問合せ結果を特定の出力順序にしたり、問合せ結果を集計する際の前処理を実行したりするためには、問合せ結果全体を対象としたソート処理が必要となる。
【０００９】
本発明は、二次記憶装置へデータ読み出し要求を多重に発行するデータベース処理システムにおいて、問合せ結果全体を対象としたソート処理を実行せずに問合せ結果をソートすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な一形態によれば、外部から受け付けた問合せ要求に基づいて問合せ結果全体を出力する計算機と、前記問合せ要求により出力される対象であるデータを格納するストレージシステムと、を含み、前記計算機は、前記ストレージシステムに接続される第１インタフェースと、前記第１インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、前記ストレージシステムは、前記計算機に接続される第２インタフェースと、前記第２インタフェースに接続される制御装置と、前記制御装置に接続される記憶装置と、を備え、前記記憶装置には、前記データ、及び前記データの格納位置が所定の順序で記録されている格納位置情報が格納されたデータベース処理システムにおいて、前記計算機は、前記格納位置情報に記録された値の順序に従って問合せ結果を出力する問合せ要求を受け付け、前記問合せ要求に基づいて前記データを取得する複数個のデータ読み出し要求に対する前記格納位置情報に記録された値の順序関係を記憶し、前記データ読み出し要求を前記ストレージシステムに送信し、前記ストレージシステムは、前記計算機から受信した個々の前記データ読み出し要求に対し、前記受信したデータ読み出し要求に基づく取得されたデータを前記計算機に送信し、前記計算機は、前記送信した複数のデータ読出し要求がすべて完了する前に、取得済の部分的な前記取得データ中に次に出力すべき問合せ結果が存在するかを前記順序関係により確認し、前記次に出力すべきデータが有る場合には前記問合せ結果の出力を開始する。
【発明の効果】
【００１１】
本発明の一形態によれば、問合せ結果全体を対象としたソート処理を実行することなく、問合せ結果をソートすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明の実施の形態について説明する。本発明は、二次記憶装置に対してデータ読み出し要求を多重に発行することが可能なデータベース処理システムに適用される。
【００１３】
例えば、データベース処理システムを複数プロセスで動作する並列データベースと、単一プロセスで動作するシングルデータベースとに分類すると、二次記憶装置にデータ読み出し要求を多重に発行するシングルデータベースは本発明の対象となる。
【００１４】
また、並列データベースには、共有型と無共有型がある。共有型並列データベースは、システム全体で特定の順序でデータを読み出すことが可能なアクセス手段を備え、ソートキャンセルが実現可能であるため本発明の対象となる。
【００１５】
一方、無共有型並列データベースでは、システム全体で特定の順序でデータを読み出せるアクセス手段を備えていないため、システム全体におけるソートキャンセルを実現することができない。しかし、分割された個々のデータベースを対象とすれば、特定の順序でデータを読み出すアクセス手段を備えるため、個々のデータベースにおいてソートキャンセル実現可能である。したがって、個々のデータベースで二次記憶装置へデータ読み出し要求を多重に発行することが可能な無共有型並列データベースは本発明の対象となる。
【００１６】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の計算機システムの構成を示すブロック図である。
【００１７】
本発明の第１の実施の形態の計算機システムは、ホスト１０１及びストレージシステム１０３を含む。ホスト１０１及びストレージシステム１０３は、ネットワーク１０２を介して互いに接続される。
【００１８】
ホスト１０１は、ストレージシステム１０３にあるデータを管理するプログラムであるデータベース管理システム１３２を実行し、ホスト１０１内部のアプリケーション又は図示しないクライアント計算機などによって要求された問合せを処理し、問合せ結果を応答する。
【００１９】
ホスト１０１は、メモリ１１１、プロセッサ１１２及びインタフェース１１３を備える。メモリ１１１は、データベース管理システム１３２などのプログラム及び当該プログラムの実行に必要なデータを記憶する。プロセッサ１１２は、メモリ１１１に記憶されたプログラムを実行することによって、各種処理を実行する。
【００２０】
インタフェース１１３は、ネットワーク１０２に接続し、ストレージシステム１０３と通信する。ネットワーク１０２がストレージエリアネットワーク（ＳＡＮ）である場合には、インタフェース１１３はいわゆるホストバスアダプタ（ＨＢＡ）であってもよい。メモリ１１１に記憶されたプログラムが実行されると、必要に応じて、インタフェース１１３を介してストレージシステム１０３に入出力要求を発行する。
【００２１】
ネットワーク１０２は、例えば、ファイバーチャネル（ＦＣ）プロトコルが適用されるストレージエリアネットワーク（ＳＡＮ）であるが、その他の任意の形態のネットワークであってもよい。具体的には、ネットワーク１０２がインターネットプロトコル（ＩＰ）ネットワークであれば、ホスト１０１とストレージシステム１０３との間をｉＳＣＳＩプロトコルで通信するようにしてもよい。
【００２２】
ストレージシステム１０３は、ホスト１０１によって読み書きされるデータを格納し、ホスト１０１から送信された入出力要求に基づいて、データの書き込み又は読み出しを実行する。
【００２３】
ストレージシステム１０３は、インタフェース１２１、制御装置１２２及び記憶装置１２３を備える。インタフェース１２１は、ネットワーク１０２に接続される。制御装置１２２は、ホスト１０１から送信された入出力要求を処理する。
【００２４】
記憶装置１２３は、入出力要求によって読み書きされるデータを格納する。記憶装置１２３は、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。図１には、１つの記憶装置１２３がストレージシステム１０３に備えられているが、記憶装置１２３の数は任意である。また、複数の記憶装置１２３が備えられている場合には、ディスクアレイを構成するようにしてもよい。
【００２５】
メモリ１１１に記憶されるプログラムには、アプリケーションプログラム（ＡＰ）１３１、データベース管理システム１３２及びオペレーティングシステム（ＯＳ）１３３が含まれる。
【００２６】
ＡＰ１３１は、データベース管理システム１３２に問合せ要求を発行し、問合せ結果を受信する。本発明の第１の実施の形態ではデータベース管理システム１３２と同一の計算機でＡＰ１３１が実行されているが、ネットワークを介して接続された別の計算機でアプリケーションが実行される構成としてもよい。
【００２７】
データベース管理システム１３２は、要求された問合せで指定された条件に合致するデータをストレージシステム１０３から検索し、検索結果（問合せ結果）を要求元に応答する。また、データ（表１６１）に効率よくアクセスするための索引１６２がストレージシステム１０３の記憶装置１２３に格納されている。
【００２８】
データベース管理システム１３２には、関係モデルをベースとした関係データベース管理システム（ＲＤＢＭＳ）、又はオブジェクトモデルをベースとしたオブジェクト指向データベース管理システムがある。
【００２９】
ＲＤＢＭＳでは、レコードと呼ばれるデータを表１６１に格納し、少ないＩ／Ｏ要求でレコードにアクセスするための索引１６２を備える。索引１６２のデータ構造は、Ｂ木であったりハッシュであったりする。データに対する問合せはＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）によって記述される。ＳＱＬでは、問合せ結果の出力順序指定はＯｒｄｅｒ  ｂｙ句によって表現され、集計演算はＧｒｏｕｐ  ｂｙ句によって表現される。
【００３０】
なお、本発明の第１の実施の形態では、データベース管理システム１３２はネットワーク１０２を介して接続されたストレージシステム１０３に表１６１及び索引１６２を格納しているが、ホスト１０１に記憶装置が備えられている場合には、ホスト１０１内の記憶装置に格納してもよい。
【００３１】
ＯＳ１３３は、ホスト１０１の資源（プロセッサ１１２及びメモリ１１１）を管理するプログラムである。また、データベース管理システム１３２からの入出力要求を受け付け、ストレージシステム１０３に入出力要求を発行する。
【００３２】
ここで、さらに、データベース管理システム１３２の詳細な構成について説明すると、データベース管理システム１３２には、問合せ受付部１４１、問合せ実行部１４２、タスク管理部１４３、一時バッファ１４４及びＤＢバッファ１４５が備えられる。
【００３３】
問合せ受付部１４１は、ＡＰ１３１から要求された問合せに基づいて、問合せプランを生成する。問合せプランについては後述する。
【００３４】
問合せ実行部１４２は、問合せ受付部１４１によって生成された問合せプランを実行する。問合せ実行部１４２は、問合せ結果を生成するための基本的なデータベースオペレーション（以下、「ＯＰ」）を備えている。問合せプランとは、問合せに応じた結果を生成するために必要なＯＰを組み合わせた処理手順である。問合せ実行部１４２は、ＯＰ実行部１５３及び順序保障部１５１を備える。
【００３５】
タスク管理部１４３は、問合せプランを実行するためのタスクを管理する。
【００３６】
一時バッファ１４４は、部分的な問合せ結果を一時的に格納するために割り当てられた領域である。ＤＢバッファ１４５は、データアクセスを高速化するために、キャッシュされたデータが格納される。
【００３７】
ＯＰ実行部１５３は、問合せプランを実行する複数のタスクを生成し、生成されタスクを実行することによって、問合せ結果を生成する。各タスクを並列して実行することによって、ＯＳ１３３を介してストレージシステム１０３にデータ読み出し要求が多重に発行される。
【００３８】
また、ＯＰ実行部１５３は、ソート契機情報付与部１５４を備える。ソート契機情報付与部１５４は、処理対象のＯＰ及び取得されたデータの取得順序などの情報に基づいて、ソート契機情報を生成する。ソート契機情報とは、問合せ処理の階層構造及び索引の順序などに基づいて、データ読み出し要求ごとに読み出されたデータをソートするための情報である。生成されたソート契機情報は、問合せ結果の途中段階である中間結果と共に付与される。本発明の第１の実施の形態のソート契機情報の具体的な内容については、図７にて後述する。
【００３９】
順序保障部１５１は、問合せ結果の出力順序を特定の順序に並び替えるモジュールである。問合せ結果を特定の順序でＡＰ１３１に出力する場合には、順序保障部１５１がＡＰ１３１に問合せ結果を出力する。また、問合せ結果を集計する際の前処理に順序保障部１５１を利用する場合には、順序保障部１５１がＯＰ実行部１５３に対して問合せ結果を出力する場合がある。
【００４０】
順序保障部１５１は、部分ソート実施部１５２を備える。部分ソート実施部１５２は、問合せ結果に付与されているソート契機情報及び特定のＯＰの終了を示すソート契機情報に基づいて、問合せ結果を部分的にソートする。
【００４１】
図２は、本発明の第１の実施の形態の問合せ受付部１４１によって実行されるソート処理を決定する手順を示すフローチャートである。
【００４２】
本処理は、問合せ受付部１４１において問合せプランにソート処理を追加する際の処理である。要求された問合せ要求に、問合せ結果の出力順序が指定されている場合、集計処理が含まれている場合にソート処理が追加される。
【００４３】
プロセッサ１１２は、まず、問合せ受付部１４１によって問合せ要求が受け付けられると、ソートキャンセル可能か否かを判定する（ステップ２０１）。ソートキャンセル可能か否かを判定する方法については、図４を参照しながら詳細を説明する。
【００４４】
プロセッサ１１２は、ソートキャンセル可能な場合には（ステップ２０１の結果が「Ｙ」）、ソート処理を問合せプランに追加せずに、ソートキャンセルしたことを示すソートキャンセルフラグを問合せプランに設定する（ステップ２０２）。
【００４５】
一方、プロセッサ１１２は、ソートキャンセルできない場合には（ステップ２０１の結果が「Ｎ」）、問合せプランにソート処理を追加する（ステップ２０３）。
【００４６】
続いて、さらに具体的に説明するために、図３Ａ、図３Ｂ及び図４を参照しながら、ソートキャンセル可能な問合せプランの例を説明する。ここで説明する例では、データベース管理システム１３２にＲＤＢＭＳを想定する。ＲＤＢＭＳに関するデータベースオペレーションの詳細は、非特許文献１などに記載されている。
【００４７】
図３Ａは、本発明の第１の実施の形態の具体例を説明するための表及び索引を定義するＳＱＬを示す図である。
【００４８】
図３Ａに示すように、本発明の第１の実施の形態のデータベースには、ｐａｒｔ表とｌｉｎｅｉｔｅｍ表が定義されている。
【００４９】
ｐａｒｔ表には、３つのカラム（Ｎａｍｅ、Ｂｒａｎｄ及びＰＩＤ）が含まれている。ｐａｒｔ表は、ＳＱＬ３０１を実行することによって生成される。また、ｌｉｎｅｉｔｅｍ表には、３つのカラム（ＰＩＤ、ＬｉｎｅＩＤ及びＯＩＤ）が含まれている。ｌｉｎｅｉｔｅｍ表は、ＳＱＬ３０２を実行することによって生成される。
【００５０】
さらに、ｐａｒｔ表には、Ｎａｍｅカラム及びＰＩＤカラムをキーとして、ｐａｒｔ＿ｉｎｄｅｘ索引が定義されている。ｐａｒｔ＿ｉｎｄｅｘ索引は、ＳＱＬ３０３を実行することによって生成される。同様に、ｌｉｎｅｉｔｅｍ表には、ＰＩＤカラム及びＬｉｎｅＩＤカラムをキーとして、ｌｉｎｅｉｔｅｍ＿ｉｎｄｅｘ索引が定義されている。ｌｉｎｅｉｔｅｍ＿ｉｎｄｅｘ索引は、ＳＱＬ３０４を実行することによって生成される。
【００５１】
図３Ｂは、本発明の第１の実施の形態のデータ検索用のＳＱＬの一例を示す図である。
【００５２】
ＳＱＬ３０５は、ｐａｒｔ表とｌｉｎｅｉｔｅｍ表をＰＩＤカラムで結合し、ｐａｒｔ表のＢｒａｎｄカラムの値が“ａｂｃ”であるデータを検索し、検索結果をｐａｒｔ表のＮａｍｅカラムとｌｉｎｅｉｔｅｍ表のＬｉｎｅＩＤカラムに基づいてソートするＳＱＬである。
【００５３】
図４は、本発明の第１の実施の形態のＳＱＬ３０５に基づいて生成された問合せプランの一例を示す図である。
【００５４】
図４に示す問合せプランは、ｐａｒｔ表とｌｉｎｅｉｔｅｍ表をネストループジョインする問合せプランである。
【００５５】
ＯＰ０（４０１）では、ｐａｒｔ＿ｉｎｄｅｘ索引に基づいて、Ｂｒａｎｄカラムの値が“ａｂｃ”であるｐａｒｔ表のレコードへのポインタを取得する。
【００５６】
ＯＰ１（４０２）では、ＯＰ０（４０１）で取得されたｐａｒｔ表のレコードへのポインタに基づいてｐａｒｔ表のレコードを取得する。
【００５７】
ＯＰ２（４０３）では、ＯＰ１（４０２）で取得されたｐａｒｔ表のレコードに含まれるＰＩＤカラムの値が、ｌｉｎｅｉｔｅｍ表のレコードに含まれるＰＩＤカラムの値と一致するｌｉｎｅｉｔｅｍ表のレコードへのポインタを取得する。
【００５８】
ＯＰ３（４０４）では、ＯＰ２（４０３）で取得されたｌｉｎｅｉｔｅｍ表のレコードへのポインタに基づいてｌｉｎｅｉｔｅｍ表のレコードを取得する。
【００５９】
ＳＱＬ３０５には、ｐａｒｔ表のＮａｍｅカラム、ｌｉｎｅｉｔｅｍ表のＬｉｎｅＩＤカラムの順でソートされた結果を出力するように指定されている。しかし、図４に示す問合せプランでは、最初にｐａｒｔ＿ｉｎｄｅｘ索引にアクセスし、その後にｌｉｎｅｉｔｅｍ＿ｉｎｄｅｘ索引にアクセスする。したがって、ｐａｒｔ表のＮａｍｅカラム、ｐａｒｔ表のＰＩＤカラム、ｌｉｎｅｉｔｅｍ表のＰＩＤカラム、ｌｉｎｅｉｔｅｍ表のＬｉｎｅＩＤカラムの順にアクセスされ、この順序で問合せ結果が整列される。このため、図４に示す問合せプランでは、ソート処理は不要、すなわち、ソートキャンセル可能と判定することができる。
【００６０】
このようにして問合せ受付部１４１によって生成された問合せプランは、問合せ実行部１４２に渡され、ＯＰ実行部１５３によって実行される。
【００６１】
図５は、本発明の第１の実施の形態の生成された問合せプランを実行する手順を示すフローチャートである。
【００６２】
本処理は、問合せ受付部１４１によって生成された問合せプランが受け付けられた後、問合せ実行部１４２のＯＰ実行部１５３によって実行される。
【００６３】
プロセッサ１１２は、まず、問合せ受付部１４１によって生成された問合せプランにソートキャンセルフラグが設定されているか否かを判定する（ステップ５０１）。
【００６４】
プロセッサ１１２は、問合せプランにソートキャンセルフラグが設定されていない場合には（ステップ５０１の結果が「ＯＦＦ」）、問合せプランの最初のＯＰ（図４に示した問合せプランの例では「ＯＰ０」）を実行する（ステップ５０２）。
【００６５】
一方、プロセッサ１１２は、問合せプランにソートキャンセルフラグが設定されている場合には（ステップ５０１の結果が「ＯＮ」）、問合せプランの最初のＯＰを、ソート契機情報を生成しながらＯＰを実行するソート契機情報生成・ＯＰ実行処理を行う（ステップ５０３）。ソート契機情報生成・ＯＰ実行処理の詳細については、図６にて後述する。
【００６６】
ステップ５０２及びステップ５０３で実行されるＯＰでは、二次記憶装置（ストレージシステム１０３）にデータ読み出し要求が多重に発行される。本発明の第１の実施の形態では、特許文献１に開示されているデータベース処理システムを例に説明する。
【００６７】
図６は、本発明の第１の実施の形態のソート契機情報生成・ＯＰ実行処理の手順を示すフローチャートである。
【００６８】
ソート契機情報生成・ＯＰ実行処理は、問合せ実行部１４２のＯＰ実行部１５３によって実行され、図５に示したフローチャートのステップ５０３の処理に対応する。
【００６９】
ソート契機情報生成・ＯＰ実行処理は、再帰的に実行され、実行時にはＯＰと対応するソート契機情報がタスクに設定される。また、ソート契機情報生成・ＯＰ実行処理が実行される場合には、初期値として、ＯＰには「ＯＰ０」が設定され、ソート契機情報には「０」が設定されている。
【００７０】
ソート契機情報生成・ＯＰ実行処理が実行されると、プロセッサ１１２は、まず、ソート契機情報生成処理を実行する（ステップ６０２）。ソート契機情報生成処理を実行することによって、新たなソート契機情報が生成される。ソート契機情報生成処理の詳細については図８にて後述する。
【００７１】
プロセッサ１１２は、次に、ＯＰで処理される対象のデータが残っているか否かを判定する（ステップ６０３）。ＯＰがインデックススキャンの場合には残りのインデックスエントリに対応し、ＯＰがテーブルスキャンの場合には未読のレコードに対応する。
【００７２】
プロセッサ１１２は、処理対象のデータが残っている場合には（ステップ６０３の結果が「Ｙ」）、新たにタスクを生成する（ステップ６０４）。ステップ６０４の処理で新しいタスクを生成したタスクを親タスクとし、ステップ６０４の処理で親タスクによって新たに生成されたタスクを子タスクとする。
【００７３】
続いて、プロセッサ１１２は、親タスクに保持されているＯＰ及びソート契機情報を生成した子タスクにコピーする（ステップ６０５）。ＯＰが子タスクに割り当てられると、子タスクでは当該ＯＰを処理するために独立して処理が開始され、親タスク側では再びソート契機情報の生成が開始される（ステップ６０６）。以上のように、ＯＰにおける処理対象のデータがすべて処理されるまで、ステップ６０２からステップ６０６までの処理を繰り返すことによって子タスクを動的に生成し、複数のタスクでＯＰを実行することができる（ステップ６２０）。
【００７４】
プロセッサ１１２は、処理対象のデータがなくなった場合には（ステップ６０３の結果が「Ｎ」）、ソート契機情報に終了フラグを設定する（ステップ６０７）。さらに、終了フラグが付与されたソート契機情報を順序保障部１５１に送信する（ステップ６０８）。
【００７５】
一方、子タスク側では、親タスクから独立して処理が開始されると、プロセッサ１１２は、ＯＰで割り当てられたデータを取得する（ステップ６１１）。このとき、必要に応じてストレージシステム１０３にデータ読み出し要求が送信される。
【００７６】
プロセッサ１１２は、データが取得されると、取得されたデータが選択条件に合致するか否かを判定する（ステップ６１２）。取得されたデータが選択条件に合致しない場合には（ステップ６１２の結果が「Ｎ」）、当該処理を実行したタスクによる問合せ結果は必要ない。このとき、問合せ結果は必要ないが、部分的なソート結果を出力するために、ソート契機情報を順序保障部１５１に送信する（ステップ６１３）。
【００７７】
プロセッサ１１２は、取得されたデータが選択条件に合致する場合には（ステップ６１２の結果が「Ｙ」）、処理中のタスクに割り当てられたＯＰの次に処理されるＯＰが存在するか否かを判定する（ステップ６１４）。
【００７８】
プロセッサ１１２は、次に処理されるＯＰが存在しない場合には（ステップ６１４の結果が「Ｎ」）、実行中のタスクに割り当てられたＯＰが最後のＯＰであるため、問合せ結果が生成されたことになる。この場合には、問合せ結果とともにソート契機情報を順序保障部１５１に送信する（ステップ６１５）。
【００７９】
プロセッサ１１２は、次のＯＰが存在する場合には（ステップ６１４の結果が「Ｙ」）、次のＯＰを設定してソート契機情報生成・ＯＰ実行処理を実行する（ステップ６１６）。このように、本処理は再帰的に実行され、生成された問合せプランにしたがって各ＯＰを順次処理する。
【００８０】
図７は、本発明の第１の実施の形態のソート契機情報生成処理によってソート契機情報が生成される過程を説明する図である。
【００８１】
図７には、図４に示した問合せプランを処理した結果、ソート契機情報生成処理によって生成されたソート契機情報が示されている。
【００８２】
データ８０１〜８１２は、各ＯＰでアクセスするデータ（インデックスのエントリ又はレコード）を示している。データ８０１〜８１２を接続する矢印は、動的に生成される複数のタスクでデータが取得される先行関係を示している。
【００８３】
ソート契機情報は、問合せプランにおけるＯＰの階層構造と各ＯＰでアクセスされたデータの順番（データアクセス番号）によって表現される。ＯＰでアクセスされたデータの順番は、データ格納位置と一致する。ソート契機情報は、階層構造に基づいて、各ＯＰの処理順序の順序関係が比較可能なデータ構造を用いる。図７の例では、図４に示した問合せプランの各階層における順番（数値）を「−」で連結したものをソート契機情報８３１〜８４３としている。
【００８４】
ここで、図４に示した問合せプランに対応したソート契機情報を生成する過程について説明する。図４に示した問合せプランは、４階層のＯＰによって構成されているため、ソート契機情報は４つの数値を「−」で連結したものとなる。
【００８５】
具体的に「２−１−１−１」（８３７）を例として説明する。４つの数値は左からＯＰ０のデータアクセス番号、ＯＰ１のデータアクセス番号、ＯＰ２のデータアクセス番号、ＯＰ３のデータアクセス番号に対応する。
【００８６】
ｐａｒｔ＿ｉｎｄｅｘ索引のデータ「ｐ−ｉ−２」（８０７）では、ＯＰ０において２番目にアクセスされているため、データアクセス番号は２である。さらに、ｐａｒｔ表のデータ「ｐ−２」（８０８）では、ＯＰ１においてインデクス「ｐ−ｉ−２」に基づいてｐａｒｔ表に１番目にアクセスされているため、データアクセス番号は１となる。以下、同様に、ｌｉｎｅｉｔｅｍ＿ｉｎｄｅｘ索引のデータ「ｌ−ｉ−３」（８０９）では、ＯＰ２におけるデータアクセス番号は１、ｌｉｎｅｉｔｅｍ表のデータ「ｌ−３」（８１０）では、ＯＰ３におけるデータアクセス番号は１となる。
【００８７】
さらに、終了フラグが設定されたソート契機情報によって、ＯＰが終了したことを判定することができる。「１−１−３（Ｅ）」（８３５）は、終了フラグが設定されたソート契機情報の一例である。ＯＰ０のデータアクセス番号が１で、ＯＰ１のデータアクセス番号が１、そしてＯＰ２のデータアクセス番号が３で終了フラグが設定されている。
【００８８】
「１−１−３（Ｅ）」（８３５）は、ＯＰ２で「ｐ−１」（８０２）に基づいてｌｉｎｅｉｔｅｍ＿ｉｎｄｅｘ索引にアクセスする場合に、「ｌ−ｉ−１」（８０３）及び「ｌ−ｉ−２」（８０４）にアクセスし、３回目で次のデータがないために終了フラグが設定されたソート契機情報を示している。
【００８９】
例えば、「２−１−１−１」（８３７）を出力する際には、「ｐ−ｉ−１」（８０１）から生成される問合せ結果が存在しないことを確認する必要がある。そこで、「１−１−１−２（Ｅ）」（８３２）、「１−１−２−２（Ｅ）」（８３４）、「１−１−３（Ｅ）」（８３５）、「１−２（Ｅ）」（８３６）といった終了フラグが設定されたソート契機情報を順序保障部１５１に送信し（図６のステップ６０８）、データ８０１に基づいて処理されたＯＰがすべて終了したことを確認する。また、選択条件によって問合せ結果が途中から生成されない場合でも、問合せ結果が生成されないことを確認するためにソート契機情報を順序保障部１５１に送信する必要がある（図６のステップ６１３）。
【００９０】
図８は、本発明の第１の実施の形態のソート契機情報生成処理の手順を示すフローチャートである。
【００９１】
ソート契機情報生成処理は、問合せ実行部１４２のＯＰ実行部１５３に含まれるソート契機情報付与部１５４よって実行され、図６に示したフローチャートのステップ６０２の処理に対応する。ソート契機情報生成処理では、現在のタスクに設定されているソート契機情報及びＯＰを参照する。以下、具体的に手順を説明する。
【００９２】
プロセッサ１１２は、まず、タスクに設定されたＯＰの深さｄ１とソート契機情報の深さｄ２とを比較する（ステップ７０１）。前述のように、問合せプランは階層化されたＯＰによって構成されるため、階層内における深さを各ＯＰの深さと定義する。例えば、図４の問合せプランの例では、ＯＰ０は深さ１、ＯＰ１は深さ２、ＯＰ２は深さ３、そしてＯＰ３は深さ４となる。一方、ソート契機情報の深さとは、図７で示した例では、「−」で連結された数値の個数と定義する。
【００９３】
プロセッサ１１２は、ソート契機情報の深さｄ２がＯＰの深さｄ１よりも小さい場合には（ステップ７０１の結果が「ｄ１＞ｄ２」）、タスクに対応するＯＰが最初に実行された場合であるため、ソート契機情報を１段深くする。すなわち、現在のソート契機情報に「−」及び１を追加する（ステップ７０２）。
【００９４】
プロセッサ１１２は、ソート契機情報の深さｄ２がＯＰの深さｄ１と同じ場合には（ステップ７０１の結果が「ｄ１＝ｄ２」）、タスクに対応するＯＰで次のデータを参照する場合である。この場合には、ソート契機情報の一番深い番号に１を加算する（ステップ７０３）。
【００９５】
ソート契機情報生成処理を図６に示したフローチャートのステップ６０２で実行することによって、図７で説明したソート契機情報が生成される。ソート契機情報は、並列に実行される別々のタスクで順序保障部１５１に送信されるため、順序保障部１５１ではソート契機情報をランダムに受信することとなる。
【００９６】
図９は、本発明の第１の実施の形態の順序保障部１５１でソート契機情報を受信した時の処理の手順を示すフローチャートである。
【００９７】
プロセッサ１１２は、順序保障部１５１がソート契機情報を受信した場合には、部分ソート実施部１５２によって部分ソート処理を実行する（ステップ９０１）。部分ソート処理の詳細については、図１０にて後述する。
【００９８】
図１０は、本発明の第１の実施の形態の部分ソート処理の手順を示すフローチャートである。
【００９９】
部分ソート実施部１５２には、次に出力するべきソート契機情報の値を保持する出力判定情報が含まれる。出力判定情報はソート契機情報と同じデータ構造となっている。具体的には、出力判定情報と一致するソート契機情報に対応するタスクよりも前に実行されたタスクが完了し、問合せ結果が出力済みであることを示している。以下、部分ソート処理の手順について説明する。
【０１００】
プロセッサ１１２は、まず、出力判定情報が初期化されているか否かを判定する（ステップ１００１）。初期化されていない場合には（ステップ１００１の結果が「Ｎ」）、出力判定情報を初期化する（ステップ１００２）。出力判定情報の初期値には、問合せ結果が最初に出力されるソート契機情報を設定する。前述したように、本発明の第１の実施の形態では、ソート契機情報の例では、問合せプランの階層分「１」を「−」で連結したもの（「１−１−１−１」）となる。
【０１０１】
プロセッサ１１２は、順序保障部１５１で受信されたソート契機情報と出力判定情報に基づいて部分ソート完了判定処理を実行する（ステップ１００３Ａ）。部分ソート完了判定処理では、受信したソート契機情報と出力判定情報とを比較し、当該ソート契機情報において部分ソートが完了したか否かを判定する。部分ソート完了判定処理の詳細は、図１１にて後述する。
【０１０２】
プロセッサ１１２は、部分ソート完了判定処理の結果が「完了」であるか否かを判定する（ステップ１００３Ｂ）。部分ソート完了判定処理の結果が「完了」でない、すなわち、「未完」と判定された場合には（ステップ１００３Ｂの結果が「Ｎ」）、受信したソート契機情報及び問合せ結果を一時バッファ１４４に格納し（ステップ１００４）、部分ソート処理を終了する。一時バッファ１４４は、順序保障部１５１から出力されるまでに一時的にソート契機情報と問合せ結果の組を保持する。ソート契機情報と問合せ結果の組は、ソート契機情報に基づいてソートされた状態で格納される。
【０１０３】
一方、プロセッサ１１２は、部分ソート完了判定処理の結果が「完了」と判定された場合には（ステップ１００３Ｂの結果が「Ｙ」）、ソート契機情報及び問合せ結果に基づいて結果出力処理を実行する（ステップ１００５）。結果出力処理では、問合せ結果を部分ソート実施部１５２によって出力する。結果出力処理の詳細は、図１２にて後述する。
【０１０４】
続いて、プロセッサ１１２は、部分ソートが完了したソート契機情報をさらに判定するために、出力判定情報をインクリメントする（ステップ１００６）。出力判定情報のインクリメント処理については、図１３にて詳細を後述する。
【０１０５】
プロセッサ１１２は、一時バッファ１４４に格納されている問合せ結果が出力可能であるか否かを判定するために、インクリメントされた出力判定情報を、一時バッファ１４４に格納されたソート契機情報と比較する。一時バッファ１４４にはソート契機情報がソートされた状態で格納されているため、一時バッファ１４４の先頭に格納されたソート契機情報と出力判定情報に基づいて部分ソート完了判定処理を実行する（１００７Ａ）。そして、部分ソート完了判定処理の結果が「完了」であるか否かを判定する（ステップ１００７Ｂ）。
【０１０６】
プロセッサ１１２は、一時バッファ１４４の先頭に格納されたソート契機情報に対する部分ソート完了判定処理の結果が「完了」と判定された場合には（ステップ１００７Ｂの結果が「Ｙ」）、結果出力処理を実行し、対応する問合せ結果を出力する（ステップ１００８）。
【０１０７】
プロセッサ１１２は、一時バッファ１４４の先頭に格納されたソート契機情報及び対応する問合せ結果を一時バッファ１４４から削除し（ステップ１００９）、さらに出力判定情報をインクリメントする（ステップ１００６）。
【０１０８】
プロセッサ１１２は、ステップ１００６からステップ１００９の処理を繰り返し、一時バッファ１４４の先頭に格納されたソート契機情報に対する部分ソート完了判定処理の結果が「完了」と判定されている間は、順次、対応する問合せ結果を出力する。一時バッファ１４４の先頭に格納されたソート契機情報に対する部分ソート完了判定処理の結果が「未完」と判定された場合には（ステップ１００７Ｂの結果が「Ｎ」）、部分ソート処理を終了する。
【０１０９】
図１１は、本発明の第１の実施の形態の部分ソート完了判定処理の手順を示すフローチャートである。
【０１１０】
プロセッサ１１２は、まず、判定対象のソート契機情報の深さｄ２と出力判定情報の深さｄ１とを比較する（ステップ１１０１）。判定対象のソート契機情報の深さｄ２と出力判定情報の深さｄ１が同じ場合には（ステップ１１０１の結果が「ｄ１＝ｄ２」）、各階層の数値が一致するか、すなわち、ソート契機情報と出力判定情報とが一致するか否かを判定する（ステップ１１０２）。ソート契機情報と出力判定情報とが一致する場合には（ステップ１１０２の結果が「Ｙ」）、部分ソート完了判定処理の結果を「完了」とする（ステップ１１０３）。また、ソート契機情報と出力判定情報とが一致しない場合には（ステップ１１０２の結果が「Ｎ」）、部分ソート完了判定処理の結果を「未完」とする（ステップ１１０４）。
【０１１１】
一方、プロセッサ１１２は、判定対象のソート契機情報の深さｄ２と出力判定情報の深さｄ１が相違する場合には（ステップ１１０１の結果が「ｄ１！＝ｄ２」）、深さが一致するまでの階層の各数値が一致し、かつ、残りの部分がすべて「１」か否かを判定する（ステップ１１０５）。ステップ１１０５の条件を満たす場合には（ステップ１１０５の結果が「Ｙ」）、ソート契機情報を出力判定情報に設定する（ステップ１００６）。さらに、判定対象のソート契機情報を「完了」と判定する（ステップ１１０７）。また、ステップ１１０５の条件を満たさない場合には（ステップ１１０５の結果が「Ｎ」）、「未完」と判定する（ステップ１１０８）。
【０１１２】
図１２は、本発明の第１の実施の形態の結果出力処理の手順を示すフローチャートである。
【０１１３】
プロセッサ１１２は、まず、処理対象のソート契機情報に対応する問合せ結果が存在するか否かを判定する（ステップ１２０１）。問合せ結果が存在する場合には（ステップ１２０１の結果が「Ｙ」）、当該問合せ結果を部分ソート実施部１５２によって出力する（ステップ１２０２）。
【０１１４】
プロセッサ１１２は、問合せ結果が存在しない場合（ステップ１２０１の結果が「Ｎ」）、又はステップ１２０２の処理が終了した場合には、ソート契機情報に終了フラグが設定されているか否かを判定する（ステップ１２０３）。ソート契機情報に終了フラグが設定されている場合には（ステップ１２０３の結果が「Ｙ」）、出力判定情報に終了フラグを設定する（ステップ１２０４）。
【０１１５】
プロセッサ１１２は、ソート契機情報に終了フラグが設定されていない場合（ステップ１２０３の結果が「Ｎ」）、又はステップ１２０４の処理が完了した場合には、結果出力処理を完了する。
【０１１６】
図１３は、本発明の第１の実施の形態の出力判定情報のインクリメント処理の手順を示すフローチャートである。
【０１１７】
プロセッサ１１２は、まず、出力判定情報に終了フラグが設定されているか否かを判定する（ステップ１３０１）。出力判定情報に終了フラグが設定されている場合には（ステップ１３０１の結果が「Ｙ」）、出力判定情報の深さを１段浅くする（ステップ１３０２）。
【０１１８】
プロセッサ１１２は、出力判定情報に終了フラグが設定されていない場合（ステップ１３０１の結果が「Ｎ」）、又はステップ１３０２の処理が完了した場合には、出力判定情報の一番深い階層の番号に１を加算する（ステップ１３０３）。
【０１１９】
図１４は、本発明の第１の実施の形態におけるデータベース管理システム１３２の動作例を示す図であって、ＡＰ１３１、問合せ受付部１４１、ＯＰ実行部１５３、ＯＳ１３３及び順序保障部１５１が相互に動作する様子を示すタイミングチャートである。なお、ＡＰ１３１、問合せ受付部１４１、ＯＰ実行部１５３、ＯＳ１３３及び順序保障部１５１は、前述のように、プロセッサ１１２によって実行されるプログラムである。
【０１２０】
まず、ＡＰ１３１は、データベース管理システム１３２に問合せ要求を発行する（２００１）。
【０１２１】
データベース管理システム１３２は、問合せ受付部１４１によってＡＰ１３１から発行された問合せ要求を受け付け、問合せプランを生成する（２００２）。その後、ＯＰ実行部１５３は、問合せ受付部１４１によって生成された問合せプランを実行する（２００３）。このとき、ＯＰ実行部１５３では問合せプランの実行において必要に応じてタスクを生成し、ＯＳ１３３にデータ読み出し要求を送信する（２００４）。
【０１２２】
ＯＰ実行部１５３の処理（２００３）とＯＳ１３３の処理（２００４）との間の通信は、データ読み出し要求の発行及び完了を示している。図１４には図７に示した問合せプラン動作例が示されている。また、ＯＰ実行部１５３とＯＳ１３３との間における通信の順序は、ＤＢバッファの有無又はデータ読み出し要求の完了順序などによって変化する。
【０１２３】
ＯＰ実行部１５３の処理（２００３）では、データ読み出し要求の完了順序に従って複数のタスクが処理され、ソート契機情報と問合せ結果との組、及びソート契機情報が、送信可能となった時点で、随時、順序保障部１５１に送信される（２００５〜２０１１）。なお、図１４に示したソート契機情報と問合せ結果の組、及びソート契機情報を順序保障部１５１に送信する順序は、一例であり、ＯＰ実行部１５３においてタスクが独立して実行されているため、タスクのＣＰＵスケジューリングなどによって変化する。
【０１２４】
順序保障部１５１は、ソート契機情報と問合せ結果の組、及びソート契機情報を受信すると、部分ソート実施部１５２で問合せ結果に対して部分的なソートを行う。このとき実行されるソートについては、詳細な動作を図１５にて説明する。図１４に示す動作例では「ｌ−４」のデータ読み出し要求を送信するまでの間に、部分ソート実施部１５２によって、３個の問合せ結果（２０１２〜２０１４）がＡＰ１３１に出力されている。
【０１２５】
図１５は、本発明の第１の実施の形態の部分ソート実施部１５２による処理の一例を説明する図である。図１５では問合せ結果の記載を省略しているが、一時バッファ１４４にはソート契機情報と問合せ結果とが組になって格納されている。
【０１２６】
初期の状態では、一時バッファ１４４は空であり（１４０１）、出力判定情報は初期値の「１−１−１−１」が設定されている（１４０２）。
【０１２７】
ＯＰ実行部１５３の処理が開始されると、順序保障部１５１は、複数のソート契機情報１４０３をＯＰ実行部１５３から受信する。ソート契機情報１４０３は、出力判定情報と異なるため、一時バッファ１４４にソート契機情報の順序で格納される（１４０４）。
【０１２８】
その後、順序保障部１５１は、ソート契機情報「１−１−１−１」（１４０６）を受信すると、図１２に示した結果出力処理が実行され、さらに、図１３に示した手順に従って出力判定情報をインクリメントする（１４０８）。出力判定情報のインクリメントが終了すると、一時バッファ１４４に格納されたソート契機情報に対し、図１１に示した部分ソート完了判定処理を実行する。しかし、状態１４０４の一時バッファ１４４には、完了と判定されるソート契機情報が含まれていないため、一時バッファ１４４の状態は変化しない（１４０７）。
【０１２９】
続いて、順序保障部１５１は、ソート契機情報「１−１−１−２（Ｅ）」（１４０９）を受信すると、受信したソート契機情報が出力判定情報と一致するため、結果出力処理が実行される。さらに、出力判定情報をインクリメントし、部分ソート完了判定処理を実行する。その結果、一時バッファ１４４に格納されているソート契機情報（「１−１−２−１」「１−１−２−２（Ｅ）」「１−１−３（Ｅ）」）が完了と判定され、順次、一時バッファ１４４の先頭から出力される（１４１０）。このとき、出力判定情報は、「１−２」に更新される（１４１１）。
【０１３０】
以上のように、部分ソート実施部１５２では、ソート契機情報に基づいて部分的なソートが完了したか否かを判定し、完了と判定されたソート契機情報に対応する問合せ結果を出力する。
【０１３１】
本発明の第１の実施の形態では、ＯＰ実行部１５３において問合せ結果を生成する際に、問合せプランにおけるＯＰの階層構造と各ＯＰのデータアクセス番号に基づいて順序比較可能なソート契機情報を生成する。順序保障部１５１では、ソート契機情報及び対応する問合せ結果を受信し、ソート契機情報に基づいて部分的なソートを実施する。その結果、本発明の第１の実施の形態によれば、多重に二次記憶装置にデータ読み出し要求を発行するデータベース処理システムにおいて、問合せ結果全体を対象としたソート処理を行わずに問合せ結果を出力することができる。
【０１３２】
また、本発明の第１の実施の形態によれば、問合せ結果に付与されるソート契機情報に基づいて、問合せ結果の一部をソートする部分ソート処理を実行する。部分ソート処理を実行することによって、すべての問合せ結果が取得された後でなくても、ソートが完了した問合せ結果を先行して出力することができる。
【０１３３】
本発明の第１の実施の形態のように多重にデータ読み出し要求を発行する場合であっても、データ読み出し要求の発行順はデータ読み出し要求を１つずつ発行する場合と同じであるため、問合せ処理全体ではデータ読み出し要求の発行順に近い順序で問合せ結果が生成される。したがって、データベースの規模が大きい場合であっても、部分ソート処理に必要な領域（一時バッファ１４４）が少ないことが期待される。
【０１３４】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。本発明の第２の実施の形態では、一時バッファ１４４で使用可能なメモリ量の閾値が設定され、使用されたメモリ量が閾値を超えた場合にはディスク一時領域を利用したソート処理が実行される。ディスク一時領域は、外部から指定可能であり、ストレージシステム１０３によって提供される記憶領域であってもよいし、ホスト１０１で提供される記憶領域であってもよい。
【０１３５】
本発明の第２の実施の形態は、部分ソート実施部１５２による部分ソート処理を除いて、第１の実施の形態と同様である。以下、第２の実施の形態が第１の実施の形態と相違する点について説明する。
【０１３６】
図１６は、本発明の第２の実施の形態のデータベース管理システム管理ツールの設定画面の一例を示す図である。
【０１３７】
図１６に示す設定画面では、一時バッファ１４４で使用可能なメモリ量の閾値とソート処理で利用するディスク一時領域を指定する。使用可能なメモリ量の閾値及びディスク一時領域の指定は、設定ファイルによる指定であってもよい。
【０１３８】
図１７は、本発明の第２の実施の形態の一時バッファの使用量に基づいて部分ソート実施部１５２によって部分ソートを実施する手順を示すフローチャートである。
【０１３９】
プロセッサ１１２は、ソート契機情報を受信すると、ディスク一時領域に問合せ結果を出力しているか否かを判定する（ステップ１５０１）。ディスク一時領域に問合せ結果が出力されていない場合には（ステップ１５０１の結果が「Ｎ」）、図１０に示した一時バッファ１４４を利用した部分ソート処理が実行されている。この場合には、一時バッファ１４４を利用した部分ソート処理を引き続き実行する（ステップ１５０２）。
【０１４０】
プロセッサ１１２は、受信したソート契機情報の処理が終了すると、一時バッファ１４４の使用メモリ量が閾値を超えたか否かを判定する（ステップ１５０３）。一時バッファ１４４の使用メモリ量が閾値以下の場合には（ステップ１５０３の結果が「Ｎ」）、本処理を終了する。一時バッファ１４４の使用メモリ量が閾値を超えた場合には（ステップ１５０３の結果が「Ｙ」）、一時バッファ１４４に格納された問合せ結果をすべてディスク一時領域に出力する（ステップ１５０４）。
【０１４１】
プロセッサ１１２は、ディスク一時領域に問合せ結果が出力されている場合には（ステップ１５０１の結果が「Ｙ」）、ディスク一時領域を利用したソート処理が実行されている。したがって、受信した問合せ結果はディスク一時領域に出力する（ステップ１５０５）。
【０１４２】
プロセッサ１１２は、さらに、問合せ結果をすべて生成したか否かを判定する（ステップ１５０６）。すべての問合せ結果が生成されていない場合には（ステップ１５０６の結果が「Ｎ」）、本処理を終了する。一方、すべての問合せ結果が生成されている場合には（ステップ１５０６の結果が「Ｙ」）、ディスク一時領域に格納された問合せ結果をソートし、順序保障部１５１によって問合せ結果を出力する（ステップ１５０７）。すべての問合せ結果を生成したか否かは、タスク管理部１４３に処理中のタスクの有無を確認することによって判定することができる。また、閾値以上になった場合であっても、ソート契機情報及び出力判定情報だけを管理することによって、すべての問合せ結果を生成したか否かを判定することが可能である。
【０１４３】
以上のように、本発明の第２の実施の形態では、一時バッファ１４４の使用メモリ量があらかじめ指定された閾値を超えた場合には、ディスク一時領域を利用したソート処理に切り替えることができる。
【０１４４】
本発明の第２の実施の形態によれば、部分ソート処理で使用されるメモリの上限値を設定し、当該上限値を超えた場合には記憶装置を利用した外部ソートに切り替えることによって、部分ソート処理において必要以上にメモリが消費されることを防ぐことができる。
【０１４５】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。本発明の第３の実施の形態では、使用するメモリ量が閾値を超えた場合、一時的にメモリに保持されている問合せ結果を出力させるために必要なタスクを優先して処理することによって、一時バッファ１４４の使用量を削減する。
【０１４６】
本発明の第３の実施の形態では、タスク管理部１４３によって管理される情報と部分ソート実施部１５２による部分ソート処理の手順を除き、第１の実施の形態と同様である。以下、第３の実施の形態が第１の実施の形態と相違する点について説明する。
【０１４７】
図１８は、本発明の第３の実施の形態のタスク管理部１４３によって管理されるタスク管理情報である。
【０１４８】
タスク管理情報には、実行中のタスクを識別するタスク識別子１６０１など、タスクを管理するために必要な情報が含まれる。本発明の第３の実施の形態のタスク管理情報には、さらに、ソート契機情報１６０２が含まれる。ソート契機情報１６０２は、タスク識別子１６０１によって識別されるタスクに対応するソート契機情報である。
【０１４９】
図１９は、本発明の第３の実施の形態の部分ソート実行後に一時バッファの使用量に基づいてタスクの優先度を制御する手順を示すフローチャートである。
【０１５０】
プロセッサ１１２は、第１の実施の形態と同様に、ソート契機情報を受信すると、部分ソート処理を実行する（ステップ１７０１）。部分ソート処理の終了後、一時バッファ１４４の使用メモリ量が閾値を超えたか否かを判定する（ステップ１７０２）。一時バッファ１４４の使用メモリ量が閾値以下の場合には（ステップ１７０２の結果が「Ｎ」）、本処理を終了する。
【０１５１】
一方、プロセッサ１１２は、一時バッファ１４４の使用メモリ量が閾値を超えた場合には（ステップ１７０２の結果が「Ｙ」）、一時バッファ１４４に格納された問合せ結果を出力するために必要なタスクが優先して処理されるように制御する（ステップ１７０３）。具体的には、一時バッファ１４４の先頭に格納されたソート契機情報よりも小さいソート契機情報に対応するタスクをタスク管理部１４３のタスク管理情報から特定し、特定されたタスクを優先して処理する（ステップ１７０３）。タスクがプロセス又はカーネルレベルスレッドの場合には、ｎｉｃｅ関数によって優先度を上げればよい。ユーザレベルスレッドの場合には、データベース管理システム１３２で管理しているタスクの実行可能キューにおいて当該タスクの処理を優先させればよい。
【０１５２】
図２０は、本発明の第３の実施の形態のデータベース管理システム管理ツールの設定画面の一例を示す図である。
【０１５３】
図２０に示す設定画面では、一時バッファ１４４で使用可能なメモリ量の閾値を設定する。使用可能なメモリ量の閾値の指定は、設定ファイルによる指定であってもよい。
【０１５４】
以上のように、本発明の第３の実施の形態によれば、一時バッファ１４４の使用メモリ量を増大させている原因となっているタスクを特定することができる。特定されたタスクを優先的に処理することによって、一時バッファ１４４の使用量を削減することが可能となり、メモリの消費を抑制することができる。
【０１５５】
（第４の実施の形態）
次に、本発明の第４の実施の形態について説明する。本発明の第４の実施の形態では、使用するメモリ量が閾値を超えた場合、第３の実施の形態と同様に、一時的にメモリに保持されている問合せ結果を出力させるために必要なタスクを優先して処理するように制御する。第４の実施の形態では、特に、必要なタスクの入出力処理がボトルネックとなっている場合に、対応する入出力処理が優先して実行されるように制御する。
【０１５６】
本発明の第４の実施の形態では、タスク管理部１４３によって管理される情報と部分ソート実施部１５２による部分ソート処理の手順を除き、第１の実施の形態と同様である。以下、第４の実施の形態が第１の実施の形態と相違する点について説明する。
【０１５７】
図２１は、本発明の第４の実施の形態のタスク管理部１４３によって管理されるタスク管理情報である。
【０１５８】
タスク管理情報には、実行中のタスクを識別するタスク識別子１６０１など、タスクを管理するために必要な情報が含まれる。第４の実施の形態のタスク管理情報には、第３の実施の形態と共通するタスク識別子１８０１及びソート契機情報１８０２の他に、各タスクの状態１８０３及び関連情報（１８０４、１８０５）が含まれる。
【０１５９】
タスク識別子１８０１及びソート契機情報１８０２は、第３の実施の形態と同様である。タスク状態１８０３は、タスクの状態を示し、例えば、「実行中」及び「Ｉ／Ｏ中」などが設定される。
【０１６０】
本発明の第４の実施の形態では、タスク状態１８０３が「Ｉ／Ｏ中」の場合には、関連情報として入出力要求の情報が格納される。具体的には、ファイル記述子１８０４及びオフセット１８０５である。なお、入出力要求の情報は、論理ユニット番号及び論理ブロックアドレスであってもよい。
【０１６１】
図２２は、本発明の第４の実施の形態の部分ソート実行後に一時バッファの使用量に基づいてタスクの入出力処理の優先度を制御する手順を示すフローチャートである。
【０１６２】
プロセッサ１１２は、第１の実施の形態と同様に、ソート契機情報を受信すると、部分ソート処理を実行する（ステップ１９０１）。部分ソート処理が完了すると、一時バッファ１４４の使用メモリ量が閾値を超えたか否かを判定する（ステップ１９０２）。一時バッファ１４４の使用メモリ量が閾値以下の場合には（ステップ１９０２の結果が「Ｎ」）、本処理を終了する。
【０１６３】
一方、プロセッサ１１２は、一時バッファ１４４の使用メモリ量が閾値を超えた場合には（ステップ１９０２の結果が「Ｙ」）、一時バッファ１４４に格納された問合せ結果を出力するために必要なタスクが優先して処理されるように制御する。具体的には、一時バッファ１４４の先頭に格納されたソート契機情報よりも小さいソート契機情報に対応するタスクをタスク管理部１４３のタスク管理情報から特定する。さらに、特定されたタスクの状態が「Ｉ／Ｏ中」の場合には、当該タスクに対応するデータ読み出し要求を優先させるように制御する（ステップ１９０３）。例えば、Ｉ／Ｏ優先度を高く設定した同じデータ読み出し要求を発行することによって、他のデータ読み出し要求よりも優先的に処理されるように制御する。
【０１６４】
なお、閾値となるメモリ量を設定する手段については、第３の実施の形態に示したデータベース管理システム管理ツールの設定画面を利用すればよい。
【０１６５】
以上のように、本発明の第４の実施の形態によれば、一時バッファ１４４の使用メモリ量を増大させている原因となっているタスクを特定し、特定されたタスクで発行されたデータ読み出し要求を優先的に処理することで当該タスクを優先的に処理することができる。これによって、一時バッファ１４４の使用量を削減することが可能となり、メモリの消費量を抑制することができる。
【図面の簡単な説明】
【０１６６】
【図１】本発明の第１の実施の形態の計算機システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態の問合せ受付部によって実行されるソート処理を決定する手順を示すフローチャートである。
【図３Ａ】本発明の第１の実施の形態の具体例を説明するための表及び索引を定義するＳＱＬを示す図である。
【図３Ｂ】本発明の第１の実施の形態のデータ検索用のＳＱＬの一例を示す図である。
【図４】本発明の第１の実施の形態のＳＱＬに基づいて生成された問合せプランの一例を示す図である。
【図５】本発明の第１の実施の形態の生成された問合せプランを実行する手順を示すフローチャートである。
【図６】本発明の第１の実施の形態のソート契機情報生成・ＯＰ実行処理の手順を示すフローチャートである。
【図７】本発明の第１の実施の形態のソート契機情報生成処理によってソート契機情報が生成される過程を説明する図である。
【図８】本発明の第１の実施の形態のソート契機情報生成処理の手順を示すフローチャートである。
【図９】本発明の第１の実施の形態の順序保障部でソート契機情報を受信した時の処理の手順を示すフローチャートである。
【図１０】本発明の第１の実施の形態の部分ソート処理の手順を示すフローチャートである。
【図１１】本発明の第１の実施の形態の部分ソート完了判定処理の手順を示すフローチャートである。
【図１２】本発明の第１の実施の形態の結果出力処理の手順を示すフローチャートである。
【図１３】本発明の第１の実施の形態の出力判定情報のインクリメント処理の手順を示すフローチャートである。
【図１４】本発明の第１の実施の形態におけるデータベース処理システムの動作例を示す図であって、ＡＰ、問合せ受付部、ＯＰ実行部、ＯＳ及び順序保障部が相互に動作する様子を示すタイミングチャートである。
【図１５】本発明の第１の実施の形態の部分ソート実施部による処理の一例を説明する図である。
【図１６】本発明の第２の実施の形態のデータベース管理システム管理ツールの設定画面の一例を示す図である。
【図１７】本発明の第２の実施の形態の一時バッファの使用量に基づいて部分ソート実施部によって部分ソートを実施する手順を示すフローチャートである。
【図１８】本発明の第３の実施の形態のタスク管理部によって管理されるタスク管理情報である。
【図１９】本発明の第３の実施の形態の部分ソート実行後に一時バッファの使用量に基づいてタスクの優先度を制御する手順を示すフローチャートである。
【図２０】本発明の第３の実施の形態のデータベース管理システム管理ツールの設定画面の一例を示す図である。
【図２１】本発明の第４の実施の形態のタスク管理部によって管理されるタスク管理情報である。
【図２２】本発明の第４の実施の形態の部分ソート実行後に一時バッファの使用量に基づいてタスクの入出力処理の優先度を制御する手順を示すフローチャートである。
【符号の説明】
【０１６７】
１０１    ホスト
１０２    ネットワーク
１０３    ストレージシステム
１１１    メモリ
１１２    プロセッサ
１１３    インタフェース
１２１    インタフェース
１２２    制御装置
１２３    記憶装置
１３１    アプリケーションプログラム（ＡＰ）
１３２    データベース管理システム
１３３    オペレーティングシステム（ＯＳ）
１４１    問合せ受付部
１４２    問合せ実行部
１４３    タスク管理部
１４４    一時バッファ
１４５    ＤＢバッファ
１５１    順序保障部
１５２    部分ソート実施部
１５３    ＯＰ実行部
１５４    ソート契機情報付与部
【図１】
2010186391.tif 000003
【図２】
2010186391.tif 000004
【図３Ａ】
2010186391.tif 000005
【図３Ｂ】
2010186391.tif 000006
【図４】
2010186391.tif 000007
【図５】
2010186391.tif 000008
【図６】
2010186391.tif 000009
【図７】
2010186391.tif 000010
【図８】
2010186391.tif 000011
【図９】
2010186391.tif 000012
【図１０】
2010186391.tif 000013
【図１１】
2010186391.tif 000014
【図１２】
2010186391.tif 000015
【図１３】
2010186391.tif 000016
【図１４】
2010186391.tif 000017
【図１５】
2010186391.tif 000018
【図１６】
2010186391.tif 000019
【図１７】
2010186391.tif 000020
【図１８】
2010186391.tif 000021
【図１９】
2010186391.tif 000022
【図２０】
2010186391.tif 000023
【図２１】
2010186391.tif 000024
【図２２】
2010186391.tif 000025