JP2541006B2 - ソ―ト処理方式 - Google Patents

ソ―ト処理方式

Info

Publication number
JP2541006B2
JP2541006B2 JP2265738A JP26573890A JP2541006B2 JP 2541006 B2 JP2541006 B2 JP 2541006B2 JP 2265738 A JP2265738 A JP 2265738A JP 26573890 A JP26573890 A JP 26573890A JP 2541006 B2 JP2541006 B2 JP 2541006B2
Authority
JP
Japan
Prior art keywords
record
sort
area
output
processing means
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.)
Expired - Fee Related
Application number
JP2265738A
Other languages
English (en)
Other versions
JPH04141726A (ja
Inventor
洋一 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2265738A priority Critical patent/JP2541006B2/ja
Publication of JPH04141726A publication Critical patent/JPH04141726A/ja
Application granted granted Critical
Publication of JP2541006B2 publication Critical patent/JP2541006B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、一般には、主記憶装置内に一度に読み込む
ことができない量のデータを、ワークファイルを用いて
ソートするソート処理方式に関する。
〔従来の技術〕
従来、主記憶装置内に一度に読み込むことができない
量のデータを、ワークファイルを用いてソートするソー
ト処理においては、主記憶装置内にデータを一度に読み
込むことができなかった場合、たとえそれまでにワーク
ファイルに出力したストリングが1本で、かつ主記憶装
置内に次のストリングのレコードとしてレベル付けられ
たレコードが存在しない場合でも、一旦主記憶装置内に
残っているレコードをストリングとしてワークファイル
に全て掃き出してからマージフェーズに移り、マージフ
ェーズにおいて、そのストリングを読み込み出力ファイ
ルに出力していた。
〔発明が解決しようとする課題〕
上述したように、従来の技術においては、主記憶装置
内にデータを一度に読み込むことができなかった場合、
たとえそれまでにワークファイルに出力したストリング
が1本で、かつ主記憶装置内に次のストリングのレコー
ドとしてレベル付けられたレコードが存在しない場合で
も、一旦主記憶装置内に残っているレコードをストリン
グとしてワークファイルに全て掃き出してからマージフ
ェーズに移り、マージフェーズにおいて、そのストリン
グを読み込み出力ファイルに出力していたため、主記憶
装置に入りきれなかったデータが、主記憶装置の容量に
比べてごく少量であるような場合でも、主記憶装置に入
りきれなかったデータだけでなく入力した全データをワ
ークファイルに書き出し、そのあと同量のデータをワー
クファイルから読み込まなければならないため、ワーク
ファイルへの入出力回数が急増し、それがシステムの性
能低下を引き起こしてしまう欠点があった。
〔課題を解決するための手段〕
本発明は、主記憶装置内に一度に読み込むことができ
ない量のデータを、補助記憶装置上のワークファイルを
用いてソートするソート処理方式において、ソートすべ
きレコードの格納された補助記憶装置上のソート入力フ
ァイルと、ソート結果を格納する前記補助記憶装置上の
ソート出力ファイルと、ソートの中間結果であるストリ
ングと呼ぶ順序付けられたレコード列を格納する前記補
助記憶装置上のソートワークファイルと、主記憶装置上
のメモリ領域であって、ソートキーの比較によりソート
される前記レコードを格納するレコード領域と前記レコ
ード領域内のレコード群のなかの前記ソートキーの順序
で最も早く出力される最上位レコードのアドレスを格納
する勝者レコードアドレス領域からなるソートメモリ領
域と、ソート処理を行うソート主処理手段と、前記ソー
ト入力ファイルから、前記ソートメモリ領域にレコード
を1件読み込む入力処理手段と、前記ソートメモリ領域
から、前記ソート出力ファイルにレコードを1件書き込
む出力処理手段と、前記ソートワークファイルから、前
記ソートメモリ領域にレコードを1件読み込むワークフ
ァイル入力処理手段と、前記ソートメモリ領域から、前
記ソートワークファイルにレコードを1件書き込むワー
クファイル出力処理手段と、前記レコード領域内に格納
されている定められたレコード群のなかの前記最上位の
レコードを決定する内部ソート処理手段とから構成さ
れ、前記ソート主処理手段は、前記ソート入力ファイル
から前記入力処理手段を用いて前記レコード領域内にレ
コードを一件ずつ入力し、前記内部ソート処理手段を用
いてそれまでに前記レコード領域内に入力されているレ
コードの中の前記最上位のレコードを決定し、決定した
前記最上位レコードのアドレスを前記勝者レコードアド
レス領域に設定する処理を繰り返す第一の手段と、前記
第一の手段にて前記レコード領域が前記レコードで満杯
となる前に前記入力レコードが終了した場合は、前記勝
者レコードアドレス領域にアドレスが設定されている前
記最上位のレコードを前記出力処理手段を用いて前記ソ
ート出力ファイルへ出力し、次に前記レコード領域内に
出力されずに残っている前記レコードがなくなるまで前
記レコードの中の前記最上位レコードを前記内部ソート
処理手段を用いて決定し前記決定された最上位レコード
を前記出力処理手段を用いて前記ソート出力ファイルに
出力する処理を繰り返す第二の手段と、前記第一の手段
にて前記レコード領域がレコードで満杯となった時点で
前記入力レコードが終了していない場合は、作成中スト
リングのレベルと次のストリングの前記レベルの2つの
レベルを設け、前記レコード領域内にすでに格納されて
いるレコードを、前記作成中ストリングにレベル付け、
前記レコード領域内に前記作成中ストリングとしてレベ
ル付けられた前記レコードがなくなるまで、前記勝者レ
コードアドレス領域にアドレスが格納されている前記最
上位レコードを前記作成中ストリングのレコードとして
前記ワークファイル出力処理手段を用いて前記ソートワ
ークファイルへ出力する出力処理と、次に前記レコード
領域内に残っているレコードの中の前記最上位レコード
を前記内部ソート処理手段を用いて決定し前記アドレス
を前記勝者レコードアドレス領域に設定する前記最上位
レコードの決定処理と、前記ソート入力ファイルから前
記入力処理手段を用いて前記レコード領域へレコードを
1件入力し、前記入力したレコードと前記勝者レコード
アドレス領域に前記アドレスが設定されている前記最上
位レコードと前記ソートキーを比較し、前記最上位レコ
ードが上位の場合は、入力した前記レコードを前記作成
中ストリングのレベルのレコードとし、前記入力したレ
コードが上位の場合は、入力した前記レコードを前記次
のストリングの前記レベルのレコードとしてそれぞれレ
ベル付ける前記レコードのレベル付け処理を順番に繰り
返す第一の掃き出し処理を行い次に前記次のストリング
としてレベル付けられている前記レコード領域内のレコ
ード群を前記作成中ストリングのレコードとしてレベル
付けし再び前記第一の掃き出し処理を繰り返して実行す
る第三の手段と、前記第三の手段にて前記レコード領域
が満杯となった後に、前記入力レコードが終了した場合
で前記終了までに作成した前記ストリングの本数が2本
以上または、前記次のストリングとしてレベル付けられ
た前記レコードが前記レコード領域に存在している場合
に、前記レコード領域内に残っている前記レコードの内
まず、前記作成中ストリングとしてレベル付けられてい
る前記レコード群を対象として、前記レコード群のレコ
ードが全て前記ストリングとして出力され前記レコード
領域からなくなるまで前記勝者レコードアドレス領域に
アドレスが設定されている前記最上位レコードの前記ソ
ートワークファイルへの前記ワークファイル出力処理手
段を用いた出力処理と、前記内部ソート処理手段を用い
た前記レコード領域内に残っているレコード群の前記最
上位レコードの決定と前記決定されたアドレスの前記勝
者レコードアドレス領域への設定の処理を繰り返す第二
の掃き出し処理を実行し、前記次のストリングとしてレ
ベル付けられた前記レコード群があれば前記レコード群
を再び前記作成中ストリングとしてレベル付け前記レコ
ード群に対して前記第二の掃き出し処理を繰り返し次に
前記ワークファイル入力処理手段を用いて、前記ワーク
ファイルより前記ソートメモリ領域に前記ストリングを
読み込みながらマージし1本のストリングにまとめて前
記出力処理手段を用いて前記ソート出力ファイルへ出力
する第四の手段と、前記第三の手段にて前記レコード領
域が満杯となった後に、前記入力レコードが終了した場
合で、前記ストリングの本数が1本でかつ前記レコード
領域内に前記次のストリングとしてレベル付けられてい
る前記レコードが存在しないならば、前記勝者レコード
アドレス領域に前記アドレスが設定されているレコード
を、前記ワークファイル出力処理手段を用いて前記ソー
トワークファイルへ出力し次に、前記ソートワークファ
イルに出力された前記ストリングの全レコードについて
前記ワークファイル入力処理手段を用いて前記レコード
を1件ずつ前記レコード領域内に入力し入力した前記レ
コードを前記出力処理手段を用いて前記ソート出力ファ
イルに出力し、最後に前記レコード領域に残存している
前記レコードが1件もなくなるまで、前記内部ソート処
理手段により残存している前記レコード群のなかの前記
最上位レコードを決定し前記最上位アドレスを前記勝者
レコードアドレス領域に設定する処理と、前記出力処理
手段により前記勝者レコードアドレス領域にアドレスが
設定されている前記最上位レコードを前記ソート出力フ
ァイルに出力する処理を繰り返す第五の手段とから構成
されることを特徴とする。
〔実施例〕
次に本発明について、図面を参照して説明する。
第1図は、本発明の一実施例を示すブロック図であ
る。
第1図において、1はソートすべきレコードの格納さ
れた補助記憶装置上のソート入力ファイル、2はソート
結果を出力するための補助記憶装置上のソート出力ファ
イル、3はソートの中間結果であるストリングと呼ぶ順
序付けられたレコード列を格納しておくための補助記憶
装置上のソートワークファイル、4はソートの対象とな
るレコードを読み込むための主記憶装置上のメモリ領域
であり、レコード領域41、勝者レコードアドレス領域42
からなるソートメモリ領域、5はソート主処理手段、6
はソート入力ファイル1から、ソートメモリ領域4にレ
コードを1件読み込むための入力処理手段、7はソート
メモリ領域4からソート出力ファイル2にレコードを1
件書き込むための出力処理手段、8はソートワークファ
イル3から、ソートメモリ領域4にソートを1件読み込
むためのワークファイル入力処理手段、9はソートメモ
リ領域4から、ソートワークファイル3にレコードを1
件書き込むためのワークファイル出力処理手段、10はレ
コード領域41内に格納されている、定められたレコード
群のなかの、最上位のレコードを決定するための内部ソ
ート処理手段である。
本実施例で説明するソート主処理手段5は、大きく分
けて4つの部分からなる。
以下、それぞれの部分の処理の詳細について説明す
る。
第1の部分は、ソート入力ファイル1からレコードを
1件ずつレコード領域41に入力していきレコード領域41
が満杯になるまでの処理、及びレコード領域41が満杯に
なる前に入力レコードが終了したときの処理の部分であ
る。
第2図は、ソート主処理手段5の第1の部分の処理ス
テップを示す図である。
ソート主処理手段5はまずステップ201において、生
成したストリングの本数をカウントするための制御変数
Lを1に、レコード領域41内のレコードで作成中ストリ
ングに出力されるべきレコードとしてレベル付けられて
いるレコードの数を示すための制御変数Nに0を、レコ
ード領域41内のレコードで次のストリングに出力される
べきレコードとしてレベル付けられているレコードの数
を示すための制御変数Mに0をそれぞれ初期値として設
定し、ステップ202でレコード領域41内に入力できるレ
コードの件数をTに設定しソートを開始するための準備
を終了する。
ステップ203から実際のソートの処理に入り、ますス
テップ203において入力処理手段6を呼び出しソート入
力ファイル1からレコード領域41へレコードを1件入力
し、ステップ204で入力すべきレコードが尽きた旨入力
処理手段6から通知されたかをチェックし、入力すべき
レコードが尽きた旨入力処理手段6から通知されていた
ならばステップ209以降のメモリ内ソートの処理に分岐
する。
第1の部分は、レコード領域41が満杯になるまでの処
理であり、入力されたレコードはすべて作成中(最初
の)ストリングのレコードとしてレベル付ける。そのた
めステップ203で入力レコードがあった場合にはステッ
プ205においてNに1を加算し、ステップ206では入力し
たレコードのレベルをLに設定する。
次にステップ207において、内部ソート処理手段10を
用いてレコード領域41内のレベルLのレコード(この時
点は全レコードがレベルLである)のなかの最上位レコ
ードを決定し、決定した最上位レコードのアドレスを勝
者レコードアドレス領域42へ設定する。
次にステップ208では、NとTとを比較してレコード
領域41が満杯になったかをチェック、NがT以上ならば
レコード領域41は満杯であるので第2の部分へ進み、N
がTより小ならばステップ203へ戻り次のレコードを入
力する。
ステップ209以降は、レコード領域41が満杯になる前
に入力レコードが終了した場合の処理(メモリ内ソート
の処理)であり、ステップ209で入力レコード件数Nが
0であるかチェックし、0であればソートを終了する。
入力レコード件数が0でない場合は、ステップ210に
おいて、勝者レコードアドレス領域42にそのアドレスが
設定されている最上位レコードを、出力処理手段7を用
いてソート出力ファイル2へ出力した後、ステップ211
でNを1減算する。
次にステップ212でまだ出力されずにレコード領域41
に残っているレコード数Nが0かチェックし、0ならば
ソートを終了し、0でなければステップ213で、残って
いるレコードのなかの最上位レコードを内部ソート処理
手段10を用いて決定、そのアドレスを勝者レコードアド
レス領域42に設定した後、ステップ210に戻りそのレコ
ードを出力、以下ステップ213,210をNが0になるまで
繰り返すことによりレコード領域41内に残っているレコ
ードをソートしながらソート出力ファイル2へ出力して
いく。
ソート主処理手段5の第2の部分は、レコード領域41
が満杯になってから、入力レコードが終了するまでの間
の処理の部分である。
第3図は、ソート主処理手段5の第2の部分の処理ス
テップを示す図である。
ソート主処理手段5は、ステップ301で、勝者レコー
ドアドレス領域42にそのアドレスが設定されている、そ
れまでの対戦での最上位レコードをワークファイル出力
処理手段9を用いてソートワークファイル3へ出力し、
ステップ302ではレコード領域41内の、作成中ストリン
グへ出力すべきレコードとしてレベル付けられているレ
コード数を示す制御変数Nから1を減算する。
ステップ301でレコード領域41からレコードを1件出
力したため、後述のステップ305で次のレコードを1件
入力するための空き領域がレコード領域41に確保された
ことになる。
次にステップ303でNが0であるかを判断し、レコー
ド領域41内に、作成中ストリングに出力すべきレコード
としてレベル付けられているレコードがまだ残っている
か調べ、残っていなければ、ステップ313からステップ3
16までのストリングの切り替えの処理を実行した後ステ
ップ304へ移行する。
作成中ストリングに出力すべきレコードとしてレベル
付けられているレコードがまだ残っていれば、ステップ
304において、レコード領域41内のレベルLのレコード
(作成中ストリングに出力すべきレコードとしてレベル
付けられているレコード)のなかの最上位レコードを内
部ソート処理手段10を用いて決定、そのアドレスを勝者
レコードアドレス領域42へ設定し、ステップ305で入力
処理手段6を呼び出し、次の入力レコードを、レコード
領域41へ入力する。
次にステップ306において、入力すべきレコードが尽
きた旨入力処理手段6から通知されたかをチェックし、
入力すべきレコードが尽きた旨入力処理手段6から通知
されていたならばステップ317以降の第2の部分の最終
処理へ分岐する。
入力レコードがまだあったならば、ステップ307にお
いて、入力レコードと、勝者レコードアドレス領域42に
アドレスが設定されている最上位レコードとを対戦させ
る。
ステップ308ではステップ307の対戦結果を判定し、勝
者レコードアドレス領域42で示される最上位レコードが
勝ったならば、ステップ309で入力レコードのレベルを
Lに設定しステップ310でNに1加算することにより、
入力レコードのレベルを、作成中ストリングへ出力すべ
きレコードとしてレベル付け、入力レコードが勝ったな
らば、ステップ311で入力レコードのレベルをL+1
(次のストリング)に設定し、ステップ312でMに1を
加算することにより入力レコードのレベルを、次のスト
リングへ出力すべきレコードとしてレベル付けた後、ス
テップ301へ戻り、勝者レコードアドレス領域42にアド
レスが設定されている最上位レコードをソートワークフ
ァイル3へ出力する。
ステップ313からステップ316は、ストリングの切り替
えの処理であり、まずステップ313で、作成中ストリン
グに出力すべきレコードとしてレベル付けられているレ
コード数を示す制御変数Nに、次のストリングに出力す
べきレコードとしてレベル付けられているレコード数を
示す制御変数Mの値を設定することにより次のストリン
グを作成中ストリングとした後、ステップ314でMに0
を再設定、ステップ315で、ストリングカウントLに1
を加算した後、ステップ316でストリングの切り替えを
行った後、ステップ305へ移行し新しいストリングの処
理に移る。
ステップ317以降は、第2の部分の最終処理であり、
ステップ317でそれまでにソートワークファイル3へ生
成したストリング数Lが1か判定し1でなければ、第3
の部分に制御を移行し、1であればステップ318におい
て、Mが0か判断することにより、次のストリングに出
力すべきレコードとしてレベル付けられたレコードがレ
コード領域41内に存在しないかを判断し、存在しない
(Mが0)ならば第4の部分に制御を移行し、存在する
(Mが0でない)ならば第3の部分に制御を移行する。
ソート主処理手段5の第3の部分は、入力レコードが
終了した時点までに生成したストリングの本数が2本以
上であった場合の入力レコード終了からソート終了まで
の処理の部分である。
第4図は、ソート主処理手段5の第3の部分の処理ス
テップを示す図である。
入力レコードが終了するとソート主処理手段5はまず
ステップ401で勝者レコードアドレス領域42にそのアド
レスが設定されている、作成中ストリングに出力すべき
レコードとしてレベル付けられたレコードの最上位レコ
ードをワークファイル出力処理手段9を用いてソートワ
ークファイル3へ出力し、ステップ402でNを1減算す
る。
次にステップ403で、Nが0かを判断することにより
作成中ストリングに出力すべきレコードとしてレベル付
けられたレコードがレコード領域41に残っているか判断
し、残っている(Nが0でない)ならば、ステップ409
で、レコード領域41内に残っているレベルLのレコード
(作成中ストリングへ出力するレコード)の最上位レコ
ードを内部ソート処理手段10を用いて決定、そのアドレ
スを勝者レコードアドレス領域42へ設定した後ステップ
401へ戻り、作成中ストリングに出力すべきレコードと
してレベル付けられたレコードがレコード領域41に残っ
ていない(Nが0)ならば、ステップ404へ移行する。
ステップ404ではMが0か判断することにより次のス
トリングへ出力すべきレコードとしてレベル付けられた
レコードがレコード領域41内に存在するかを判断し、存
在しない(Mが0)ならば、ステップ410のストリング
のマージフェーズへ移行し、存在する(Mが0でない)
ならば、ステップ405からステップ408までのストリング
切り替えの処理を実行した後、ステップ409へ移行し、
ステップ409,401,402,403を、Nが0になるまでくりか
えすことにより、最後のストリングを生成する。
ステップ405からステップ408までは、第2の部分のス
テップ313から316と同様なストリングと切り替え処理で
あり、ステップ405でNにMを設定、ステップ406で、M
に0を再設定、ステップ407でLに1を加算した後、ス
テップ408でストリングの切り替え処理を実行し、ステ
ップ409へ移行する。
ステップ410は、ソートワークファイル3に生成した
ストリングをマージする処理であり、ワークファイル入
力処理手段8を用いて、ソートワークファイル3からス
トリングをソートメモリ領域4へ入力しながらマージし
ていき、最終的に1本のストリングにまとめられるまで
繰り返しマージし、最終的な1本のストリングを出力処
理手段7を用いてソート出力ファイル2へ出力してい
き、ソート処理を終了する。
ソート主処理手段5の第4の部分は、入力レコードが
終了した時点までに生成したストリングの本数が1本で
あった場合の、入力レコード終了からソート終了までの
処理の部分である。
第5図は、ソート主処理手段5の第4の部分の処理ス
テップを示す図である。
入力レコードが終了するとソート主処理手段5はまず
ステップ501で、勝者レコードアドレス領域42にそのア
ドレスが設定されている、作成中ストリングに出力すべ
きレコードとしてレベル付けられたレコードの最上位レ
コードをワークファイル出力処理手段9を用いてソート
ワークファイル3へ出力してストリングを終了させ、ス
テップ502へ移行する。
ステップ502ではワークファイル入力処理手段8を用
いて、ソートワークファイル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の部分で設定済み)、ステップ506にお
いて、レコード領域41内に残っているレベルLのレコー
ド(この場合、全レコードがレベルLのはずである)の
最上位レコードを、内部ソート処理手段10を用いて決
定、そのアドレスを勝者レコードアドレス領域42に設定
し、ステップ507ではステップ506でアドレスを設定した
最上位レコードを出力処理手段7を用いてソート出力フ
ァイル2へ出力する。
次にステップ508でNを1減算し、ステップ509でNが
0か判断することによりレコード領域41内にまだ出力さ
れずに残っているレコードがあるか判断し、残っている
レコードがまだあれば(Nが0でない)ならばステップ
506へ戻り次の出力レコードの決定と出力の処理をNが
0になるまで繰り返し、残りレコードがなければ(Nが
0)ならばソート処理を終了する。
〔発明の効果〕
上述したように本発明は、一般には、主記憶装置内に
一度に読み込むことができない量のデータを、ワークフ
ァイルを用いてソートするソート処理において、ワーク
ファイルに生成したソートの中間結果であるストリング
が1本だけであった場合には、入力レコード終了時にメ
モリ内に残っているレコードをストリングとしてワーク
ファイルに書き出すことをせず、生成した1本のストリ
ングからレコードを一件ずつ読み込み出力ファイルに出
力していった後、メモリ内に残っているレコードをソー
トしながら出力ファイルに出力していくようにすること
により、入力レコードの全てではなく、入力レコードの
なかでメモリに入り切れなかった分のみをワークファイ
ルに出力するだけでソートを行うことができるため、ソ
ート処理実行時間を短縮し、特に入力レコードがメモリ
に入り切らなくなった際の性能の低下を防止することが
できるという効果がある。
【図面の簡単な説明】
第1図は、本発明の一実施例を示すソート処理のブロッ
ク図、第2図はソート主処理手段の第1の部分(レコー
ド領域が満杯になるまでの処理)の処理フローチャー
ト、第3図はソート主処理手段の第2の部分(レコード
領域が満杯になってから、入力レコードが終了するまで
の間の処理)の処理フローチャート、第4図はソート主
処理手段の第3の部分(入力レコードが終了した時点ま
でに生成したストリングの本数が2本以上であった場合
の入力レコード終了からソート終了までの処理)の処理
フローチャート、第5図はソート主処理手段の第4の部
分(入力レコードが終了した時点までに生成したストリ
ングの本数が1本であった場合の、入力レコード終了か
らソート終了までの処理)の処理フローチャートであ
る。 1……ソート入力ファイル、2……ソート出力ファイ
ル、3……ソートワークファイル、4……ソートメモリ
領域、5……ソート主処理手段、6……入力処理手段、
7……出力処理手段、8……ワークファイル入力処理手
段、9……ワークファイル出力処理手段、10……内部ソ
ート処理手段。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶装置内に一度に読み込むことができ
    ない量のデータを、補助記憶装置上のワークファイルを
    用いてソートするソート処理方式において、ソートすべ
    きレコードの格納された補助記憶装置上のソート入力フ
    ァイルと、ソート結果を格納する前記補助記憶装置上の
    ソート出力ファイルと、ソートの中間結果であるストリ
    ングと呼ぶ順序付けられたレコード列を格納する前記補
    助記憶装置上のソートワークファイルと、主記憶装置上
    のメモリ領域であって、ソートキーの比較によりソート
    される前記レコードを格納するレコード領域と前記レコ
    ード領域内のレコード群のなかの前記ソートキーの順序
    で最も早く出力される最上位レコードのアドレスを格納
    する勝者レコードアドレス領域からなるソートメモリ領
    域と、ソート処理を行うソート主処理手段と、前記ソー
    ト入力ファイルから、前記ソートメモリ領域にレコード
    を1件読み込む入力処理手段と、前記ソートメモリ領域
    から、前記ソート出力ファイルにレコードを1件書き込
    む出力処理手段と、前記ソートワークファイルから、前
    記ソートメモリ領域にレコードを1件読み込むワークフ
    ァイル入力処理手段と、前記ソートメモリ領域から、前
    記ソートワークファイルにレコードを1件書き込むワー
    クファイル出力処理手段と、前記レコード領域内に格納
    されている定められたレコード群のなかの前記最上位の
    レコードを決定する内部ソート処理手段とから構成さ
    れ、前記ソート主処理手段は、前記ソート入力ファイル
    から前記入力処理手段を用いて前記レコード領域内にレ
    コードを一件ずつ入力し、前記内部ソート処理手段を用
    いてそれまでに前記レコード領域内に入力されているレ
    コードの中の前記最上位のレコードを決定し、決定した
    前記最上位レコードのアドレスを前記勝者レコードアド
    レス領域に設定する処理を繰り返す第一の手段と、前記
    第一の手段にて前記レコード領域が前記レコードで満杯
    となる前に前記入力レコードが終了した場合は、前記勝
    者レコードアドレス領域にアドレスが設定されている前
    記最上位のレコードを前記出力処理手段を用いて前記ソ
    ート出力ファイルへ出力し、次に前記レコード領域内に
    出力されずに残っている前記レコードがなくなるまで前
    記レコードの中の前記最上位レコードを前記内部ソート
    処理手段を用いて決定し前記決定された最上位レコード
    を前記出力処理手段を用いて前記ソート出力ファイルに
    出力する処理を繰り返す第二の手段と、前記第一の手段
    にて前記レコード領域がレコードで満杯となった時点で
    前記入力レコードが終了していない場合は、作成中スト
    リングのレベルと次のストリングの前記レベルの2つの
    レベルを設け、前記レコード領域内にすでに格納されて
    いるレコードを、前記作成中ストリングにレベル付け、
    前記レコード領域内に前記作成中ストリングとしてレベ
    ル付けられた前記レコードがなくなるまで、前記勝者レ
    コードアドレス領域にアドレスが格納されている前記最
    上位レコードを前記作成中ストリングのレコードとして
    前記ワークファイル出力処理手段を用いて前記ソートワ
    ークファイルへ出力する出力処理と、次に前記レコード
    領域内に残っているレコードの中の前記最上位レコード
    を前記内部ソート処理手段を用いて決定し前記アドレス
    を前記勝者レコードアドレス領域に設定する前記最上位
    レコードの決定処理と、前記ソート入力ファイルから前
    記入力処理手段を用いて前記レコード領域へレコードを
    1件入力し、前記入力したレコードと前記勝者レコード
    アドレス領域に前記アドレスが設定されている前記最上
    位レコードと前記ソートキーを比較し、前記最上位レコ
    ードが上位の場合は、入力した前記レコードを前記作成
    中ストリングのレベルのレコードとし、前記入力したレ
    コードが上位の場合は、入力した前記レコードを前記次
    のストリングの前記レベルのレコードとしてそれぞれレ
    ベル付ける前記レコードのレベル付け処理を順番に繰り
    返す第一の掃き出し処理を行い次に前記次のストリング
    としてレベル付けられている前記レコード領域内のレコ
    ード群を前記作成中ストリングのレコードとしてレベル
    付けし再び前記第一の掃き出し処理を繰り返して実行す
    る第三の手段と、前記第三の手段にて前記レコード領域
    が満杯となった後に、前記入力レコードが終了した場合
    で前記終了までに作成した前記ストリングの本数が2本
    以上または、前記次のストリングとしてレベル付けられ
    た前記レコードが前記レコード領域に存在している場合
    に、前記レコード領域内に残っている前記レコードの内
    まず、前記作成中ストリングとしてレベル付けられてい
    る前記レコード群を対象として、前記レコード群のレコ
    ードが全て前記ストリングとして出力され前記レコード
    領域からなくなるまで前記勝者レコードアドレス領域に
    アドレスが設定されている前記最上位レコードの前記ソ
    ートワークファイルへの前記ワークファイル出力処理手
    段を用いた出力処理と、前記内部ソート処理手段を用い
    た前記レコード領域内に残っているレコード群の前記最
    上位レコードの決定と前記決定されたアドレスの前記勝
    者レコードアドレス領域への設定の処理を繰り返す第二
    の掃き出し処理を実行し、前記次のストリングとしてレ
    ベル付けられた前記レコード群があれば前記レコード群
    を再び前記作成中ストリングとしてレベル付け前記レコ
    ード群に対して前記第二の掃き出し処理を繰り返し次に
    前記ワークファイル入力処理手段を用いて、前記ワーク
    ファイルより前記ソートメモリ領域に前記ストリングを
    読み込みながらマージし1本のストリングにまとめて前
    記出力処理手段を用いて前記ソート出力ファイルへ出力
    する第四の手段と、前記第三の手段にて前記レコード領
    域が満杯となった後に、前記入力レコードが終了した場
    合で、前記ストリングの本数が1本でかつ前記レコード
    領域内に前記次のストリングとしてレベル付けられてい
    る前記レコードが存在しないならば、前記勝者レコード
    アドレス領域に前記アドレスが設定されているレコード
    を、前記ワークファイル出力処理手段を用いて前記ソー
    トワークファイルへ出力し次に、前記ソートワークファ
    イルに出力された前記ストリングの全レコードについて
    前記ワークファイル入力処理手段を用いて前記レコード
    を1件ずつ前記レコード領域内に入力し入力した前記レ
    コードを前記出力処理手段を用いて前記ソート出力ファ
    イルに出力し、最後に前記レコード領域に残存している
    前記レコードが1件もなくなるまで、前記内部ソート処
    理手段により残存している前記レコード群のなかの前記
    最上位レコードを決定し前記最上位アドレスを前記勝者
    レコードアドレス領域に設定する処理と、前記出力処理
    手段により前記勝者レコードアドレス領域にアドレスが
    設定されている前記最上位レコードを前記ソート出力フ
    ァイルに出力する処理を繰り返す第五の手段とから構成
    されることを特徴とするソート処理方式。
