SuperSort

SORTユーティリティはOSに標準で付属し、高速で「ファイルのレコードを並び替える」ことができます。

SORTユーティリティの歴史は長く、ソートの論理は完成したものと考えられていました。Super Sortは従来のソート論理とは全く異なる新しいソート論理によって、飛躍的な性能向上を実現した極超高速SORTユーィリティです。

Super Sortは、ウインドウズのSORTユーティリティの12倍、Unix系のSORTユーティリティの120倍以上の性能を持ちます。そのためバッチ処理に適用することにより業務処理の飛躍的な性能向上を実現することができます。

 

性能

(例1:性能比較)

ランダムな98文字で構成される1000万件のレコードを並び替える。

【Windowsの場合】

標準SORTユーティリティ  4分32秒
SuperSort            19秒

 【AIXの場合】

他社SORTユーティリティ  1時間50分1秒
SuperSort                 53秒

 

(例2:macでの実行結果)

【Apple MacBookPro BootCampで起動したwindows8.1上での実行結果】

CPU:Intel(R) Core(TM) i5-4278U @2.6GHz
Memory:8.0GB
SSD:256GB model
OS :WINDOWS8.1 64bit

《入力ファイル》

以下のランダム文字で構成されるレコードを1億件格納したII.CSVを用意した。
数値項目、文字列項目が交互に設定されている。(サイズ:7.1GB)

296612,SOXPDY,831738,ZTJLIM,936170,GSNMXU,018106,SZJAXS,575831,QGQAVM
279676,NFOLGI,436608,UFIMTE,093891,EJQCVT,911292,VQNJQY,812151,ZQYRAF
305462,TBMCMH,057472,YPPWAE,157826,JBCJDY,941109,UNREDG,985099,LQKLPX

《ソート条件》

項目1を数値として昇順、項目4を文字列として降順にソートする。

《コマンド》

以下のコマンドを実行した。

C:\TEMP>XSORT /CSV II.CSV OO.CSV KEY(1) ATTR(A;I) KEY(4) ATTR(D;S) /M 2000

□開始 2015/01/15 17:53:44
◇入力ファイル名は II.CSV です
◇出力ファイル名は OO.CSV です
◇ソート条件[01]は 項目 01 を実数として昇順で ソートします
◇ソート条件[02]は 項目 04 の先頭 32 バイトを文字として降順で ソートします
◇ソート用のメモリを 2000MB使用します(A)
□終了 2015/01/15 17:56:48

実行時間  3分4秒

《考察》

マックブックでは、1億件のソートは3分程度で完了することができます。
当ソートの性能は、件数に比例するため秒速50万件の処理能力を有します。

《補足》

ソートの高速化は、プログラムでの最適なメモリの使用配分とHDDのアクセス性能が顕著に反映します。
そのため、高速化のためには高性能なHDD(SSD)を使用することが極めて望ましいです。

 

インターフェイス

SuperSortは、通常のユーティティのインターフェイスとは異なり直感的で容易なインターフェイスを採用しています。

例1) テキストレコードの1カラム目から4バイトを昇順で、8カラム目から2バイトを降順でソートする。
入力ファイル名は、Input.txt 出力ファイル名はOutput.txt とします。

$> xsort /txt  Input.txt  Output.txt “(1,4)[A] (8,2)[D]” 

 

例2) CSVコードの1項目を昇順で8項目を降順でソートする。
入力ファイル名は、Input.csv 出力ファイル名はOutput.csv とします。

$> xsort /csv Input.csv  Output.csv “(1)[A] (8)[D]” 

 

機能

入力ファイル形式

テキストファイル、CSVファイル、バイナリファイル、UTF16ファイル

ソートキー指定

複数のキー指定が可能
キー毎の昇順・降順の指定が可能
キー毎の文字・数字属性の指定が可能