JPH05241785A - ソート処理方式 - Google Patents

ソート処理方式

Info

Publication number
JPH05241785A
JPH05241785A JP7310292A JP7310292A JPH05241785A JP H05241785 A JPH05241785 A JP H05241785A JP 7310292 A JP7310292 A JP 7310292A JP 7310292 A JP7310292 A JP 7310292A JP H05241785 A JPH05241785 A JP H05241785A
Authority
JP
Japan
Prior art keywords
sort
processing means
merge
file
strings
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.)
Pending
Application number
JP7310292A
Other languages
English (en)
Inventor
Yoichi Ueda
洋一 上田
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP7310292A priority Critical patent/JPH05241785A/ja
Publication of JPH05241785A publication Critical patent/JPH05241785A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 (修正有) 【目的】 ソート処理方式で、ソート出力ファイルがラ
ンダムアクセス可能な場合、出力ファイルをワークファ
イルとして兼用し、入出力処理性能向上を図る。 【構成】 ソート中間結果としてのストリングのマージ
処理を開始する前に、マージパス数算出処理手段6は、
必要なマージパス回数を算出し、マージ処理手段7は、
必要なマージパス回数が奇数の場合、奇数回目のパスで
は、ソートワークファイル2からストリングを読み込ん
でマージし、マージ結果をソート出力ファイル3へ出力
し、偶数回目のパスでは、ソート出力ファイル3からス
トリングを読み込んでマージし、マージ結果をソートワ
ークファイル2へ出力していくことによりストリングの
マージを行っていく。 【効果】 マージフェーズにおいて、ストリングの入力
と出力を別のファイルに対して行うため、ストリング入
出力処理性能を向上できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、主記憶装置に一度に読
み込むことができないデータを、ワークファイルを用い
てソートし、ソート結果をランダムアクセス可能な出力
ファイルに出力するソート処理の処理方式に関する。
【0002】
【従来の技術】従来の技術において、主記憶装置に一度
に読み込むことができないデータを、ワークファイルを
用いてソートし、ソート結果をランダムアクセス可能な
出力ファイルに出力するソートにおいては、以下の2つ
の方式のいずれかを用いていた。 ストリングのマージ処理で、マージした結果のストリ
ングのブロックを出力する場合、入力ストリングのブロ
ックのうち既にメモリ内に読み終ったブロックが格納さ
れていたソートワークファイル内の領域に出力していく
ように制御する。 ソートワークファイル領域を2つの領域に分割し、ス
トリングのマージ処理の各パスにおいては片方の領域か
らストリングを読み込み、マージしたストリングをもう
片方の領域に出力していくように制御する。
【0003】
【発明が解決しようとする課題】従来技術のの方式の
場合、ソートワークファイルの容量としてはソートする
データ量分だけで済むが、ソートワークファイル内の同
一の領域に対しての入力/出力が要求されるため、入出
力の処理が競合し、入出力処理性能を低下させるという
課題がある。
【0004】また従来技術のの方式の場合、ソートワ
ークファイル内の領域を2つに分割することにより入出
力の処理を異なったファイル領域に分散させ、入出力の
競合を少なくすることができるため、に比べて処理性
能的には優れているが、一旦ソートワークファイルに出
力したストリング群をマージしてマージしたストリング
を別の領域へ転送しなければならないため、ソートワー
クファイルの容量はソートするデータ量の2倍必要とな
り、特にソートするデータ量が多い場合に、ソートワー
クファイルとして大容量のファイル領域が必要になると
いう課題がある。
【0005】本発明の目的はソート出力ファイルがラン
ダムアクセス可能な場合出力ファイルをワークファイル
として兼用し入出力処理性能向上を図る、ソート処理方
式を提供することにある。
【0006】
【課題を解決するための手段】本発明ののソート処理方
式は、ソートするレコードを読み込み、ソートを行うた
めの主記憶装置上のソートワークメモリと、前記ソート
ワークメモリ内に全データが収まり切らない場合に、ソ
ート中間結果を書き出すために用いる補助記憶装置上の
ランダムアクセス可能なソートワークファイルと、ソー
トした結果を出力するための補助記憶装置上のランダム
アクセス可能なソート出力ファイルと、前記ソートワー
クメモリ内にソートするレコードを1件ずつ読み込みな
がらソートしていき、ソート中間結果としてのストリン
グと呼ぶ順序付けられたレコード列を前記ソートワーク
ファイル内に出力していくプリソート処理手段と、前記
プリソート処理手段によって前記ソートワークファイル
内に出力されたストリングを複数本前記ソートワークメ
モリに読み込んでマージして1本のストリングにまとめ
るマージ処理手段と、マージパス数算出処理手段と、前
記プリソート処理手段と、前記マージ処理手段と前記マ
ージパス数算出処理手段を用いてソート処理の、メイン
コントロールを行うソート主処理手段とを備える。
【0007】本発明において前記ソート主処理手段は、
まず前記プリソート処理手段を呼び出し、前記プリソー
ト処理手段はソートするレコードを前記ソートワークメ
モリ内に1件ずつ読み込みながらソートしていき、ソー
ト中間結果としてのストリング群を前記ソートワークフ
ァイル内に出力し、前記ソート主処理手段に制御を戻
す。また、前記ソート主処理手段は、前記プリソート処
理手段によって前記ソートワークファイル内に出力され
たストリング群を、前記マージ処理手段が1回にマージ
できるストリングの本数(m本とおく)分ずつ前記マー
ジ処理手段によってマージしていき、ストリングの本数
を(1/m)に減らす処理(以下これをマージ処理の1
パスと呼ぶ)を行う。更に、前記ソート主処理手段は、
上述したマージ処理のパスをストリングの本数が1本に
なるまで繰り返し実施し、1本にまとまったストリング
を前記ソート出力ファイルにソート結果として出力して
ソート処理を終了する。
【0008】本発明の特徴として、前記ソート主処理手
段は、前記プリソート処理手段から制御を戻され、前記
マージ処理手段によるストリングのマージ処理を開始す
るにあたり、前記マージパス数算出処理手段を呼び出
し、前記マージパス数算出処理手段は、マージパス数、
即ちストリングの本数が1本になるまでに実行しなけれ
ばならないマージのパスの回数を、前記プリソート処理
手段によって生成したストリングの本数と、前記マージ
処理手段が1回のマージ処理でマージ可能なストリング
の本数とを用いて算出する。更に、前記ソート主処理手
段は、前記マージパス数算出処理手段が算出したマージ
パス数が奇数であった場合には、来数回目のパスにおい
ては、前記マージ処理手段に対し、前記ソートワークフ
ァイル内のストリングをマージして、マージ結果をスト
リングを前記ソート出力ファイルに出力する様指示し、
偶数回目のパスにおいては、前記マージ処理手段に対
し、前記ソート出力ファイル内のストリングをマージし
て、マージ結果のストリングを前記ソートワークファイ
ルに出力する様指示する。また、前記ソート主処理手段
は、前記マージパス数算出処理手段が算出したマージパ
ス数が偶数であった場合には、1回目のパスにおいて
は、前記マージ処理手段に対し、前記ソートワークファ
イル内のストリングをマージして、マージ結果のストリ
ングを前記ソートワークファイルに出力する様指示し、
その後2回目以降のパスにおいては、偶数回目のパスで
は、前記マージ処理手段に対し、前記ソートワークファ
イル内のストリングをマージして、マージ結果のストリ
ングを前記ソート出力ファイルに出力する様指示し、奇
数回目のパスにおいては、前記マージ処理手段に対し、
前記ソート出力ファイル内のストリングをマージして、
マージ結果のストリングを前記ソートワークファイルに
出力する様指示しすることにより、マージの各パスにお
いて、ソートワークファイルとソート出力ファイルの一
方からストリングを入力してマージし、もう一方にマー
ジ結果のストリングを書き込んでいくようマージ処理を
行い、最終パスにおいてはソート出力ファイルにソート
結果(最終的に1本にまとまったストリング)を書き出
されるように制御する。
【0009】
【実施例】次に本発明について、図面を参照して詳細に
説明する。
【0010】第1図は、本発明の一実施例であり本発明
の方式を利用したソート処理のブロック図であり、ソー
トするレコードを読み込み、ソート処理を行うための主
記憶装置上のソートワークメモリ1と、ソートワークメ
モリ1内に全データが収まり切らない場合に、ソート中
間結果を書き出すために用いる補助記憶装置上のランダ
ムアクセス可能なソートワークファイル2と、ソートし
た結果を出力するための補助記憶装置上のランダムアク
セス可能なソート出力ファイル3と、ソート処理のメイ
ンコントロールを行うソート主処理手段4と、ソートワ
ークメモリ1内にソートするレコードを1件ずつ読み込
みながらソートしていき、ソート中間結果としてのスト
リングと呼ぶ順序付けられたレコード列をソートワーク
ファイル2内に出力していくプリソート処理手段5と、
マージパス数算出処理手段6と、プリソート処理手段5
によってソートワークファイル2内に出力されたストリ
ングを複数本ソートワークメモリ1に読み込んでマージ
して1本のストリングにまとめるマージ処理手段7とか
ら構成されている。
【0011】以下第2図〜第4図を用いて第1図の動作
について説明する。
【0012】第2図は第1図の動作を、ソート主処理手
段4の処理手順を中心にして説明したものである。
【0013】ソート主処理手段4はソート処理を開始す
るとまずステップ201においてプリソート処理手段5
を呼び出し、プリソート処理手段5は、ソートするレコ
ードをソートワークメモリ1内に1件ずつ読み込みなが
らソートしていき、ソートの中間結果であるストリング
と呼ぶ順序付けられたレコード列をソートワークファイ
ル2へ出力していく。
【0014】プリソート処理手段から制御を戻される
と、ソート主処理手段4はステップ202において、マ
ージパス数算出処理手段6を呼び出し、プリソート処理
手段5によって作成されたストリング群を1本にまとめ
るまでに実行しなければならないマージのパス数Nを計
算させる。
【0015】第3図は、マージパス数算出処理手段6の
処理ステップを詳細に示したものであり、マージパス数
算出処理手段6はまずステップ301にて、プリソート
処理手段5によって作成されたストリングの本数をSに
設定し、次にステップ302では、マージ処理手段7が
1回のマージ処理でマージできるストリングの本数をM
に設定する。
【0016】最後にステップ303において、必要なマ
ージパス数Nを、ステップ301、302で得たSとM
の値を用いて、N=LOGM S(小数点以下切り下げ)
により計算し、ソート主処理手段4に計算結果を通知し
処理を終了、ソート主処理手段4に制御を戻す。
【0017】ソート主処理手段4はステップ203にお
いて、マージパス数算出処理手段6が計算したマージパ
ス数Nが偶然か奇数かを判定する。
【0018】ステップ203の判定の結果Nが偶数であ
った場合はステップ204に移行し、ステップ204で
は、これから実行するのが最初のパスか否かを判定し、
最初のパスであれば、ステップ205において、マージ
処理手段7を用いてソートワークファイル2内のストリ
ング群をM本ずつマージしていき、マージした結果のス
トリングを再度ソートワークファイル2へ出力してい
き、最初のパスでなければ、ステップ206において、
マージ処理手段7を用いてソート出力ファイル3内のス
トリング群をM本ずつマージしていき、マージした結果
のストリングをソートワークファイル2へ出力していき
ステップ208へ移行する。
【0019】ステップ203の判定の結果Nが奇数であ
った場合は、ステップ207において、マージ処理手段
7を用いてソートワークファイル2内のストリング群を
M本ずつマージしていき、マージした結果のストリング
をソート出力ファイル3へ出力していきステップ208
へ移行する。
【0020】ステップ208ではマージパス数Nを1減
算し、ステップ209ではNが0か判断し、0であれば
必要なパス数分の処理を終了したので、ソート処理を終
了、0でなければステップ203へ戻り次のマージパス
の処理を継続する。
【0021】第4図はマージの各パスにおけるマージ処
理とストリングの移動を図示したものであり、プリソー
ト処理手段5が生成したストリング数(第3図ステップ
301におけるS)は8、マージ処理手段7が1回のマ
ージ処理でマージできるストリングの本数(第3図ステ
ップ302におけるM)は2であり、従ってマージパス
数Nは3となっている。
【0022】1回目のパスでは、第2図のステップ20
7に従い、ソートワークファイル2内の8本のストリン
グS1〜S8を2本ずつマージして4本のストリングS
9〜S12にまとめ、ソート出力ファイル3へ出力して
いく。
【0023】2回目のパスにおいては、第2図のステッ
プ206に従い、ソート出力ファイル3内の4本のスト
リングS9〜S12を2本ずつマージして2本のストリ
ングS13、S14にまとめ、ソートワークファイル2
へ出力していき、3回目のパス(最後のパス)では、第
2図のステップ207に従い、ソートワークファイル2
内の2本のストリングS13、S14をマージして、ソ
ート最終結果としての1本のストリングS15にまとめ
てソート出力ファイル3へ出力して、ソート処理を終了
する。
【0024】
【発明の効果】以上説明したように、本発明では、マー
ジ処理の各パスにおいて、ソートワークファイルとソー
ト出力ファイルの一方からストリングを入力してマージ
し、もう一方にマージ結果のストリングを書き込んでい
くようマージ処理を行い、最終パスにおいてはソート出
力ファイルにソート結果(最終的に1本にまとまったス
トリング)を書き出すように制御することができるた
め、ソートワークファイルの容量としてはソートする全
データ量分だけで済み、しかもマージ処理におけるスト
リングの入力処理と出力処理を別のファイルに分散して
実行することができるため、入出力処理の競合を少なく
し、ストリングの入出力処理性能を向上させ、ソート処
理時間を短縮できるという効果がある。
【図面の簡単な説明】
【図1】本発明のソート処理のブロック図
【図2】ソート主処理手段4の処理内容を示すフローチ
ャート
【図3】マージパス数算出処理手段6の処理内容を示す
フローチャート
【図4】マージ処理の各パスの処理の流れを図示した図
【符号の説明】
1 ソートワークメモリ 2 ソートワークファイル 3 ソート出力ファイル 4 ソート主処理手段 5 プリソート処理手段 6 マージパス数算出処理手段 7 マージ処理手段 201〜209 ソート主処理手段4の処理ステップ 301〜303 マージパス数算出処理手段6の処理ス
テップ S1〜S15 ストリング

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置に一度に読み込むことができ
    ないデータを、ワークファイルを用いてソートするソー
    ト処理において、 ソートするレコードを読み込み、ソートを行うための主
    記憶装置上のソートワークメモリと、 前記ソートワークメモリ内に全データが収まり切らない
    場合に、ソート中間結果を書き出すために用いる補助記
    憶装置上のランダムアクセス可能なソートワークファイ
    ルと、 ソートした結果を出力するための補助記憶装置上のラン
    ダムアクセス可能なソート出力ファイルと、 前記ソートワークメモリ内にソートするレコードを1件
    ずつ読み込みながらソートしていき、ソート中間結果と
    してのストリングと呼ぶ順序付けられたレコード列を前
    記ソートワークファイル内に出力していくプリソート処
    理手段と、 前記プリソート処理手段によって前記ソートワークファ
    イル内に出力されたストリングを複数本前記ソートワー
    クメモリに読み込んでマージして1本のストリングにま
    とめるマージ処理手段と、 マージパス数算出処理手段と、 前記プリソート処理手段と、前記マージ処理手段と前記
    マージパス数算出処理手段を用いてソート処理の、メイ
    ンコントロールを行うソート主処理手段とを備えること
    を特徴とするソート処理方式。
