awk vs sql vs sort: промежуточные результаты
- From
- Valentin Davydov (2:5020/400)
- To
- Slawa Olhovchenkov
- Date
- 2006-12-01T09:23:18Z
- Area
- RU.UNIX.BSD
From: Valentin Davydov <val@sqdp.trc-net.co.jp>
> From: Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org>
> Date: Thu, 30 Nov 2006 17:19:52 +0300
>
> >> VD> Когда (и если - мало ли на какие ограничения он может наткнуться) awk
> >> VD> закончит свою работу, я, надеюсь, опубликую более подробные данные.
> >>
> >> А программу на awk оптимизировать пробовал? Написать на нем сначала
> >> внешнюю ленточную сортировку, потом результать в один проход агрегировать.
>
> VD> Я, пока писал вышеотквоченное, ещё решил sort | awk попробовать. Только
> VD> ведь сортируй - не сортируй, всё равно промежуточные данные на диск должны
> VD> лезть. Правда, с sortом всё не так чисто: при том количестве промежуточных
> VD> файлов в $TMPDIR, которые он создаёт, ещё нормально работает dirhash. Но
> VD> чтобы и это проверить, надо не просто много данных, а экспоненциально
> VD> много, а у меня такого количества дисков и времени нету.
>
>Т.е. sort|awk всех порвал?
Вот, ночью сосчиталось. Да, порвал в хлам. sort отработал как раз во столько
раз быстрее sql-селекта, во сколько раз доступ к диску большими кусками
эффективнее случайного. То есть часы вместо суток. В общем, sort очень
хорошо заточен под аппаратно-программные особенности реализации файловых
систем, и слава Богу, что у него нету доступных юзру для кручения ручек
на тему того, что и как делать в $TMPDIR.
Вал. Дав.
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
SEEN-BY: 50/12 400/814 450/159 1024 461/43 132 640 469/999 4616/3 4625/8
SEEN-BY: 4641/444 5000/76 5000 5006/1 5007/1 5010/70 5011/13 5012/46 5015/28
SEEN-BY: 5019/26 31 5020/18 175 194 400 545 982 1057 1909 1922 2238 2395 2871
SEEN-BY: 5020/4441 5021/29 5025/3 5026/14 45 5027/12 5030/1080 1957 5034/10 13
SEEN-BY: 5035/3 38 5036/1 5045/7 5049/1 5051/15 5054/1 4 8 9 11 28 35 36 37 45
SEEN-BY: 5054/66 67 70 75 84 85 5059/9 5060/88 5061/15 5062/10 5063/3 5064/7
SEEN-BY: 5066/18 5075/5 5076/1 5077/70 5080/1003 5084/9 5085/13 5095/20
SEEN-BY: 5096/18 6001/10
PATH: 5020/400 545 5054/1 37