Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Размер базы сильно увеличивается / 15 сообщений из 15, страница 1 из 1
04.05.2020, 16:36
    #39954105
___Nikolay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
Есть хранимая процедура, которая содержит "for select" и планомерно заполняет исходящий параметр типа blob (subtype text). Это так создается содержимое для будущего xml-файла. Файл потом получается размером в 5 MB. Но в процессе выполнения процедуры база данных очень сильно раздувается с 80 мегов аж до 200 гигов!... Проверялось на FB2.5 и 3.0. Почему так происходит? Можно ли этого избежать?
...
Рейтинг: 0 / 0
04.05.2020, 16:59
    #39954110
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
___Nikolay,

потому что страничный кеш не резиновый и временным блобам приходится писаться на диск.

___NikolayМожно ли этого избежать?

совсем избежать не получится, но можно постараться уменьшить количество временных блобов.

1. Использовать промежуточные буфера VARCHAR(32000) и клеить BLOB большими кусками
2. В некоторых местах использовать LIST

Что там именно нужно и можно сделать зависит от текста вашей процедуры.
...
Рейтинг: 0 / 0
04.05.2020, 17:03
    #39954111
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
___NikolayМожно ли этого избежать?

Да. Задача формирования XML - клиентская, не надо ею нагружать сервер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.05.2020, 17:17
    #39954114
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
вооот
...
Рейтинг: 0 / 0
04.05.2020, 17:30
    #39954117
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
___Nikolay> Можно ли этого избежать?

Никому не показывай текст процедуры!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.05.2020, 18:37
    #39954136
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
...
Рейтинг: 0 / 0
04.05.2020, 20:36
    #39954171
MikeDD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
Гаджимурадов Рустам
___Nikolay> Можно ли этого избежать?

Никому не показывай текст процедуры!


Да и так понятно что там. Что-то типа такого:

for select ...
into :tmp_blob
do
:blob = :blob || :tmp_blob;

Есть вопрос. А что если сделать временную таблицу куда к примеру записывать построчно этот самый :tmp_blob. А в финале уже вернуть list() от этой временной таблицы. Проблема с распуханием БД решится?
...
Рейтинг: 0 / 0
04.05.2020, 21:21
    #39954186
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
MikeDD
А что если сделать временную таблицу куда к примеру записывать построчно этот самый :tmp_blob. А в финале уже вернуть list() от этой временной таблицы. Проблема с распуханием БД решится?
Если в таблице будет поле varchar - да, решится.
Но в данном случае эта таблица не нужна: select list() from sp, или select list from (select ...) - достаточно
...
Рейтинг: 0 / 0
05.05.2020, 05:40
    #39954255
___Nikolay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
Всех премного благодарю!
...
Рейтинг: 0 / 0
05.05.2020, 07:12
    #39954260
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
hvlad
Но в данном случае эта таблица не нужна: select list() from sp, или select list from (select ...) - достаточно


А порядком объединения в list() можно как-то управлять? Или хотя бы какой-то порядок заявлен?
...
Рейтинг: 0 / 0
05.05.2020, 08:51
    #39954265
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
fraks,

нет х 2.
...
Рейтинг: 0 / 0
05.05.2020, 09:55
    #39954271
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
fraks
hvlad
Но в данном случае эта таблица не нужна: select list() from sp, или select list from (select ...) - достаточно


А порядком объединения в list() можно как-то управлять? Или хотя бы какой-то порядок заявлен?
В LIST() - никак, в запросе под ним - вполне можно.
...
Рейтинг: 0 / 0
05.05.2020, 10:08
    #39954273
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
hvlad
fraks
пропущено...

А порядком объединения в list() можно как-то управлять? Или хотя бы какой-то порядок заявлен?
В LIST() - никак, в запросе под ним - вполне можно.


Я в свое время обжегся на том что подумал что group by кроме группировки так же дает и сортировку. И типа это же видно глазами. Однако, никто этого не обещал, "просто так получилось". И вот однажды, "получилось не так". Как говорится, никто не виноват, ССЗБ. Однако с тех пор я опасаюсь пользоваться "очевидными" но недокументированными вещами.

И вот допустим, я отсортировал запрос, и делаю из его результатов select list() .
Однако, никто не обещал что какой-либо порядок будет соблюден, простая склейка возможна минимум двумя вариантами, слева направо и справа налево. Кто-то декларирует что хотя бы это порядок не поменяется?

В каких-то случаях порядок не приципиален, но в случае как у топикстартера, если строки XML перемешаются - это фатально.
...
Рейтинг: 0 / 0
05.05.2020, 11:09
    #39954282
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
Не совем понятно как такая ситуация вообще возникла. Кто-то запилил новый функционал. Потом не было
девтестинга. И оказалось что база растет. Проблема упала на ... кого? На человека который код не писал
но отвечает за эксплуатацию.
...
Рейтинг: 0 / 0
06.05.2020, 12:53
    #39954565
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер базы сильно увеличивается
mayton
И оказалось что база растет.
Растёт не база, а её, так сказать, "рабочий объём". Место под временные блобы.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Размер базы сильно увеличивается / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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