JPS61275934A - デイスクソ−トシステム - Google Patents

デイスクソ−トシステム

Info

Publication number
JPS61275934A
JPS61275934A JP11675285A JP11675285A JPS61275934A JP S61275934 A JPS61275934 A JP S61275934A JP 11675285 A JP11675285 A JP 11675285A JP 11675285 A JP11675285 A JP 11675285A JP S61275934 A JPS61275934 A JP S61275934A
Authority
JP
Japan
Prior art keywords
string
strings
data
phase
merge
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
JP11675285A
Other languages
English (en)
Inventor
Masao Ochiai
落合 正雄
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP11675285A priority Critical patent/JPS61275934A/ja
Publication of JPS61275934A publication Critical patent/JPS61275934A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の技術分野] この発明は、外部ファイルよりデータを入力し、中間的
にディスク上の一時フアイルを用いながらソーティング
を行なって1本のストリングを得るディスクソートシス
テムに関する。
[発明の技術的背景コ 外部ファイルからデータを入力し、データ(レコード)
を成るキーフィールドの値に従って並べ換えたものを外
部ファイルに出力する処理は、一般にソート(整列)と
呼ばれる。ソートのうち、中間的にディスク上の一時フ
アイルを使用する場合には、特にディスクソートと呼ば
れる。ディスクソートけ、一般に(1)データ人力フェ
イズ、■マージフェイズ、(3データ出カフエイズの3
つのフェイズから成る。これら各7エイズの概要は次の
通りである。
(1)データ入力フェイズ このフェイズでは、外部ファイルより入カバソファにデ
ータが読込まれる。次に入力バッファ上でできる限りの
並べ換えが行なわれ、出力バソファ経由でディスク上に
出力される。このときディスク上にはいくつかの「スト
リング」と呼ばれるレコード群が存在することになる。
1つのストリング中では各レコードは正しく並べられて
いる、即ちソーティングが済んでいる。
(2マージフェイズ ストリングの本数が成る値より大きい場合には、ストリ
ングの本数を減らすためにマージフェイズが動作する。
つまり、いくつかのストリングのうち、何本かを主メモ
リ上のバッファを経由してマージ(併合)し1本のスト
リングとする動作が行なわれる。マージフェイズを何回
か動作させることにより、ストリングの本数は次のデー
タ出力フェイズに十分なだけ少なくできる。
(3データ出力フェイズ このフェイズでは、残ったストリングを主メモリ上のバ
ッファを経由してマージし、1本のストリングとして外
部ファイルに出力する。
[背景技術の問題点] さて、上記のマージフェイズでは、一般にマージ対象と
なるストリングの選択は任意に行なわれていた。これは
、どのように選択しても結果(最終的に得られるストリ
ング)は同じとなることによる。しかるに本発明者は、
ストリングの選び方によってデータ(レコード)の入出
力回数に違いができることを知るに至った。即ち、従来
のディスクソートでは、マージフェイズにおけるストリ
ングの選択が任意に行なわれていたため、データ入出力
回数に違いができ、ひいてはディスクソートの高速化を
阻害する要因となっていた。
[発明の目的] この発明は上記事情に鑑みてなされたものでその目的は
、マージ処理で発生するデータ(レコード)の入出力回
数が最小にでき、もってディスクソートの高速化が図れ
るディスクソートシステムを提供することにある。
[発明の概要] 本発明者は、いくつかのストリングのうち何本かをマー
ジして1本のストリングとするマージ処理を繰返してス
トリングの本数を減らす場合に、ストリング長の短い方
から必要本数だけストリングを選択するようにするとデ
ータ入出力回数が最小となることを知るに至った。
そこで、この発明では、マージ処理の候補となるストリ
ングの列よりストリング長の短い方から必要本数だけ選
択できるように、外部ファイルよりデータを読込んでス
トリングの列を生成しディスクファイルに格納するデー
タ入力手段の他に、データ入力手段により生成される各
ストリングのストリング長およびディスクファイル内格
納位置を含む属性情報を示すストリング属性記録テーブ
ルを作成するテーブル作成手段と、マージ手段と、テー
ブル更新手段とが設けられる。マージ手段は、ストリン
グ属性記録テーブルを参照しその時点でストリング長の
短い方のストリングを予め決定される本数だけディスク
ファイルから取出してマージ処理を行ない新たなストリ
ングを生成する動作を繰返すもので、これによりデータ
(レコード)入出力回数の最小化が図られる。またテー
ブル更新手段は、マージ手段のマージ処理の結果に応じ
てストリング属性記録テーブルの内容を更新するもので
、これにより新たなマージ処理におけるストリングの選
択が正しく行なえる。
[発明の実施例コ 第1図はこの発明の一実施例に係るディスクソートシス
テムの構成を示すもので、10は例えば磁気テープなど
の外部ファイルである。外部ファイル10はシステムの
中心を成すCP U 20に接続されている。このCP
 U 20には、各種プログラム並びにデータが格納さ
れる主メモリ30とディスクファイル40とが接続され
ている。主メモリ30には、データ人力フェイズで用い
られる入力バッファ31および出力バッファ32と、マ
ージフェイズ並びにデータ出力フェイズで用いられる入
力バッファ群33および出力バッファ34と、マージ対
象となる各ストリングの属性情報を記録するストリング
属性記録テーブル(以下、STRテーブルと称する)3
5とが置かれる。
第2図はSTRテーブル35のテーブル構造を示す。テ
ーブル35の各エントリは、ストリングの長さを記録す
るフィールドFa、ストリングのディスクファイル40
内格納位置を記録するフィールドFb、およびその他の
属性を記録するフィールド1”cから成る。
再び第1図を参照すると、21はデータ人力フェイズを
実行するデータ入力部、22はSTRテーブル35を作
成するテーブル作成部である。23はSTRテーブル3
5の内容に従ってマージフェイズを実行するマージ部、
24はマージ部23のマージ処理に応じてSTRテーブ
ル35を更新するテーブル更新部、25はデータ出力フ
ェイズを実行するデータ出力部である。データ入力部2
1、テーブル作成部22、マージ部23、テーブル更新
部24およびデータ出力部25の各機能ブロックは、主
メモリ30内のプログラムに従って動作するC P U
 20の制御機能により実現される。
次にこの発明の一実施例の動作を第3図のフローチャー
トを参照して説明する。
ディスクソートにおいては、まずデータ入力部21が起
動され、これにより以下に述べるデータ入力フェイズが
実行される。
(1)データ人力フェイズ このフェイズにおいてデータ入力部21は、外部ファイ
ル10より(主メモリ30上に置かれる)入力バッファ
31にデータを読込む。そしてデータ入力部21は入力
バッフ731上でできる限りの並べ換えを行ない、その
並べ換えが行なわれたデータ(レコード)群の単位毎、
即ち(ソーティング済みの)ストリング毎に、出力バッ
ファ32経由でディスクファイル40に格納する。デー
タ入力部21は、外部ファイル10よりデータを読込ん
で1本のストリングを生成してディスクファイル40に
格納する毎にテーブル作成部22を起動する。
テーブル作成部22はデータ入力部21により起動され
る毎に、同データ入力部21で生成されたストリングに
関する属性情報を(主メモリ30上に置かれる)STR
テーブル35に記録する。即ちテーブル作成部22は、
データ入力部21で生成されたストリングのストリング
長をSTRテーブル35のフィールドFaに、同ストリ
ングのディスクファイル4θ内格納位置をフィールドF
bに、そして同ストリングに関するその他の属性情報を
フィールドFCに、それぞれ記録する。この結果、ST
Rテーブル35には、データ入力部21で生成されたス
トリング数分のストリング属性情報が記録される。
即ちテーブル作成部22は、データ入力部21で生成さ
れた全ストリングの属性情報に関するSTRテーブル3
5を作成する。なお、このSTRテーブル35は、各ス
トリングの属性情報がストリング長の昇順になるように
作成されるようになっている。
この場合STRテーブル35内の物理的な配列順序を昇
順にしても、例えば連鎖ポインタの適用などにより論理
的に配列順を昇順としても構わない。
データ入力部21は、データ人力フェイズを終了すると
マージ部23に制御を渡す。これにより第3図のフロー
チャートに示すマージフェイズが以下に述べるように実
行される。
(′2J  マージフェイズ このフェイズにおいてマージ部23は、1回のマージ処
理でマージすべきストリングの本数ωを決定する(ステ
ップ81)。このストリング本数ωは主メモリ30の容
量などにより周知の手段によって最適に決められるもの
であるが、その決定論理については本発明の要旨に直接
関係しないため説明を省略する。
次にマージ部23は、マージすべきストリング(STR
テーブル35に記録されているストリング)の本数がω
本以下であるか否かの判定を行なう(ステップS2)。
もしω本より多数のストリング長残されていればマージ
部23は次に述べるステップS3を実行する。このステ
ップS3においては、マージ部23はSTRテーブル3
5を参照し、その時点でストリング長の短い方のω本の
ストリングを次のマージ対象ストリングとして認識する
マージ部23は、この認識に基づいて該当するω本のス
トリングをディスクファイル40から取出し、入力バッ
ファ群33に読込む。そしてマージ部23は、入力バッ
ファ群33に読込んだω本のストリングをマージして1
本のストリングにし、この1本のストリングを出力バッ
ファ34経出でディスクファイル40に書込む。マージ
部23はステップ$3を実行すると、テーブル更新部2
4に制御を渡す。
テーブル更新部24はマージ部23から制御を渡される
と、次に述べるSTRテーブル35の更新を行なう(ス
テップ34)。このステップS4においては、テーブル
更新部24はステップS3でマージ部23によりマージ
されたω本のストリングに関するSTRテーブル35の
記録内容を削除する。
そしてテーブル更新部24は、ステップS3でマージ部
23により新たに生成されたストリングの属性情報をS
TRテーブル35に記録する。以上のSTRテーブル3
5更新処理においては、ストリング長の昇順の並びが崩
れぬように配慮される。
テーブル更新部24はステップS4を実行するとマージ
部23に制御を戻す。これによりマージ部23は再びス
テップS2の判定処理を行なう。もしステップS2の判
定がYES、即ち残された(マージすべき)ストリング
の本数がω本以下であれば、マージ部23はマージフェ
イズの終了を判断し、データ出力部25に制御を渡す。
これにより周知のデータ出力フェイズが以下に述べるよ
うに実行される。
(3データ出力フェイズ このフェイズにおいてデータ出力部25は、ディスクフ
ァイル40に残されたストリングを取出し、入力バッフ
ァ群33に読込む。そしてデータ出力部25は、入力バ
ッファ群33に読込んだ(ω本以下の)ストリングをマ
ージして1本のストリングにし、この1本のストリング
を出力バッフ734経出で外部ファイル10に出力する
上記したように、この実施例によれば、マージ対象スト
リングは従来と異なり一定の規則に従って選択される。
即ちこの実施例では、マージ処理に際し、その時点で残
されているストリングの列のうちストリング長の短い方
のω本がマージ対象ストリングとして選択される。した
がってこの実施例によれば、マージフェイズで発生する
データ(レコード)の入出力回数を最小にすることがで
きる。このことについて、ストリング長がそれぞれ5,
8.12の(即ちレコード数が5.8゜12個の)3本
のストリングA、B、Cを2本単位でマージして最終的
に1本のストリング2を得る場合を例にとり、第4図(
a)、(b)を参照して説明する。
第4図(a)は、上記のステップS3に従って3本のス
トリングA、B、Cのうちストリング長の短い方の2本
、即ちストリング長が5,8のストリングA、Bを最初
にマージする場合を示している。この場合、最初のマー
ジのデータ(レコード)入出力回数は、(5+8)X2
回、即ち26回となる。このマージでは、ストリング長
が13のストリングDが得られる。次は、残りのストリ
ングC(ストリング長12)と最初のマージで得られた
ストリングD(ストリング長13)とがマージされ、(
ストリングA、B、Cがマージされた)ストリング長が
25のストリングZが求められる。この際のデータ(レ
コード)入出力回数は、(12+13)X2回、即ち5
0回となる。したがって、第4図(a)における総入出
力回数は、26+50回、即ち76回となる。
これに対して第4図(b)は3本のストリングA、B、
Cのうちストリング長の長い方の2本、即ちストリング
長が8.12のストリングB、Cを最初にマージする場
合を示している。この場合、最初のマージめデータ(レ
コード)入出力回数は、(8+12)x2回、即ち40
回となる。このマージでは、ストリング長が20のスト
リングEが得られる。次は、残りのストリングA(スト
リング長5)と最初のマージで得られたストリングE(
ストリング長20)とがマージされ、(ストリングA、
B、Cがマージされた)ストリング長が25のストリン
グ2が求められる。この際のデータ(レコード)入出力
回数は、(5+20)x2回、即ち50回となる。した
がって、第4図(b)における総入出力回数は、40+
50回、即ち90回となり、第4図(a)の場合に比べ
て入出力回数が14回多くなる。なお、ストリングA、
Cを最初にマージした場合には、ストリングA、Bを最
初にマージした場合に比べて入出力回数が8回多くなる
以上のことは、マージ処理に際し、その時点で残されて
いるストリングの列のうちストリング長の短い方のω本
をマージ対象ストリングとして選択することにより、マ
ージフェイズで発生するデータ(レコード)の入出力回
数を最小にすることができることを示す。
[発明の効果] この発明によれば、マージ処理で発生するデータ(レコ
ード)の入出力回数を最小にできるのでディスクソート
の高速化が図れる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係るディスクソートシス
テムのブロック構成図、第2因は第1図に示すSTRテ
ーブル(ストリング属性記録テーブル)35の構造図、
第3図は動作を説明するための70−チャート、第4図
はマージ対象ストリングの選び方によるデータ入出力回
数の違いを説明するための図である。 10・・・外部ファイル、20・・・CPLI、21・
・・データ入力部、22・・・テーブル作成部、23・
・・マージ部、24・・・テーブル更新部、25・・・
データ出力部、3o・・・主メモリ、35・・・STR
テーブル(ストリング属性記録テーブル)、40・・・
ディスクファイル。 出願人代理人 弁理士 鈴江武彦 第2図 第3図 第4図 一9!2.i−

Claims (1)

    【特許請求の範囲】
  1. 外部ファイルよりデータを読込んでストリングの列を生
    成しディスクファイルに格納するデータ入力手段と、こ
    のデータ入力手段により生成される上記各ストリングの
    ストリング長およびディスクファイル内格納位置を含む
    属性情報を示すストリング属性記録テーブルを作成する
    テーブル作成手段と、上記ストリング属性記録テーブル
    を参照しその時点でストリング長の短い方のストリング
    を予め決定される本数だけ上記ディスクファイルから取
    出してマージ処理を行ない新たなストリングを生成する
    動作を繰返すマージ手段と、このマージ手段のマージ処
    理の結果に応じて上記ストリング属性記録テーブルの内
    容を更新するテーブル更新手段とを具備することを特徴
    とするディスクソートシステム。
JP11675285A 1985-05-31 1985-05-31 デイスクソ−トシステム Pending JPS61275934A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11675285A JPS61275934A (ja) 1985-05-31 1985-05-31 デイスクソ−トシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11675285A JPS61275934A (ja) 1985-05-31 1985-05-31 デイスクソ−トシステム

Publications (1)

Publication Number Publication Date
JPS61275934A true JPS61275934A (ja) 1986-12-06

Family

ID=14694880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11675285A Pending JPS61275934A (ja) 1985-05-31 1985-05-31 デイスクソ−トシステム

Country Status (1)

Country Link
JP (1) JPS61275934A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411788A2 (en) * 1989-08-02 1991-02-06 International Business Machines Corporation External sorting using virtual storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411788A2 (en) * 1989-08-02 1991-02-06 International Business Machines Corporation External sorting using virtual storage

Similar Documents

Publication Publication Date Title
JP3554459B2 (ja) テキストデータ登録検索方法
JPH02178730A (ja) 分割法を用いた内部ソート方式
JP3205406B2 (ja) 参照対象変数決定処理方法および翻訳処理システム
JPS61275934A (ja) デイスクソ−トシステム
JPH08221254A (ja) マージソート方法及びマージソート装置
JP2923952B2 (ja) マージ処理方法
JP2606608B2 (ja) 同値キーが存在するデータのソート方式
JPH0512087A (ja) 更新前ジヤーナルの出力方式
JP2586172B2 (ja) 学習機能付テーブル検索装置
JP2921045B2 (ja) インデックス生成方式
JP3346014B2 (ja) 有向グラフ編集処理装置
JP3722854B2 (ja) データ編集装置
JP2765911B2 (ja) データ駆動型制御方法およびコンパイル装置
JP2669241B2 (ja) マイグレーション処理方式
JPH11306183A (ja) データベース検索システム
JPH0291725A (ja) 併合処理方式
JPH04250568A (ja) レコード検索装置
JPH048816B2 (ja)
JP2724235B2 (ja) 変数名称推論装置
JP3047400B2 (ja) データ処理装置
JPH02190971A (ja) 索引更新方式
JPS63149728A (ja) 索引生成方式
JPS62285130A (ja) ソ−ト入出力方式
JPH10198551A (ja) マージ処理装置
JPH0535497A (ja) 論理型言語の実現方式