Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как удалить BLOB? / 25 сообщений из 27, страница 1 из 2
18.03.2004, 10:50
    #32446706
ils
ils
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
У меня вот какой вопрос.
Как удалить содержимое BLOBa? Как я понимаю, если в таблице sometbl имеется блоб-поле BLOB_field, то "delete from sometbl" или
"alter... set BLOB_field=null ..." удаляет только ссылку. И при частых вставках/удалениях больших блобов размер файла базы очень быстро увеличивается.
Вообщем, как можно решить эту проблему или где можно об этом узнать?
Зараннее благодарен
...
Рейтинг: 0 / 0
18.03.2004, 10:57
    #32446726
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
автор"alter... set BLOB_field=null ..." удаляет только ссылку.
Ась?
...
Рейтинг: 0 / 0
18.03.2004, 10:59
    #32446731
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
уменьшить размер базы можно только с помощью backup/restore
...
Рейтинг: 0 / 0
18.03.2004, 11:02
    #32446737
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
А нахрена?
...
Рейтинг: 0 / 0
18.03.2004, 11:25
    #32446792
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
ну если хочет человек
...
Рейтинг: 0 / 0
19.03.2004, 12:07
    #32448951
ils
ils
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
2 srf2000:
сенкс

2 Мимопроходящий:
Ну разумеется не "alter...", а "update..." - просто очепятка
...
Рейтинг: 0 / 0
19.03.2004, 12:37
    #32449031
Andrew Kruchinin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Ну почему. Есть еще один вариант кажется:

1. Сделать таблицу BLOBS(ID INTEGER, DAT BLOB SUB_TYPE 0 SEGMENT SIZE 80)

2. В таблице куда подвязываются данные вместо поля BLOB занести ID из таблицы BLOBS

3. Вместо чистки основной таблицы просто удалять запись из таблицы BLOBS, ну потом при желании можно еще мусор собрать
...
Рейтинг: 0 / 0
19.03.2004, 13:16
    #32449154
ils
ils
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
2 Andrew Kruchinin

авторну потом при желании можно еще мусор собрать

А есть возможность динамически собирать мусор, не выполняя бекап?
...
Рейтинг: 0 / 0
19.03.2004, 13:20
    #32449168
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Мусор и так собирается автоматически . Если конечно, не предпринять некоторых дополнительных телодвижений, кои не рекомендуется проводить, без особой на то надобности.
...
Рейтинг: 0 / 0
19.03.2004, 15:41
    #32449563
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
И при частых вставках/удалениях больших блобов размер файла базы очень быстро увеличивается.

Вот помнится, такая же проблема с MEMO - полями в FoxPro была. Не было повторного использования освобожденного пространства. И с перестройкой .CDX - файлов аналогично. Пока не сотрешь его нафиг и повторно не построишь.

Тут нет такой траблы? (я BLOB - поля имею в виду)
...
Рейтинг: 0 / 0
19.03.2004, 15:42
    #32449569
ils
ils
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Например, имеется файл базы с начальным размером 1 М. Я добавляю в таблицу два блоба по 5 М. Соответственно размер файла становится 11 М.
У удаляю эти два блоба. Потом опять добавляю один блоб размером 5 М. Размер файла становится 11+5=16 М. Можно ли записывать содержимое блобов на неиспользуемое место. Или это невозможно? И вообще, где можно взять информацию о том, как в интербейсе хранятся блобы.
...
Рейтинг: 0 / 0
19.03.2004, 15:58
    #32449599
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Ну, блин, заинтересовал. Сейчас проведу эксперимент.
...
Рейтинг: 0 / 0
19.03.2004, 16:04
    #32449624
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
>ils
>Размер файла становится 11+5=16 М.

"Это вряд ли" (с)
...
Рейтинг: 0 / 0
19.03.2004, 16:36
    #32449705
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
автор>Размер файла становится 11+5=16 М.
"Это вряд ли" (с)
Легко!
Место на страничках будет достопно для повторного использования только после того, как по ним пройдётся GC. А способов "оттянуть" сборку мусора предостаточно...
...
Рейтинг: 0 / 0
19.03.2004, 16:38
    #32449712
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Проверил. Ты нас обманул.

Я записал 10 песенок в формате .MP3 - база стала размером 32,1 мегов.
Все стер. Записал еще 5 песенок по 3,5 мега - размер не изменился.

Хотя, конечно, возможно некоторое увеличение и-за задействования внутренних механизмов оптимизации (например, сегментирование свободного пространства).

Так что не надо лохматить бабушку.

Удачи.
...
Рейтинг: 0 / 0
19.03.2004, 16:42
    #32449719
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
>Мимопроходящий

По-моему ты путаешься в авторстве постов...:)

...
Рейтинг: 0 / 0
19.03.2004, 16:44
    #32449724
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
А какая разница?
...
Рейтинг: 0 / 0
19.03.2004, 16:54
    #32449753
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Интересно, поэкспериментировал со значением PageSize. Когда установил 4096 вместо 1024 - скорость записи/извлечения Blob - полей увеличилась в разы.

Интересно, как изменение SegmentSize повлияет?
...
Рейтинг: 0 / 0
19.03.2004, 16:56
    #32449763
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Никак.
Разве что только в том случае, если используемая тобой библиотека доступа обращает на него внимание. Я таких не знаю.
...
Рейтинг: 0 / 0
19.03.2004, 17:00
    #32449784
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
А какое тогда значение SegmentSize устанавливать при проектировании?
...
Рейтинг: 0 / 0
19.03.2004, 17:00
    #32449786
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Монопенисуально.
...
Рейтинг: 0 / 0
19.03.2004, 17:08
    #32449808
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
Ну, попробовал, разницы действительно большой нет.

Может, имеет смысл учитывать при записи большого числа не очень больших массивов данных в целях, чтобы дисковое пространство не так сильно использовалось? (Типа, если размер массива соизмерим с размером сегмента, и размер массива переменный)
...
Рейтинг: 0 / 0
19.03.2004, 17:14
    #32449825
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
По умолчанию - 80 байт.
...
Рейтинг: 0 / 0
19.03.2004, 18:32
    #32449955
Andrew Kruchinin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
...
Рейтинг: 0 / 0
19.03.2004, 18:37
    #32449962
Andrew Kruchinin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить BLOB?
А вот тут по поводу чистки мосора после удаления есть инструкции.

Кстати, по поводу добавления третьего файла - в какой транзакции добавлял? В этой же?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как удалить BLOB? / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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