Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Большой блоб и octet_length / 11 сообщений из 11, страница 1 из 1
19.01.2019, 22:28
    #39761919
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Привет всем.

FB 2.5.8, БД в 3-м диалекте.

Закачал в базу файл:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
 Том в устройстве D не имеет метки.
 Серийный номер тома: 9024-F209

 Содержимое папки D:\Data

11.01.2019  10:22     3 206 791 168 AERIAL.ECW
               1 файлов  3 206 791 168 байт
               0 папок 279 742 492 672 байт свободно



Запрос вида
Код: sql
1.
2.
3.
select octet_length( ECW_BLOB )
  from MY_TABLE
 where ID = 1


возвращает значение -1088176128 (что и понятно - переполнение integer)

Ест ли в данном случае узнать действительный размер blob-поля?

С уважением, Polesov.
...
Рейтинг: 0 / 0
19.01.2019, 22:31
    #39761921
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Polesov, вдогонку

Файлы обновляются на клиенте, есть файлы по 10 GB
Перед обновлением требуется оценить достаточно ли свободного места на диске.
...
Рейтинг: 0 / 0
19.01.2019, 23:07
    #39761929
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Обновляйся до 3.0.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.01.2019, 23:12
    #39761930
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Dimitry Sibiryakov, хороший совет. но ...

Пока видится 2 варианта:
- хранить размер в отдельно поле, передавая его параметром
- в UDF считать суммарный размер сегментов блоба (для больших блобов долго)
...
Рейтинг: 0 / 0
19.01.2019, 23:16
    #39761931
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
А есть ли возможность узнать общее количество сегментов (страниц?) занимаемых блобом?
...
Рейтинг: 0 / 0
19.01.2019, 23:58
    #39761938
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Polesov,

в 3.0 статистка по блобам есть, но я думаю это не подойдёт
...
Рейтинг: 0 / 0
20.01.2019, 00:12
    #39761944
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
PolesovА есть ли возможность узнать общее количество сегментов (страниц?) занимаемых блобом?

Есть, но она тоже 32-х разрядная. Так что обновляйся или умри.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.01.2019, 00:16
    #39761945
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Симонов Денис, да оно и подсчетом количества страниц (с учетом сжатия) не подойдет.

Пока, как рабочий вариант, рассматривается запись больших блобов кусками (скажем, по 100 MB).
Т.е. при сохранении файла в БД будет разбиение на куски, а при обновлении на клиенте склеивание кусков.
Плюсы такого подхода:
- не будет проблем при чтении блобов компонентаим достура (используется FIB+, в них память выделяется под весь блоб)
- размер можно будет определить запросом вида
Код: sql
1.
2.
3.
select sum( octet_length( ECW_BLOB ) )
  from ECW_TABLE
 where ECW_ID = ...


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

Как-то так...
...
Рейтинг: 0 / 0
20.01.2019, 00:18
    #39761946
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Dimitry SibiryakovЕсть, но она тоже 32-х разрядная.

Имя, сестра, имя...
...
Рейтинг: 0 / 0
20.01.2019, 00:23
    #39761951
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
PolesovИмя, сестра, имя...

Ты не поверишь: isc_blob_info()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.01.2019, 00:25
    #39761952
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большой блоб и octet_length
Dimitry SibiryakovТы не поверишь: isc_blob_info()

Спасибо.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Большой блоб и octet_length / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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