JPH04141726A - ソート処理方式 - Google Patents
ソート処理方式Info
- Publication number
- JPH04141726A JPH04141726A JP26573890A JP26573890A JPH04141726A JP H04141726 A JPH04141726 A JP H04141726A JP 26573890 A JP26573890 A JP 26573890A JP 26573890 A JP26573890 A JP 26573890A JP H04141726 A JPH04141726 A JP H04141726A
- Authority
- JP
- Japan
- Prior art keywords
- record
- sort
- area
- input
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 46
- 238000003672 processing method Methods 0.000 claims description 4
- 230000006866 deterioration Effects 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、一般には、主記憶装置内に一度に読み込むこ
とができない量のデータを、ワークファイルを用いてソ
ートするソート処理方式に関する。
とができない量のデータを、ワークファイルを用いてソ
ートするソート処理方式に関する。
従来、主記憶装置内に一度に読み込むことができない量
のデータを、ワークファイルを用いてソートするソート
処理においては、主記憶装置内にデータを一度に読み込
むことができなかった場合、たとえそれまでにワークフ
ァイルに出力したストリングが1本で、かつ主記憶装置
内に次のストリングのレコードとしてレベル付けられた
レコードが存在しない場合でも、−旦主記憶装置内に残
っているレコードをストリングとしてワークファイルに
全て掃き出してからマージフェーズに移り、マージフェ
ーズにおいて、そのストリングを読み込み出力ファイル
に出力していた。
のデータを、ワークファイルを用いてソートするソート
処理においては、主記憶装置内にデータを一度に読み込
むことができなかった場合、たとえそれまでにワークフ
ァイルに出力したストリングが1本で、かつ主記憶装置
内に次のストリングのレコードとしてレベル付けられた
レコードが存在しない場合でも、−旦主記憶装置内に残
っているレコードをストリングとしてワークファイルに
全て掃き出してからマージフェーズに移り、マージフェ
ーズにおいて、そのストリングを読み込み出力ファイル
に出力していた。
上述したように、従来の技術においては、主記憶装置内
にデータを一度に読み込むことができなかった場合、た
とえそれまでにワークファイルに出力したス) IJソ
ング1本で、かつ主記憶装置内に次のストリングのレコ
ードとしてレベル付けられたレコードが存在しない場合
でも、−旦主記憶装置内に残っているレコードをストリ
ングとしてワークファイルに全て掃き出してからマージ
フェーズに移り、マージフェーズにおいて、そのストリ
ングを読み込み出力ファイルに出力していたため、主記
憶装置に入りきれなかったデータが、主記憶装置の容量
に比べてごく少量であるような場合でも、主記憶装置に
入りきれなかったデータだけでなく入力した全データを
ワークファイルに書き出し、そのあと同量のデータをワ
ークファイルから読み込まなければならないため、ワー
クファイルへの入出力回数が急増し、それがシステムの
性能低下を引ぎ起こしてしまう欠点があった。
にデータを一度に読み込むことができなかった場合、た
とえそれまでにワークファイルに出力したス) IJソ
ング1本で、かつ主記憶装置内に次のストリングのレコ
ードとしてレベル付けられたレコードが存在しない場合
でも、−旦主記憶装置内に残っているレコードをストリ
ングとしてワークファイルに全て掃き出してからマージ
フェーズに移り、マージフェーズにおいて、そのストリ
ングを読み込み出力ファイルに出力していたため、主記
憶装置に入りきれなかったデータが、主記憶装置の容量
に比べてごく少量であるような場合でも、主記憶装置に
入りきれなかったデータだけでなく入力した全データを
ワークファイルに書き出し、そのあと同量のデータをワ
ークファイルから読み込まなければならないため、ワー
クファイルへの入出力回数が急増し、それがシステムの
性能低下を引ぎ起こしてしまう欠点があった。
〔課題を解決するための手段〕
本発明は、主記憶装置内に一度に読み込むことができな
い量のデータを、補助記憶装置上のワークファイルを用
いてソートするソート処理方式において、ソートすべき
レコードの格納された補助記憶装置上のソート入力ファ
イルと、ソート結果を格納する前記補助記憶装置上のソ
ート出力ファイルと、ソートの中間結果であるストリン
グと呼ぶ順序付けられたレコード列を格納する前記補助
記憶装置上のソートワークファイルと、主記憶装置上の
メモリ領域であって、ソートキーの比較によりソートさ
れる前記レコードを格納するレコード領域と前記レコー
ド領域内のレコード群のながの前記ソートキーの順序で
最も早く出方される最上位レコードのアドレスを格納す
る勝者レコードアドレス領域からなるソートメモリ領域
と、ソート処理を行うソート主処理手段と、前記ソート
入力ファイルから、前記ソートメモリ領域にレコードを
1件読み込む入力処理手段と、前記ソートメモリ領域か
ら、前記ソート出力ファイルにレコードを1件書き込む
出力処理手段と、前記ソートワークファイルから、前記
ソートメモリ領域にレコードを1件読み込むワークファ
イル入力処理手段と、前記ソートメモリ領域がら、前記
ソートワークファイルにレコードを1件書き込むワーク
ファイル出力処理手段と、前記レコード領域内に格納さ
れている定められたレコード群のなかの前記最上位のレ
コードを決定する内部ソート処理手段とから構成され、
前記ソート主処理手段は、前記ソート入力ファイルから
前記入力処理手段を用いて前記レコード領域内にレコー
ドを一件ずつ入力し、前記内部ソート処理手段を用いて
それまでに前記レコード領域内に入力されているレコー
ドの中の前記最上位のレコードを決定し、決定した前記
最上位レコードのアドレスを前記勝者レコードアドレス
領域に設定する処理を繰り返す第一の手段と、前記第一
の手段にて前記レコード領域が前記レコードで満杯とな
る前に前記入力レコードが終了した場合は、前記勝者レ
コードアドレス領域にアドレスが設定されている前記最
上位のレコードを前記出力処理手段を用いて前記ソート
出力ファイルへ出力し、次に前記レコード領域内に出力
′されずに残っている前記レコードがなくなるまで前記
レコードの中の前記最上位レコードを前記内部ソート処
理手段を用いて決定し前記決定された最上位レコードを
前記出力処理手段を用いて前記ソート出力ファイルに出
力する処理を繰り返す第二の手段と、前記第一の手段に
て前記レコード領域がレコードで満杯となった時点で前
記入力レコードが終了していない場合は、作成中ストリ
ングのレベルと次のストリングの前記レベルの2つのレ
ベルを設け、前記レコード領域内にすでに格納されてい
るレコードを、前記作成中ストリングにレベル付け、前
記レコード領域内に前記作成中ストリングとしてレベル
付けられた前記レコードがなくなるまで、前記勝者レコ
ードアドレス領域にアドレスが格納されている前記最上
位レコードを前記作成中ストリングのレコードとして前
記ワークファイル出力処理手段を用いて前記ソートワー
クファイルへ出力する出力処理と、次に前記レコード領
域内に残っているレコードの中の前記最上位レコードを
前記内部ソート処理手段を用いて決定し前記アドレスを
前記勝者レコードアドレス領域に設定する前記最上位1
ノコードの決定処理と、前記ソート入力ファイルから前
記入力処理手段を用いて前記レコード領域へレコードを
1件入力し、前記入力したレコードと前記勝者レコード
アドレス領域に前記アドレスが設定されている前記最上
位レコードと前記ソートキーを比較し、前記最上位レコ
ードが上位の場合は、入力した前記レコードを前記作成
中ストリングのレベルのレコードとし、前記入力したレ
コードが上位の場合は、入力した前記レコードを前記次
のストリングの前記レベルのレコードとしてそれぞれレ
ベル付ける前記レコードのレベル付け処理を順番に繰り
返す第一の掃き出し処理を行い次に前記次のストIJン
グとしてレベル付けられている前記レコード領域内のレ
コード群を前記作成中ストリングのレコードとしてレベ
ル付けし再び前記第一の掃き出し処理を繰り返して実行
する第三の手段と、前記第三の手段にて前記レコード領
域が満杯となった後に、前記入力レコードが終了した場
合で前記終了までに作成した前記ストリングの本数が2
本以上または、前記次のストリングとしてレベル付けら
れた前記レコードが前記レコード領域に存在している場
合に、前記レコード領域内に残っている前記レコードの
内まず、前記作成中ストリングとしてレベル付けられて
いる前記レコード群を対象として、前記レコード群のレ
コードが全て前記ストリングとして出力され前記レコー
ド領域からなくなるまで前記勝者レコードアドレス領域
にアドレスが設定されている前記最上位レコードの前記
ソートワークファイルへの前記ワークファイル出力処理
手段を用いた出力処理と、前記内部ソート処理手段を用
いた前記レコード領域内に残っているレコード群の前記
最上位レコードの決定と前記決定されたアドレスの前記
勝者レコードアドレス領域への設定の処理を繰り返す第
二の掃き出し処理を実行し、前記次のストリングとして
レベル付けられた前記レコード群があれば前記レコード
群を再び前記作成中ストリングとしてレベル付け前記レ
コード群に対して前記第二の掃き出し処理を縁り返し次
に前記ワークファイル入力処理手段を用いて、前記ワー
クファイルより前記ソートメモリ領域に前記ストリング
を読み込みながらマージし1本のス) IJソングまと
めて前記出力処理手段を用いて前記ソート出力ファイル
へ出力する第四の手段と、前記第三の手段にて前記レコ
ード領域が満杯となった後に、前記入力レコードが終了
した場合で、前記ス) IJソング本数が1本でかつ前
記レコード領域内に前記次のストリングとしてレベル付
けられている前記レコードが存在しないならば、前記勝
者レコードアドレス領域に前記アドレスが設定されてい
るレコードを、前記ワークファイル出力処理手段を用い
て前記ソートワークファイルへ出力し次に、前記ソート
ワークファイルに出力された前記ストリングの全レコー
ドについて前記ワークファイル入力処理手段を用いて前
記レコードを1件ずつ前記レコード領域内に入力し入力
した前記レコードを前記出力処理手段を用いて前記ソー
ト出力ファイルに出力し、最後に前記レコード領域に残
存している前記レコードが1件もなくなるまで、前記内
部ソート処理手段により残存している前記レコード群の
なかの前記最上位レコードを決定し前記最上位アドレス
を前記勝者レコードアドレス領域に設定する処理と、前
記出力処理手段により前記勝者レコードアドレス領域に
アドレスが設定されている前記最上位レコードを前記ソ
ート出力ファイルに出力する処理を繰り返す第五の手段
とから構成されることを特徴とする。
い量のデータを、補助記憶装置上のワークファイルを用
いてソートするソート処理方式において、ソートすべき
レコードの格納された補助記憶装置上のソート入力ファ
イルと、ソート結果を格納する前記補助記憶装置上のソ
ート出力ファイルと、ソートの中間結果であるストリン
グと呼ぶ順序付けられたレコード列を格納する前記補助
記憶装置上のソートワークファイルと、主記憶装置上の
メモリ領域であって、ソートキーの比較によりソートさ
れる前記レコードを格納するレコード領域と前記レコー
ド領域内のレコード群のながの前記ソートキーの順序で
最も早く出方される最上位レコードのアドレスを格納す
る勝者レコードアドレス領域からなるソートメモリ領域
と、ソート処理を行うソート主処理手段と、前記ソート
入力ファイルから、前記ソートメモリ領域にレコードを
1件読み込む入力処理手段と、前記ソートメモリ領域か
ら、前記ソート出力ファイルにレコードを1件書き込む
出力処理手段と、前記ソートワークファイルから、前記
ソートメモリ領域にレコードを1件読み込むワークファ
イル入力処理手段と、前記ソートメモリ領域がら、前記
ソートワークファイルにレコードを1件書き込むワーク
ファイル出力処理手段と、前記レコード領域内に格納さ
れている定められたレコード群のなかの前記最上位のレ
コードを決定する内部ソート処理手段とから構成され、
前記ソート主処理手段は、前記ソート入力ファイルから
前記入力処理手段を用いて前記レコード領域内にレコー
ドを一件ずつ入力し、前記内部ソート処理手段を用いて
それまでに前記レコード領域内に入力されているレコー
ドの中の前記最上位のレコードを決定し、決定した前記
最上位レコードのアドレスを前記勝者レコードアドレス
領域に設定する処理を繰り返す第一の手段と、前記第一
の手段にて前記レコード領域が前記レコードで満杯とな
る前に前記入力レコードが終了した場合は、前記勝者レ
コードアドレス領域にアドレスが設定されている前記最
上位のレコードを前記出力処理手段を用いて前記ソート
出力ファイルへ出力し、次に前記レコード領域内に出力
′されずに残っている前記レコードがなくなるまで前記
レコードの中の前記最上位レコードを前記内部ソート処
理手段を用いて決定し前記決定された最上位レコードを
前記出力処理手段を用いて前記ソート出力ファイルに出
力する処理を繰り返す第二の手段と、前記第一の手段に
て前記レコード領域がレコードで満杯となった時点で前
記入力レコードが終了していない場合は、作成中ストリ
ングのレベルと次のストリングの前記レベルの2つのレ
ベルを設け、前記レコード領域内にすでに格納されてい
るレコードを、前記作成中ストリングにレベル付け、前
記レコード領域内に前記作成中ストリングとしてレベル
付けられた前記レコードがなくなるまで、前記勝者レコ
ードアドレス領域にアドレスが格納されている前記最上
位レコードを前記作成中ストリングのレコードとして前
記ワークファイル出力処理手段を用いて前記ソートワー
クファイルへ出力する出力処理と、次に前記レコード領
域内に残っているレコードの中の前記最上位レコードを
前記内部ソート処理手段を用いて決定し前記アドレスを
前記勝者レコードアドレス領域に設定する前記最上位1
ノコードの決定処理と、前記ソート入力ファイルから前
記入力処理手段を用いて前記レコード領域へレコードを
1件入力し、前記入力したレコードと前記勝者レコード
アドレス領域に前記アドレスが設定されている前記最上
位レコードと前記ソートキーを比較し、前記最上位レコ
ードが上位の場合は、入力した前記レコードを前記作成
中ストリングのレベルのレコードとし、前記入力したレ
コードが上位の場合は、入力した前記レコードを前記次
のストリングの前記レベルのレコードとしてそれぞれレ
ベル付ける前記レコードのレベル付け処理を順番に繰り
返す第一の掃き出し処理を行い次に前記次のストIJン
グとしてレベル付けられている前記レコード領域内のレ
コード群を前記作成中ストリングのレコードとしてレベ
ル付けし再び前記第一の掃き出し処理を繰り返して実行
する第三の手段と、前記第三の手段にて前記レコード領
域が満杯となった後に、前記入力レコードが終了した場
合で前記終了までに作成した前記ストリングの本数が2
本以上または、前記次のストリングとしてレベル付けら
れた前記レコードが前記レコード領域に存在している場
合に、前記レコード領域内に残っている前記レコードの
内まず、前記作成中ストリングとしてレベル付けられて
いる前記レコード群を対象として、前記レコード群のレ
コードが全て前記ストリングとして出力され前記レコー
ド領域からなくなるまで前記勝者レコードアドレス領域
にアドレスが設定されている前記最上位レコードの前記
ソートワークファイルへの前記ワークファイル出力処理
手段を用いた出力処理と、前記内部ソート処理手段を用
いた前記レコード領域内に残っているレコード群の前記
最上位レコードの決定と前記決定されたアドレスの前記
勝者レコードアドレス領域への設定の処理を繰り返す第
二の掃き出し処理を実行し、前記次のストリングとして
レベル付けられた前記レコード群があれば前記レコード
群を再び前記作成中ストリングとしてレベル付け前記レ
コード群に対して前記第二の掃き出し処理を縁り返し次
に前記ワークファイル入力処理手段を用いて、前記ワー
クファイルより前記ソートメモリ領域に前記ストリング
を読み込みながらマージし1本のス) IJソングまと
めて前記出力処理手段を用いて前記ソート出力ファイル
へ出力する第四の手段と、前記第三の手段にて前記レコ
ード領域が満杯となった後に、前記入力レコードが終了
した場合で、前記ス) IJソング本数が1本でかつ前
記レコード領域内に前記次のストリングとしてレベル付
けられている前記レコードが存在しないならば、前記勝
者レコードアドレス領域に前記アドレスが設定されてい
るレコードを、前記ワークファイル出力処理手段を用い
て前記ソートワークファイルへ出力し次に、前記ソート
ワークファイルに出力された前記ストリングの全レコー
ドについて前記ワークファイル入力処理手段を用いて前
記レコードを1件ずつ前記レコード領域内に入力し入力
した前記レコードを前記出力処理手段を用いて前記ソー
ト出力ファイルに出力し、最後に前記レコード領域に残
存している前記レコードが1件もなくなるまで、前記内
部ソート処理手段により残存している前記レコード群の
なかの前記最上位レコードを決定し前記最上位アドレス
を前記勝者レコードアドレス領域に設定する処理と、前
記出力処理手段により前記勝者レコードアドレス領域に
アドレスが設定されている前記最上位レコードを前記ソ
ート出力ファイルに出力する処理を繰り返す第五の手段
とから構成されることを特徴とする。
次に本発明について、図面を参照して説明する。
第1図は、本発明の一実施例を示すブロック図である。
第1図において、1はソートすべきレコードの格納され
た補助記憶装置上のソート入力ファイル、2はソート結
果を出力するための補助記憶装置上のソート出力ファイ
ル、3はソートの中間結果であるストリングと呼ぶ順序
付けられたレコード列を格納しておくための補助記憶装
置上のソートワークファイル、4はソートの対象となる
レコードを読み込むための主記憶装置上のメモリ領域で
あり、レコード領域41、勝者レコードアドレス領域4
2からなるソートメモリ領域、5はソート主処理手段、
6はソート入力ファイル1から、ソートメモリ領域4に
レコードを1件読み込むための入力処理手段、7はソー
トメモリ領域4からソート出力ファイル2にレコードを
1件書き込むための出力処理手段、8はソートワークフ
ァイル3から、ソートメモリ領域4にレコードを1件読
み込むためのワークファイル入力処理手段、9はソート
メモリ領域4から、ソートワークファイル3にレコード
を1件書き込むためのワークファイル出力処理手段、1
0はレコード領域41内に格納されている、定められた
レコード群のなかの、最上位のレコードを決定するため
の内部ソート処理手段である。
た補助記憶装置上のソート入力ファイル、2はソート結
果を出力するための補助記憶装置上のソート出力ファイ
ル、3はソートの中間結果であるストリングと呼ぶ順序
付けられたレコード列を格納しておくための補助記憶装
置上のソートワークファイル、4はソートの対象となる
レコードを読み込むための主記憶装置上のメモリ領域で
あり、レコード領域41、勝者レコードアドレス領域4
2からなるソートメモリ領域、5はソート主処理手段、
6はソート入力ファイル1から、ソートメモリ領域4に
レコードを1件読み込むための入力処理手段、7はソー
トメモリ領域4からソート出力ファイル2にレコードを
1件書き込むための出力処理手段、8はソートワークフ
ァイル3から、ソートメモリ領域4にレコードを1件読
み込むためのワークファイル入力処理手段、9はソート
メモリ領域4から、ソートワークファイル3にレコード
を1件書き込むためのワークファイル出力処理手段、1
0はレコード領域41内に格納されている、定められた
レコード群のなかの、最上位のレコードを決定するため
の内部ソート処理手段である。
本実施例で説明するソート主処理手段5は、大きく分け
て4つの部分からなる。
て4つの部分からなる。
以下、それぞれの部分の処理の詳細について説明する。
第1の部分は、ソート入力ファイル1からレコードを1
件ずつレコード領域41に入力していきレコード領域4
1が満杯になるまでの処理、及びレコード領域41が満
杯になる前に入力レコードが終了したときの処理の部分
である。
件ずつレコード領域41に入力していきレコード領域4
1が満杯になるまでの処理、及びレコード領域41が満
杯になる前に入力レコードが終了したときの処理の部分
である。
第2図は、ソート主処理手段5の第1の部分の処理ステ
ップを示す図である。
ップを示す図である。
ソート主処理手段5はまずステップ201において、生
成したストリングの本数をカウントするための制御変数
りを1に、レコード領域41内のレコードで作成中スト
リングに出力されるべきレコードとしてレベル付けられ
ているレコードの数を示すための制御変数Nに0を、レ
コード領域41内のレコードで次のストリングに出方さ
れるべきレコードとしてレベル付けられているレコード
の数を示すための制御変数Mに0をそれぞれ初期値とし
て設定し、ステップ202でレコード領域41内に入力
できるレコードの件数をTに設定しソートを開始するた
めの準備を終了する。
成したストリングの本数をカウントするための制御変数
りを1に、レコード領域41内のレコードで作成中スト
リングに出力されるべきレコードとしてレベル付けられ
ているレコードの数を示すための制御変数Nに0を、レ
コード領域41内のレコードで次のストリングに出方さ
れるべきレコードとしてレベル付けられているレコード
の数を示すための制御変数Mに0をそれぞれ初期値とし
て設定し、ステップ202でレコード領域41内に入力
できるレコードの件数をTに設定しソートを開始するた
めの準備を終了する。
ステップ203から実際のソートの処理に入り、まずス
テップ203において入力処理手段6を呼び出しソート
久方ファイルエがらレコード領域41ヘレコードを1件
入力し、ステップ204で入力すべきレコードが尽きた
旨入力処理手段6から通知されたかをチエツクし、入力
すべきレコードが尽きた旨入力処理手段6から通知され
ていたならばステップ209以降のメモリ内ソートの処
理に分岐する。
テップ203において入力処理手段6を呼び出しソート
久方ファイルエがらレコード領域41ヘレコードを1件
入力し、ステップ204で入力すべきレコードが尽きた
旨入力処理手段6から通知されたかをチエツクし、入力
すべきレコードが尽きた旨入力処理手段6から通知され
ていたならばステップ209以降のメモリ内ソートの処
理に分岐する。
第1の部分は、レコード領域41が満杯になるまでの処
理であり、入力されたレコードはすべて作成中(最初の
)ストリングのレコードとしてレベル付ける。そのため
ステップ203で入力レコードがあった場合にはステッ
プ205においてNに1を加算し、ステップ206では
入力したレコードのレベルをLに設定する。
理であり、入力されたレコードはすべて作成中(最初の
)ストリングのレコードとしてレベル付ける。そのため
ステップ203で入力レコードがあった場合にはステッ
プ205においてNに1を加算し、ステップ206では
入力したレコードのレベルをLに設定する。
次にステップ207において、内部ソート処理手段10
を用いてレコード領域41内のレベルLのレコード(こ
の時点は全レコードがレベルしてある)のなかの最上位
レコードを決定し、決定した最上位レコードのアドレス
を勝者レコードアドレス領域42へ設定する。
を用いてレコード領域41内のレベルLのレコード(こ
の時点は全レコードがレベルしてある)のなかの最上位
レコードを決定し、決定した最上位レコードのアドレス
を勝者レコードアドレス領域42へ設定する。
次にステップ208ては、NとTとを比較してレコード
領域41か満杯になったかをチエツク、Nが1以上なら
ばレコード領域41は満杯であるので第2の部分へ進み
、NがTより小ならばステップ203へ戻り次のレコー
ドを入力する。
領域41か満杯になったかをチエツク、Nが1以上なら
ばレコード領域41は満杯であるので第2の部分へ進み
、NがTより小ならばステップ203へ戻り次のレコー
ドを入力する。
ステップ209以降は、レコード領域41が満杯になる
前に入力レコードか終了した場合の処理(メモリ内ソー
トの処理)であり、ステップ209で入力レコード件数
Nが0であるかチエツクし、0であればソートを終了す
る。
前に入力レコードか終了した場合の処理(メモリ内ソー
トの処理)であり、ステップ209で入力レコード件数
Nが0であるかチエツクし、0であればソートを終了す
る。
入力レコード件数が0でない場合は、ステップ210に
おいて、勝者レコードアドレス領域42にそのアドレス
か設定されている最上位レコードを、出力処理手段7を
用いてソート出力ファイル2へ出力した後、ステップ2
11てNを1減算する。
おいて、勝者レコードアドレス領域42にそのアドレス
か設定されている最上位レコードを、出力処理手段7を
用いてソート出力ファイル2へ出力した後、ステップ2
11てNを1減算する。
次にステップ212てまた出力されずにレコード領域4
1に残っているレコード数Nか0かチエツクし、0なら
ばソートを終了し、0でなければステップ213で、残
っているレコードのなかの最上位レコードを内部ソート
処理手段10を用いて決定、そのアドレスを勝者レコー
ドアドレス領域42に設定した後、ステップ210に戻
りそのレコードを出力、以下ステ、ツブ213,21C
INがOになるまで繰り返すことによりレコード領域4
1内に残っているレコードをソートしながらソート出力
ファイル2へ出力していく。
1に残っているレコード数Nか0かチエツクし、0なら
ばソートを終了し、0でなければステップ213で、残
っているレコードのなかの最上位レコードを内部ソート
処理手段10を用いて決定、そのアドレスを勝者レコー
ドアドレス領域42に設定した後、ステップ210に戻
りそのレコードを出力、以下ステ、ツブ213,21C
INがOになるまで繰り返すことによりレコード領域4
1内に残っているレコードをソートしながらソート出力
ファイル2へ出力していく。
ソート主処理手段5の第2の部分は、レコード領域41
が満杯になってから、入力レコードが終了するまでの間
の処理の部分である。
が満杯になってから、入力レコードが終了するまでの間
の処理の部分である。
第3図は、ソート主処理手段5の第2の部分の処理ステ
ップを示す図である。
ップを示す図である。
ソート主処理手段5は、ステップ301て、勝者レコー
ドアドレス領域42にそのアドレスか設定されている、
それまでの対戦での最上位レコードをワークファイル出
力処理手段9を用いてソートワークファイル3へ出力し
、ステップ30.2ではレコード領域41内の、作成中
ストリングへ出力すべきレコードとしてレベル付けられ
ているレコード数を示す制御変数Nから1を減算する。
ドアドレス領域42にそのアドレスか設定されている、
それまでの対戦での最上位レコードをワークファイル出
力処理手段9を用いてソートワークファイル3へ出力し
、ステップ30.2ではレコード領域41内の、作成中
ストリングへ出力すべきレコードとしてレベル付けられ
ているレコード数を示す制御変数Nから1を減算する。
ステップ301でレコード領域41からレコードを1件
出力したため、後述のステップ305で次のレコードを
1件入力するための空き領域がレコード領域41に確保
されたことになる。
出力したため、後述のステップ305で次のレコードを
1件入力するための空き領域がレコード領域41に確保
されたことになる。
次にステップ303でNがOであるかを判断し、レコー
ド領域41内に、作成中ストリングに出力すべきレコー
ドとしてレベル付けられているレコードがまた残ってい
るか調へ、残っていなければ、ステップ313からステ
ップ316まてのス) IJソング切り替えの処理を実
行した後ステップ304へ移行する。
ド領域41内に、作成中ストリングに出力すべきレコー
ドとしてレベル付けられているレコードがまた残ってい
るか調へ、残っていなければ、ステップ313からステ
ップ316まてのス) IJソング切り替えの処理を実
行した後ステップ304へ移行する。
作成中ストリングに出力すべきレコードとしてレベル付
けられているレコードかまた残っていれば、ステップ3
04において、レコード領域41内のレベルLのレコー
ド(作成中ストリングに出力すべきレコードとしてレベ
ル付けられているレコード)のなかの最上位レコードを
内部ソート処理手段10を用いて決定、そのアドレスを
勝者レコードアドレス領域42へ設定し、ステップ30
5で入力処理手段6を呼び出し、次の入力レコードを、
レコード領域41へ入力する。
けられているレコードかまた残っていれば、ステップ3
04において、レコード領域41内のレベルLのレコー
ド(作成中ストリングに出力すべきレコードとしてレベ
ル付けられているレコード)のなかの最上位レコードを
内部ソート処理手段10を用いて決定、そのアドレスを
勝者レコードアドレス領域42へ設定し、ステップ30
5で入力処理手段6を呼び出し、次の入力レコードを、
レコード領域41へ入力する。
次にステップ306において、入力すべきレコードが尽
きた旨入力処理手段6から通知されたかをチエツクし、
入力すべきレコードが尽きた旨入力処理手段6から通知
されていたならばステップ317以降の第2の部分の最
終処理へ分岐する。
きた旨入力処理手段6から通知されたかをチエツクし、
入力すべきレコードが尽きた旨入力処理手段6から通知
されていたならばステップ317以降の第2の部分の最
終処理へ分岐する。
入力レコードがまだあったならば、ステップ307にお
いて、入力レコードと、勝者レコードアドレス領域42
にアドレスが設定されている最上位レコードとを対戦さ
せる。
いて、入力レコードと、勝者レコードアドレス領域42
にアドレスが設定されている最上位レコードとを対戦さ
せる。
ステップ308ではステップ307の対戦結果を判定し
、勝者レコードアドレス領域42てボされる最上位レコ
ードが勝ったならば、ステップ309で入力レコードの
レベルをLに設定しステップ310てNに1加算するこ
とにより、入力レコードのレベルを、作成中ストリング
へ出力すべきレコードとしてレベル付け、入力レコード
が勝ったならば、ステップ311で入力レコードのレベ
ルをL+1(次のストリング)に設定し、ステップ31
2でMに1を加算することにより入力レコードのレベル
を、次のストリングへ出力すべきレコードとしてレベル
付けた後、ステップ301へ戻り、勝者レコードアドレ
ス領域42にアドレスが設定されている最上位レコード
をソートワークファイル3へ出力する。
、勝者レコードアドレス領域42てボされる最上位レコ
ードが勝ったならば、ステップ309で入力レコードの
レベルをLに設定しステップ310てNに1加算するこ
とにより、入力レコードのレベルを、作成中ストリング
へ出力すべきレコードとしてレベル付け、入力レコード
が勝ったならば、ステップ311で入力レコードのレベ
ルをL+1(次のストリング)に設定し、ステップ31
2でMに1を加算することにより入力レコードのレベル
を、次のストリングへ出力すべきレコードとしてレベル
付けた後、ステップ301へ戻り、勝者レコードアドレ
ス領域42にアドレスが設定されている最上位レコード
をソートワークファイル3へ出力する。
ステップ313からステップ316は、ストリングの切
り替えの処理であり、まずステップ313で、作成中ス
トリングに出力すべきレコードとしてレベル付けられて
いるレコード数を示す制御変数Nに、次のストリングに
出力すべきレコードとしてレベル付けられているレコー
ド数を示す制御変数Mの値を設定することにより次のス
トリングを作成中ストリングとした後、ステップ314
でMにOを再設定、ステップ315で、ストリングカウ
ントLに1を加算した後、ステップ316でストリング
の切り替えを行った後、ステップ305へ移行し新しい
ストリングの処理に移る。
り替えの処理であり、まずステップ313で、作成中ス
トリングに出力すべきレコードとしてレベル付けられて
いるレコード数を示す制御変数Nに、次のストリングに
出力すべきレコードとしてレベル付けられているレコー
ド数を示す制御変数Mの値を設定することにより次のス
トリングを作成中ストリングとした後、ステップ314
でMにOを再設定、ステップ315で、ストリングカウ
ントLに1を加算した後、ステップ316でストリング
の切り替えを行った後、ステップ305へ移行し新しい
ストリングの処理に移る。
ステップ317以降は、第2の部分の最終処理であり、
ステップ317でそれまでにソートワークファイル3へ
生成したストリング数りが1か判定し1でなければ、第
3の部分に制御を移行し、1であればステップ318に
おいて、MがOか判断することにより、次のストリング
に出力すべきレコードとしてレベル付けられたレコード
がレコード領域41内に存在しないかを判断し、存在し
ない(MがO)ならば第4の部分に制御を移行し、存在
する(Mが0てない)ならば第3の部分に制御を移行す
る。
ステップ317でそれまでにソートワークファイル3へ
生成したストリング数りが1か判定し1でなければ、第
3の部分に制御を移行し、1であればステップ318に
おいて、MがOか判断することにより、次のストリング
に出力すべきレコードとしてレベル付けられたレコード
がレコード領域41内に存在しないかを判断し、存在し
ない(MがO)ならば第4の部分に制御を移行し、存在
する(Mが0てない)ならば第3の部分に制御を移行す
る。
ソート主処理手段5の第3の部分は、入力レコードが終
了した時点までに生成したストリングの本数が2本以上
であった場合の入力レコード終了からソート終了までの
処理の部分である。
了した時点までに生成したストリングの本数が2本以上
であった場合の入力レコード終了からソート終了までの
処理の部分である。
第4図は、ソート主処理手段5の第3の部分の処理ステ
ップを示す図である。
ップを示す図である。
入力レコードか終了するとソート主処理手段5はまずス
テップ401で勝者レコードアドレス領域42にそのア
ドレスか設定されている、作成中ストリングに出力すべ
きレコードとしてレベル付けられたレコードの最上位レ
コードをワークファイル出力処理手段9を用いてソート
ワークファイル3へ出力し、ステップ402でNを1減
算する。
テップ401で勝者レコードアドレス領域42にそのア
ドレスか設定されている、作成中ストリングに出力すべ
きレコードとしてレベル付けられたレコードの最上位レ
コードをワークファイル出力処理手段9を用いてソート
ワークファイル3へ出力し、ステップ402でNを1減
算する。
次にステップ403で、Nが0かを判断することにより
作成中ストリングに出力すべきレコードとしてレベル付
けられたレコードがレコード領域41に残っているか判
断し、残っている(NがOでない)ならば、ステップ4
09で、レコード領域41内に残っているレベルLのレ
コード(作成中ストリングへ出力するレコード)の最上
位レコードを内部ソート処理手段10を用いて決定、そ
のアドレスを勝者レコードアドレス領域42へ設定した
後ステップ401へ戻り、作成中ストリングに出力すべ
きレコードとしてレベル付けられたレコードがレコード
領域41に残っていない(NがO)ならば、ステップ4
04へ移行する。
作成中ストリングに出力すべきレコードとしてレベル付
けられたレコードがレコード領域41に残っているか判
断し、残っている(NがOでない)ならば、ステップ4
09で、レコード領域41内に残っているレベルLのレ
コード(作成中ストリングへ出力するレコード)の最上
位レコードを内部ソート処理手段10を用いて決定、そ
のアドレスを勝者レコードアドレス領域42へ設定した
後ステップ401へ戻り、作成中ストリングに出力すべ
きレコードとしてレベル付けられたレコードがレコード
領域41に残っていない(NがO)ならば、ステップ4
04へ移行する。
ステップ404ではMがOか判断することにより次のス
トリングへ出力すべきレコードとしてレベル付けられた
レコードがレコード領域41内に存在するかを判断し、
存在しない(MがO)ならば、ステップ410のストリ
ングのマージフェーズヘ移行し、存在する(MがOてな
い)ならば、ステップ405からステップ408までの
ストリング切り替えの処理を実行した後、ステップ40
9へ移行し、ステップ409,401,402゜403
を、Nが0になるまでくりかえすことにより、最後のス
トリングを生成する。
トリングへ出力すべきレコードとしてレベル付けられた
レコードがレコード領域41内に存在するかを判断し、
存在しない(MがO)ならば、ステップ410のストリ
ングのマージフェーズヘ移行し、存在する(MがOてな
い)ならば、ステップ405からステップ408までの
ストリング切り替えの処理を実行した後、ステップ40
9へ移行し、ステップ409,401,402゜403
を、Nが0になるまでくりかえすことにより、最後のス
トリングを生成する。
ステップ405からステップ408までは、第2の部分
のステップ313から316と同様なストリングと切り
替え処理であり、ステ2.プ405でNにMを設定、ス
テップ406で、Mに0を再設定、ステップ407でL
に1を加算した後、ステップ408でストリングの切り
替え処理を実行し、ステップ409へ移行する。
のステップ313から316と同様なストリングと切り
替え処理であり、ステ2.プ405でNにMを設定、ス
テップ406で、Mに0を再設定、ステップ407でL
に1を加算した後、ステップ408でストリングの切り
替え処理を実行し、ステップ409へ移行する。
ステップ410は、ソートワークファイル3に生成した
ストリングをマージする処理であり、ワークファイル入
力処理手段8を用いて、ソートワークファイル3からス
トリングをソートメモリ領域4へ入力しながらマージし
ていき、最終的に1本のストリングにまとめられるまで
繰り返しマージし、最終的な1本のストリングを出力処
理手段7を用いてソート出力ファイル2へ出力して%s
き、ソート処理を終了する。
ストリングをマージする処理であり、ワークファイル入
力処理手段8を用いて、ソートワークファイル3からス
トリングをソートメモリ領域4へ入力しながらマージし
ていき、最終的に1本のストリングにまとめられるまで
繰り返しマージし、最終的な1本のストリングを出力処
理手段7を用いてソート出力ファイル2へ出力して%s
き、ソート処理を終了する。
ソート主処理手段5の第4の部分は、入力レコードが終
了した時点までに生成したストリングの本数が1本であ
った場合の、入力レコード終了からソート終了までの処
理の部分である。
了した時点までに生成したストリングの本数が1本であ
った場合の、入力レコード終了からソート終了までの処
理の部分である。
第5図は、ソート主処理手段5の第4の部分の処理ステ
ップを示す図である。
ップを示す図である。
入力レコードが終了するとソート主処理手段5はまずス
テップ501で、勝者レコーIZアドレス領域42にそ
のアドレスか設定されてしする、作成中ストリングに出
力すべきレコードとしてレベル付けられたレコードの最
上位レコードをワークファイル出力処理手段9を用いて
ソートワークファイル3へ出力してストリングを終了さ
せ、ステ・ツブ502へ移行する。
テップ501で、勝者レコーIZアドレス領域42にそ
のアドレスか設定されてしする、作成中ストリングに出
力すべきレコードとしてレベル付けられたレコードの最
上位レコードをワークファイル出力処理手段9を用いて
ソートワークファイル3へ出力してストリングを終了さ
せ、ステ・ツブ502へ移行する。
ステップ502ではワークファイル入力処理手段8を用
いて、ソートワークファイル3(こ生成した1本のスト
リングのレコードを1件レコード領域41内に入力(ス
テップ501てレコードを出力したのでレコード1件分
空き領域はある)し、ステップ503で、ストリングの
レコードはもうない旨ワークファイル入力処理手段8か
ら通知されたかを判断し、ストリングのレコードはもう
ない旨ワークファイル入力処理手段8から通知されたな
らば、ステップ505以下の、レコード領域41内に残
っているレコードの出力処理へ移行し、ストリングのレ
コードがまたあれば、ステップ504において、ステッ
プ502で入力したレコードを出力処理手段7を用いて
ソート出力ファイル2へ出力し、ステップ502へ戻る
。
いて、ソートワークファイル3(こ生成した1本のスト
リングのレコードを1件レコード領域41内に入力(ス
テップ501てレコードを出力したのでレコード1件分
空き領域はある)し、ステップ503で、ストリングの
レコードはもうない旨ワークファイル入力処理手段8か
ら通知されたかを判断し、ストリングのレコードはもう
ない旨ワークファイル入力処理手段8から通知されたな
らば、ステップ505以下の、レコード領域41内に残
っているレコードの出力処理へ移行し、ストリングのレ
コードがまたあれば、ステップ504において、ステッ
プ502で入力したレコードを出力処理手段7を用いて
ソート出力ファイル2へ出力し、ステップ502へ戻る
。
ステップ505以下の処理は、レコード領域41内に残
っているレコードをソートしなから出力していく処理で
ある。
っているレコードをソートしなから出力していく処理で
ある。
ステップ505ては、Nにレコード領域41内の残りレ
コード数T−1を設定しくTはレコード領域41内に入
るレコード数で第1の部分て設定済み)、ステップ50
6において、レコード領域41内に残っているレベルL
のレコード(この場合、全レコードがレベルLのはずで
ある)の最上位レコードを、内部ソート処理手段10を
用いて決定、そのアドレスを勝者レコードアドレス領域
42に設定し、ステップ507ではステップ506でア
ドレスを設定した最上位レコードを出力処理手段7を用
いてソート出力ファイル2へ出力する。
コード数T−1を設定しくTはレコード領域41内に入
るレコード数で第1の部分て設定済み)、ステップ50
6において、レコード領域41内に残っているレベルL
のレコード(この場合、全レコードがレベルLのはずで
ある)の最上位レコードを、内部ソート処理手段10を
用いて決定、そのアドレスを勝者レコードアドレス領域
42に設定し、ステップ507ではステップ506でア
ドレスを設定した最上位レコードを出力処理手段7を用
いてソート出力ファイル2へ出力する。
次にステップ508でNを1減算し、ステップ509で
Nか0か判断することによりレコード領域41内にまた
出力されずに残っているレコードがあるか判断し、残っ
ているレコードかまたあれば(NかOてない)ならばス
テップ506へ戻り次の出力レコードの決定と出力の処
理をNが0になるまで繰り返し、残りレコードかなけれ
ば(NがO)ならばソート処理を終了する。
Nか0か判断することによりレコード領域41内にまた
出力されずに残っているレコードがあるか判断し、残っ
ているレコードかまたあれば(NかOてない)ならばス
テップ506へ戻り次の出力レコードの決定と出力の処
理をNが0になるまで繰り返し、残りレコードかなけれ
ば(NがO)ならばソート処理を終了する。
上述したように本発明は、一般には、主記憶装置内に一
度に読み込むことかできない量のデータを、ワークファ
イルを用いてソートするソート処理において、ワークフ
ァイルに生成したソートの中間結果であるストリングが
1本たけであった場合には、入力レコード終了時にメモ
リ内に残っているレコードをストリングとしてワークフ
ァイルに書き出すことをせす、生成した1本のストリン
グからレコードを一件ずつ読み込み出力ファイルに出力
していった後、メモリ内に残っているレコードをソート
しながら出力ファイルに出力していくようにすることに
より、入力レコードの全てではなく、入力レコードのな
かでメモリに入り切れなかった分のみをワークファイル
に出力するだけでソートを行うことができるため、ソー
ト処理実行時間を短縮し、特に入力レコードがメモリに
入り切らなくなった際の性能の低下を防止することがで
きるという効果かある。
度に読み込むことかできない量のデータを、ワークファ
イルを用いてソートするソート処理において、ワークフ
ァイルに生成したソートの中間結果であるストリングが
1本たけであった場合には、入力レコード終了時にメモ
リ内に残っているレコードをストリングとしてワークフ
ァイルに書き出すことをせす、生成した1本のストリン
グからレコードを一件ずつ読み込み出力ファイルに出力
していった後、メモリ内に残っているレコードをソート
しながら出力ファイルに出力していくようにすることに
より、入力レコードの全てではなく、入力レコードのな
かでメモリに入り切れなかった分のみをワークファイル
に出力するだけでソートを行うことができるため、ソー
ト処理実行時間を短縮し、特に入力レコードがメモリに
入り切らなくなった際の性能の低下を防止することがで
きるという効果かある。
第1図は、本発明の一実施例を示すソート処理のブロッ
ク図、第2図はソート主処理手段の第1の部分(レコー
ド領域か満杯になるまでの処理)の処理フローチャート
、第3図はソート主処理手段の第2の部分(レコード領
域が満杯になってから、入力レコードが終了するまでの
間の処理)の処理フローチャート、第4図はソート主処
理手段の第3の部分(入力レコードか終了した時点まで
に生成したストリングの本数が2本以上であった場合の
入力レコード終了からソート終了までの処理)の処理フ
ローチャート、第5図はソート主処理手段の第4の部分
(入力レコードが終了した時点までに生成したストリン
グの本数が1本であった場合の、入力レコード終了から
ソート終了までの処理)の処理フローチャートである。 1・・・ソート入力ファイル、2・・・ソート出力ファ
イル、3−・・ソートワークファイル、4・・・ソート
メモリ領域、5・・・ソート主処理手段、6・・・入力
処理手段、7・・・出力処理手段、8・・・ワークファ
イル入力処理手段、9・・・ワークファイル出力処理手
段、10・・・内部ソート処理手段。
ク図、第2図はソート主処理手段の第1の部分(レコー
ド領域か満杯になるまでの処理)の処理フローチャート
、第3図はソート主処理手段の第2の部分(レコード領
域が満杯になってから、入力レコードが終了するまでの
間の処理)の処理フローチャート、第4図はソート主処
理手段の第3の部分(入力レコードか終了した時点まで
に生成したストリングの本数が2本以上であった場合の
入力レコード終了からソート終了までの処理)の処理フ
ローチャート、第5図はソート主処理手段の第4の部分
(入力レコードが終了した時点までに生成したストリン
グの本数が1本であった場合の、入力レコード終了から
ソート終了までの処理)の処理フローチャートである。 1・・・ソート入力ファイル、2・・・ソート出力ファ
イル、3−・・ソートワークファイル、4・・・ソート
メモリ領域、5・・・ソート主処理手段、6・・・入力
処理手段、7・・・出力処理手段、8・・・ワークファ
イル入力処理手段、9・・・ワークファイル出力処理手
段、10・・・内部ソート処理手段。
Claims (1)
- 主記憶装置内に一度に読み込むことができない量のデー
タを、補助記憶装置上のワークファイルを用いてソート
するソート処理方式において、ソートすべきレコードの
格納された補助記憶装置上のソート入力ファイルと、ソ
ート結果を格納する前記補助記憶装置上のソート出力フ
ァイルと、ソートの中間結果であるストリングと呼ぶ順
序付けられたレコード列を格納する前記補助記憶装置上
のソートワークファイルと、主記憶装置上のメモリ領域
であって、ソートキーの比較によりソートされる前記レ
コードを格納するレコード領域と前記レコード領域内の
レコード群のなかの前記ソートキーの順序で最も早く出
力される最上位レコードのアドレスを格納する勝者レコ
ードアドレス領域からなるソートメモリ領域と、ソート
処理を行うソート主処理手段と、前記ソート入力ファイ
ルから、前記ソートメモリ領域にレコードを1件読み込
む入力処理手段と、前記ソートメモリ領域から、前記ソ
ート出力ファイルにレコードを1件書き込む出力処理手
段と、前記ソートワークファイルから、前記ソートメモ
リ領域にレコードを1件読み込むワークファイル入力処
理手段と、前記ソートメモリ領域から、前記ソートワー
クファイルにレコードを1件書き込むワークファイル出
力処理手段と、前記レコード領域内に格納されている定
められたレコード群のなかの前記最上位のレコードを決
定する内部ソート処理手段とから構成され、前記ソート
主処理手段は、前記ソート入力ファイルから前記入力処
理手段を用いて前記レコード領域内にレコードを一件ず
つ入力し、前記内部ソート処理手段を用いてそれまでに
前記レコード領域内に入力されているレコードの中の前
記最上位のレコードを決定し、決定した前記最上位レコ
ードのアドレスを前記勝者レコードアドレス領域に設定
する処理を繰り返す第一の手段と、前記第一の手段にて
前記レコード領域が前記レコードで満杯となる前に前記
入力レコードが終了した場合は、前記勝者レコードアド
レス領域にアドレスが設定されている前記最上位のレコ
ードを前記出力処理手段を用いて前記ソート出力ファイ
ルへ出力し、次に前記レコード領域内に出力されずに残
っている前記レコードがなくなるまで前記レコードの中
の前記最上位レコードを前記内部ソート処理手段を用い
て決定し前記決定された最上位レコードを前記出力処理
手段を用いて前記ソート出力ファイルに出力する処理を
繰り返す第二の手段と、前記第一の手段にて前記レコー
ド領域がレコードで満杯となった時点で前記入力レコー
ドが終了していない場合は、作成中ストリングのレベル
と次のストリングの前記レベルの2つのレベルを設け、
前記レコード領域内にすでに格納されているレコードを
、前記作成中ストリングにレベル付け、前記レコード領
域内に前記作成中ストリングとしてレベル付けられた前
記レコードがなくなるまで、前記勝者レコードアドレス
領域にアドレスが格納されている前記最上位レコードを
前記作成中ストリングのレコードとして前記ワークファ
イル出力処理手段を用いて前記ソートワークファイルへ
出力する出力処理と、次に前記レコード領域内に残って
いるレコードの中の前記最上位レコードを前記内部ソー
ト処理手段を用いて決定し前記アドレスを前記勝者レコ
ードアドレス領域に設定する前記最上位レコードの決定
処理と、前記ソート入力ファイルから前記入力処理手段
を用いて前記レコード領域へレコードを1件入力し、前
記入力したレコードと前記勝者レコードアドレス領域に
前記アドレスが設定されている前記最上位レコードと前
記ソートキーを比較し、前記最上位レコードが上位の場
合は、入力した前記レコードを前記作成中ストリングの
レベルのレコードとし、前記入力したレコードが上位の
場合は、入力した前記レコードを前記次のストリングの
前記レベルのレコードとしてそれぞれレベル付ける前記
レコードのレベル付け処理を順番に繰り返す第一の掃き
出し処理を行い次に前記次のストリングとしてレベル付
けられている前記レコード領域内のレコード群を前記作
成中ストリングのレコードとしてレベル付けし再び前記
第一の掃き出し処理を繰り返して実行する第三の手段と
、前記第三の手段にて前記レコード領域が満杯となった
後に、前記入力レコードが終了した場合で前記終了まで
に作成した前記ストリングの本数が2本以上または、前
記次のストリングとしてレベル付けられた前記レコード
が前記レコード領域に存在している場合に、前記レコー
ド領域内に残っている前記レコードの内まず、前記作成
中ストリングとしてレベル付けられている前記レコード
群を対象として、前記レコード群のレコードが全て前記
ストリングとして出力され前記レコード領域からなくな
るまで前記勝者レコードアドレス領域にアドレスが設定
されている前記最上位レコードの前記ソートワークファ
イルへの前記ワークファイル出力処理手段を用いた出力
処理と、前記内部ソート処理手段を用いた前記レコード
領域内に残っているレコード群の前記最上位レコードの
決定と前記決定されたアドレスの前記勝者レコードアド
レス領域への設定の処理を繰り返す第二の掃き出し処理
を実行し、前記次のストリングとしてレベル付けられた
前記レコード群があれば前記レコード群を再び前記作成
中ストリングとしてレベル付け前記レコード群に対して
前記第二の掃き出し処理を繰り返し次に前記ワークファ
イル入力処理手段を用いて、前記ワークファイルより前
記ソートメモリ領域に前記ストリングを読み込みながら
マージし1本のストリングにまとめて前記出力処理手段
を用いて前記ソート出力ファイルへ出力する第四の手段
と、前記第三の手段にて前記レコード領域が満杯となっ
た後に、前記入力レコードが終了した場合で、前記スト
リングの本数が1本でかつ前記レコード領域内に前記次
のストリングとしてレベル付けられている前記レコード
が存在しないならば、前記勝者レコードアドレス領域に
前記アドレスが設定されているレコードを、前記ワーク
ファイル出力処理手段を用いて前記ソートワークファイ
ルへ出力し次に、前記ソートワークファイルに出力され
た前記ストリングの全レコードについて前記ワークファ
イル入力処理手段を用いて前記レコードを1件ずつ前記
レコード領域内に入力し入力した前記レコードを前記出
力処理手段を用いて前記ソート出力ファイルに出力し、
最後に前記レコード領域に残存している前記レコードが
1件もなくなるまで、前記内部ソート処理手段により残
存している前記レコード群のなかの前記最上位レコード
を決定し前記最上位アドレスを前記勝者レコードアドレ
ス領域に設定する処理と、前記出力処理手段により前記
勝者レコードアドレス領域にアドレスが設定されている
前記最上位レコードを前記ソート出力ファイルに出力す
る処理を繰り返す第五の手段とから構成されることを特
徴とするソート処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2265738A JP2541006B2 (ja) | 1990-10-03 | 1990-10-03 | ソ―ト処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2265738A JP2541006B2 (ja) | 1990-10-03 | 1990-10-03 | ソ―ト処理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04141726A true JPH04141726A (ja) | 1992-05-15 |
| JP2541006B2 JP2541006B2 (ja) | 1996-10-09 |
Family
ID=17421309
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2265738A Expired - Fee Related JP2541006B2 (ja) | 1990-10-03 | 1990-10-03 | ソ―ト処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2541006B2 (ja) |
-
1990
- 1990-10-03 JP JP2265738A patent/JP2541006B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2541006B2 (ja) | 1996-10-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7017005B2 (en) | Implementation of a content addressable memory using a RAM-cell structure | |
| US7584173B2 (en) | Edit distance string search | |
| US5027305A (en) | Interrogating device for changing the priority of the inference rules | |
| JPH08129551A (ja) | ハッシュ方式 | |
| KR20220106622A (ko) | 복수의 스킵리스트를 병합하기 위한 지퍼 컴팩션 방법 및 장치 | |
| CN114297193B (zh) | 一种基于hash的数据比对方法及装置 | |
| JP3850134B2 (ja) | データ検索装置 | |
| CN113253932B (zh) | 一种分布式存储系统的读写控制方法和系统 | |
| CN118193032B (zh) | 消除无效依赖库的方法、装置、设备、介质和程序产品 | |
| US20080162591A1 (en) | Method of Logging Transactions and a Method of Reversing a Transaction | |
| JPH04141726A (ja) | ソート処理方式 | |
| US11625386B2 (en) | Fast skip list purge | |
| US5146458A (en) | Data transfer checking system | |
| JP2586610B2 (ja) | ファイル作成方式 | |
| JP2606608B2 (ja) | 同値キーが存在するデータのソート方式 | |
| JPH11513160A (ja) | 反復探索実行方法 | |
| JP2604787B2 (ja) | 二次元データ格納方式 | |
| JPS58137068A (ja) | デ−タ処理方式 | |
| JP2590866B2 (ja) | データ検索装置 | |
| JPS6143338A (ja) | 連想技術を使用して稀薄なデータベースをサーチする方法 | |
| JPH0766391B2 (ja) | 連想マトリツクスのサーチ方法 | |
| JP2507399B2 (ja) | デ―タベ―ス装置 | |
| JPS6046456B2 (ja) | デ−タアクセス装置 | |
| JP3871971B2 (ja) | 外形線抽出装置,方法およびプログラム | |
| JPS63239521A (ja) | 磁気テ−プ装置のデ−タ処理方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070725 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080725 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090725 Year of fee payment: 13 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100725 Year of fee payment: 14 |
|
| LAPS | Cancellation because of no payment of annual fees |