powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с нехваткой памяти при использовании функции LIST()
21 сообщений из 21, страница 1 из 1
Проблема с нехваткой памяти при использовании функции LIST()
    #38571611
Hi ALL!
Собственно вопрос озвучен в заголовке темы.
Нашел интересную функцию в FB под названием LIST(). Опытным путем обнаружилось что на маленьком объеме данных <= 2000 строк (у меня) отрабатывает отлично, с поставленной задачей справляется. А на больших объемах вылетает с ошибкой: Error Message: unable to allocate memory from operating system.

Вопрос: Кто сталкивался? Как побороть?

Неохота писать свой костыль для сворачивания нескольких строк в одну с разделителем.
Хелп по данной функции читал, предупреждение о большом использовании памяти видел. НО, может все-таки многоуважаемый ALL уже нашел решение данной проблемы.

ПС: FB: 2.1, ОЗУ: 12ГБ, Проц: Intel Xeon E5620@2.4GHz, Диски: RAID 10

with respect and best wishes, <B>ПаWWWлОдАрЕц</B>
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571617
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕц,

проблема известная. Дело в том что LIST возвращает BLOB и от того база может пухнуть особенно если с управлением транзакциями плохо. Но чтобы ошибку выдавало я не припомню.

Кидай сюда запрос где ты этот LIST используешь.

P.S. FB 32 битный?
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571628
Вот запрос который вываливается:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
    AN.DOCUMENT,
    LIST(AN.NUMBER, ';')

FROM ARHIV_NUMBER AN
WHERE (AN.DATE_CREATE > '01.01.2013')
GROUP BY AN.DOCUMENT
HAVING COUNT(AN.DOCUMENT) > 1



Количество записей которые должны в нем обработаться: 578498

Если добавить в конец ROWS 2000 то отрабатывает, если убрать то ошибка.
FB x32
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571635
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕцFB x32
Какие параметры в конфиге крутил?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571650
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕцFB x32

ну дык потому и ошибка.

какой тип и размер и CHARSET у поля ARHIV_NUMBER.NUMBER? Попробуй ещё на FB2.5, там вроде с блобами что-то оптимизировалось.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT COUNT(*) FROM (
SELECT
    AN.DOCUMENT,
    COUNT(*)
FROM ARHIV_NUMBER AN
WHERE (AN.DATE_CREATE > '01.01.2013')
GROUP BY AN.DOCUMENT
HAVING COUNT(AN.DOCUMENT) > 1)



если под количеством записей 578498 понимается вот это, то тогда тем более понятно
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571654
Доступа к параметрам сервера у меня нету. Буду признателен если скажешь какие параметры посмотреть, озадачу админов пусть смотрят, крутят, меняют.

ПС: переписав запрос так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
    AN.DOCUMENT,
    CAST(LIST(AN.NUMBER, ';') AS VARCHAR(500)) AS LISTMY

FROM ARHIV_NUMBER AN
WHERE (AN.DATE_CREATE > '01.01.2013')
GROUP BY AN.DOCUMENT
HAVING COUNT(AN.DOCUMENT) > 1


Удалось избавится от ошибки во время выполнения процедуры, НО, когда в IBExperte в сетке с данным попытаться отобразить все записи, вылетает с той же ошибкой.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571659
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕц,

на FB2.5 попробуй
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571660
Симонов Денис,

Скрипт таблицы
CREATE TABLE ARHIV_NUMBER (
DOCUMENT INTEGER,
NUMBER INTEGER,
DOC_YEAR INTEGER,
DATE_CREATE DATE DEFAULT CURRENT_TIMESTAMP,
FOLDERTYPE SMALLINT DEFAULT 0
);

FB походу неявно преобразует его к варчару и слепляет без проблем.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571671
Симонов ДенисПаWWWлОдАрЕц,

на FB2.5 попробуй
Его тоже нету. Просить админов установить его для экспериментов бесполезно. Да и продакшн база на 2.1, когда они ее на 2.5 переведут только Биллу Гейтсу наверное известно.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571684
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕц,

ну тогда пиши EXECUTE BLOCK и соединяй строки в нём сам. Или проси чтобы FB 64 битный ставили
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571711
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕцКоличество записей которые должны в нем обработаться: 578498Это не играет роли. Главное - сколько там записей после группировки.

PS а что такое 2.1 ?
PPS 2.5 ты вполне можешь поставить у себя и прогнать на нём свой запрос, чтобы знать - исправлено ли это в 2.5
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38571728
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕцБуду признателен если скажешь какие параметры посмотреть, озадачу
админов пусть смотрят, крутят, меняют.
Вообще-то наоборот: надо смотреть что они уже накрутили-наменяли от балды. Т.е. показывай
все незакомментированные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572390
Бодаться с админами бесполезно. Переход на 2.5 пока не планируется в ближайший год-два. Говорят в 2.1 "их" все устраивает.
В ходе разбора полетов выяснилось что процедура в которой используется LIST() будет запускаться 1 раз в неделю, и количество строк которые будут ей обрабатываться будет в интервале 0 - 500 (это с запасом), в среднем 100-150. В связи с чем было принято решение использовать вариант
Код: sql
1.
CAST(LIST(AN.NUMBER, ';') AS VARCHAR(500)) AS LISTMY


Он пока работает.

А текущие несколько тысяч я какнить в ручном режиме, порциями обработаю.

All thanks.
Тему можно закрывать.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572460
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕц,

Боюсь тебя разочаровать, но 500 строк в VARCHAR(500) не влезут.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572471
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕцБодаться с админами бесполезно. Переход на 2.5 пока не планируется в ближайший год-два. Говорят в 2.1 "их" все устраивает.


странная у вас контора. Обычно решение о переходе с одной версии СУБД принимают разработчики. Вы кем являетесь?
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572892
WildSery,

при группировке в LIST будет попадать MAX 20 значений. Да, и в итоге я увеличил варчар до 2000.
А 500, это количество строк в результирующем наборе данных, который получается после этого запроса. Все нормально с этой стороны.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572894
Симонов Денис,

У нас филиал, а голова в МСК. Филиалов штук 50 по РФ. Во всех Ф стоят одинаковые версии лисы. Так что это не от меня зависит. Вот когда большая часть филиалов начнет выть на счет перехода, тогда голова только будет задумываться над этим. Как то так.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572906
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕцВо всех Ф стоят одинаковые версии лисы .Да хоть осла - мы тут при чём ?
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572922
hvladПаWWWлОдАрЕцВо всех Ф стоят одинаковые версии лисы .Да хоть осла - мы тут при чём ?
Очепятка ПТИЦЫ .
Вы не причем. Оффтоп зачем разводить.
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38572952
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаWWWлОдАрЕц,

Ага, а если таким образом опечататься в слове хлеб , то получится пиво

А оффтоп - потому, что проблема вроде как решена, можно и порадоваться немного и за нас и за вас :)
...
Рейтинг: 0 / 0
Проблема с нехваткой памяти при использовании функции LIST()
    #38573348
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineпроблема вроде как решена
"Излюбленный способ решать все вопросы как будто их нет..." (с) МВ
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с нехваткой памяти при использовании функции LIST()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]