"Andrei" ...
>Сам факт тройной копии вряд ли как-то можно устранить (гарантированно эффективно). Одно из очевидных обходных решений - сжимать данных при сбросе буферов сортировки на диск.Два файла: один с данными, куда записываются только реальные данные из записи. Соответственно, записи получаются переменной длины. И второй -- индексы (смещения) записей в первом файле.
И получим жуткий random IO при чтении из второго файла. --Хорсун Влад

