Подтвердить что ты не робот

Вычисление общего размера данных столбца BLOB в таблице

У меня есть таблица с большими объемами данных BLOB в столбце. Я пишу утилиту, чтобы сбрасывать данные в файловую систему. Но перед сбросом мне нужно проверить, доступно ли на диске необходимое пространство для экспорта всех полей blob по всей таблице.

Пожалуйста, предложите эффективный подход для получения размера всех полей blob в таблице.

4b9b3361

Ответ 1

Вы можете использовать функцию MySQL OCTET_LENGTH(your_column_name). Подробнее см. здесь.

Ответ 2

select sum(length(blob_column)) as total_size 
from your_table

Ответ 3

select sum(length(blob_column_name)) from desired_tablename;

Ответ 4

К сожалению, в лучшем случае это БД.

Чтобы получить общий размер таблицы с блоками в Oracle, я использую следующее: https://blog.voina.org/?p=374

К сожалению, это не работает в DB2. Мне все еще нужно найти альтернативу.

Простой

select sum(length(blob_column)) as total_size 
from your_table

не является правильным запросом, так как не будет корректно оценивать размер блоба на основе ссылки на blob, который хранится в столбце blob. Вы должны получить фактический выделенный размер на диске для blobs из репозитория blob.