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] fraks-nsk.livejournal.com 2013-04-24 12:47 am (UTC)(link)
По идее надо просто переписать запрос что бы группировка была по индексу или что бы при сортировке натуралом было минимум полей, остальные приджойнить потом.

[identity profile] metaclass.livejournal.com 2013-04-24 06:22 am (UTC)(link)
Не, тут конкретно все поля нужны, и индекса нет (входные данные - несколько таблиц), без вариантов.

[identity profile] fraks-nsk.livejournal.com 2013-04-24 06:30 am (UTC)(link)
Скинь мне на мыло DDL и запрос, у и в идеале - чуток данных на которых можно опираться.
Не встречался еще с такой ситуацией когда ничего кроме как пилить сервер сделать нельзя.

[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 гб данных из двух таблиц соединенных джоином.

[identity profile] fraks-nsk.livejournal.com 2013-04-24 06:34 am (UTC)(link)
мыло fraks собака sibverk точка ru