Работа с BLOB полями в InterBase/FireBird
Модератор: kdv
Работа с BLOB полями в InterBase/FireBird
Подскажите, пожалуйста, существует ли возможность дописывать данные в BLOB поле не перезаписывая его целиком средствами Server API или используя компоненты, например FibPlus ?
Работа с BLOB полями в InterBase/FireBird
Спасибо Kdv, за ответ, Вы очень помогли.
Продолжая тему, хотелось бы понять существует ли в InterBase/Furebird возможность отключить версионность, т.е. изменять данные в однопользовательском режиме, т.к. есть проблема с размерами файла БД (много BLOB и иногда они часто изменяются), а проводить сбоку мусора автоматически или в ручном режиме часто не хотелось бы.
Продолжая тему, хотелось бы понять существует ли в InterBase/Furebird возможность отключить версионность, т.е. изменять данные в однопользовательском режиме, т.к. есть проблема с размерами файла БД (много BLOB и иногда они часто изменяются), а проводить сбоку мусора автоматически или в ручном режиме часто не хотелось бы.
Работа с BLOB полями в InterBase/FireBird
Более подробно о системе. С технологического оборудования каждую минуту снимаются значения около 40000 параметров и архивируются в БД Firebird 1.5. Данные могут приходить с различной временной меткой(не в порядке хода времени). Для более быстрой выборки данных их хранение основано на BLOB полях. В таблице с данными следующие поля: идентификатор параметра и набор BLOB полей для хранения сигналов (11 байт на сигнал). Размер блоба равен страницы данных в БД - 4096 байт. В данном случае в таблице 4 BLOB поля. Пишет только один клиент, держа в памяти для каждого параметра один BLOB и если пришли данные он просто апдейтит этот BLOB. При таком раскладе если не проводить "сборку мусора" совсем, то примерно через несколько часов размер файла БД переваливает за 10 ГБ, а на самом деле "чистых" данных за сутки должно быть 40000*60*24*11 - примерно 600 МБ. Проблема, конечно, решилась включением сбоки мусора через каждые 20000 транзакций(можно наверное сделать и побольше). Просто при больших объемах файла БД скорее всего будут ощущаться тормоза при выбоке.
Если кто-то что-то захочет добавить буду признателен.
Спасибо, Kdv.
А так считаю, что тема закрыта...
Если кто-то что-то захочет добавить буду признателен.
Спасибо, Kdv.
А так считаю, что тема закрыта...
-
- Сообщения: 53
- Зарегистрирован: 11 мар 2005, 15:44
Re: Работа с BLOB полями в InterBase/FireBird
А насколько разбросаны по времени данные для одной и той же временной метки? В смысле, нельзя ли сделать буфер (несколько буферов) в файле или ОЗУ, в которых бы накапливались данные для каждой метки, и только по получении информации от всех датчиков сохранять данные в БД?Dinosauro писал(а):Данные могут приходить с различной временной меткой(не в порядке хода времени).