JP7310292A 1992-02-26 1992-02-26 ソート処理方式 Pending JPH05241785A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7310292A JPH05241785A (ja) 1992-02-26 1992-02-26 ソート処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7310292A JPH05241785A (ja) 1992-02-26 1992-02-26 ソート処理方式

Publications (1)

Publication Number Publication Date
JPH05241785A true JPH05241785A (ja) 1993-09-21

Family

ID=13508622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7310292A Pending JPH05241785A (ja) 1992-02-26 1992-02-26 ソート処理方式

Country Status (1)

Country Link
JP (1) JPH05241785A (ja)

Similar Documents

Publication Publication Date Title
JPH02178730A (ja) 分割法を用いた内部ソート方式
JPH07160475A (ja) 並列マージソート処理方法
JP3251138B2 (ja) ハッシュ方式
JP3515810B2 (ja) ソート処理方法および装置
JPH05241785A (ja) ソート処理方式
JPS6266326A (ja) 日本語デ−タ整列処理方式
JP2926803B2 (ja) ソート処理方法
JP3293544B2 (ja) 補助記憶装置を用いたソート方式
JP2921045B2 (ja) インデックス生成方式
JP2923952B2 (ja) マージ処理方法
JPH04102172A (ja) 情報検索方式
JPH04102918A (ja) ソート処理方式
JPH01173230A (ja) ソート処理装置
JPH0285961A (ja) データ検索方式
JP2541006B2 (ja) ソ―ト処理方式
JPH0199125A (ja) リンク分類方式
JPH0934899A (ja) 検索経路出力方法及び装置
JPH0797311B2 (ja) データソート装置
JPH02165325A (ja) ランダムアクセス可能なファイルのソート方式
JPH0145648B2 (ja)
JPH03259329A (ja) 大容量データのキー相対アドレス分類方式
JPS63276629A (ja) ファイル内レコ−ドのソ−ト方式
JPH04353944A (ja) 索引順編成ファイルのレコード追加方式
JPH04213111A (ja) データソート方式
JPH05210467A (ja) 複数フロッピィディスクへの複写方法