metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-04-23 01:29 pm

Нихт фертшейн

В результате запроса 150000 записей.
Размер временного файла для результата запроса, созданного Firebird - около 2Гб. Этот же результат, экспортированный в CSV - 5 мб.
13 килобайт на запись что ли, во временном файле. И фетч медленный как капец.
Надо, что-ли, во внутренности этого файла заглянуть будет как-нибудь, что ж там такое.
PS: при увеличении количества записей в запросе в 10 раз размер файла становится 2.2 гб. Сплошной wtf.
PPS: да это вообще абсурд - оно пишет во временный файл в три раза больше, чем читает с диска.

[identity profile] metaclass.livejournal.com 2013-04-24 06:38 am (UTC)(link)
Сервер пилить не надо, надо алгоритм расчетов модифицировать.
За данные мне безопасники клиента оторвут голову :)

[identity profile] fraks-nsk.livejournal.com 2013-04-24 06:50 am (UTC)(link)
Реальных данных мне не надо, просто такие что бы были похожи и можно было с тобой получаемые цифры обсуждать.

Алгоритм расчетов - это и есть запрос.
В каких-то случаях его можно размазать и на клиента но если у тебя исходные данные на сервере - то лучше их там и обрабатывать а не таскать по сетке.

[identity profile] metaclass.livejournal.com 2013-04-24 07:08 am (UTC)(link)
В данном случае клиентом будет сервер приложений, живущий рядом с FB.
В общем, там все равно надо переделывать, т.к. количество данных линейно растет со временем, поэтому нужно заменить на хранимые агрегаты и отслеживание изменений по ним.

Конкретно с этим запросом на данный момент ничего не сделаешь - он выгребает и сортирует 2 гб данных из двух таблиц соединенных джоином.