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

Date: 2013-04-23 05:14 pm (UTC)
From: [identity profile] metaclass.livejournal.com
По идее, при достаточном количестве памяти можно будет ее отдать Firebird и он сам перестанет лезть на диск за сортировкой.

Date: 2013-04-23 05:22 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
Если в csv оно занимает 5мб, а во временных файлах - два гига, значит, эти два гига очень избыточны. Значит их можно сжать на лету, например до 500 мб. Но как вы заставите Firebird сжимать эти временные таблицы внутри его собственной памяти? Никак. Соответсвенно, пусть пишет их на диск, а драйвер диска пускай жмет записанное.

Где вы возьмете по 2гб на каждого из 50 пользователей?

Date: 2013-04-24 12:47 am (UTC)
From: [identity profile] fraks-nsk.livejournal.com
По идее надо просто переписать запрос что бы группировка была по индексу или что бы при сортировке натуралом было минимум полей, остальные приджойнить потом.

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

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

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

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

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

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

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

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

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 15th, 2025 04:40 am
Powered by Dreamwidth Studios