JP2265738A 1990-10-03 1990-10-03 ソ―ト処理方式 Expired - Fee Related JP2541006B2 (ja)

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 JPH04141726A (ja) 1992-05-15
JP2541006B2 true 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)

Also Published As

Publication number Publication date
JPH04141726A (ja) 1992-05-15

Similar Documents

Publication Publication Date Title
US5487164A (en) Distribution-based replacement selection sorting system
US5960431A (en) Method and apparatus for adding data storage bins to a stored computer database while minimizing movement of data and balancing data distribution
JPH02178730A (ja) 分割法を用いた内部ソート方式
US7584173B2 (en) Edit distance string search
JPH08129551A (ja) ハッシュ方式
CN110097361A (zh) 一种基于x11算法的区块链动态算力共识方法及计算机系统
CN107807793B (zh) 分布式计算机存储系统中数据副本异构存储与访问方法
JP3515810B2 (ja) ソート処理方法および装置
JP2541006B2 (ja) ソ―ト処理方式
JPH11282852A (ja) データ検索装置
JP2606608B2 (ja) 同値キーが存在するデータのソート方式
JP2586610B2 (ja) ファイル作成方式
CN115374127B (zh) 数据存储方法及装置
KR102568662B1 (ko) 복수의 스킵리스트를 병합하기 위한 지퍼 컴팩션 방법 및 장치
EA005269B1 (ru) Способ организации и хранения данных в базе данных и база данных
JPS6046456B2 (ja) デ−タアクセス装置
JP2590866B2 (ja) データ検索装置
JP2604787B2 (ja) 二次元データ格納方式
JP2673085B2 (ja) リレーショナルデータベースの結合処理方法
CN112579575A (zh) 一种数据库索引结构的快速构建方法
JP3785766B2 (ja) マージ処理装置
JP3293544B2 (ja) 補助記憶装置を用いたソート方式
JPH06332669A (ja) レコードソート方式
JP3293551B2 (ja) ソート処理方法
JPH04213111A (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