Имя: Пароль:
1C
1С v8
Помогите правильно уменьшить (урезать) размер SQL базы.
0 new_hope
 
15.07.18
09:22
Собственно - источник проблемы известен - на протяжении 6-ти лет, в базу данных сохранялись фотографии (ХранилищеЗначения)... причем не нормировалось по объему каждого файла.

В итоге - сейчас база раздута до 800 гигабайт (где около 750 гигабайт эти сами фотографии). База на облаке - имеем проблемы с ее администрированием.

Собственно - 90% этих фотографий уже история, и они не нужны. Кроме самых новых и актуальных.

Прошу - дайте правильный совет, как правильно (и по возможности чтобы максимально быстро) усечь базу. Вариант свертки базы (удаление первичных документов - не рассматривается)

Я вижу один вариант - замена полноценных фотографий в базе на маленькие картинки типа иконок 32*32 пикселя, по 200-300 байт.
Делать это средствами 1С? Фотографий несколько сотен тысяч.

Кто что посоветует? Направьте на путь истинный.
1 DrShad
 
15.07.18
09:27
вынести все фотографии из БД на диск, а в БД только пути хранить
2 new_hope
 
15.07.18
09:35
(1) Вся фишка в том, что и это не решает проблему. Нужно освободить место на диске облака, а старые фотографии НЕ НУЖНЫ.

1. Заменить большую оригинальную фотографию на эскиз (к примеру 32х32) прямо в базе.
2. Удалить фотографию из базы вообще - и оставить ссылку на один файл эскиза на диске (один файл для всех документов) - тоже вариант.

Но если это около 500 тысяч фотографий - не растянется эта "процедура" на долгие дни?
3 new_hope
 
15.07.18
09:41
В случае, если прямо в базе заменять оригинальные фотографии на маленький эскиз (32*32 к примеру) - то записывать прийдется в только вяцсправочник ХранилищеЗначения.

Если удалять фотографию из "ХранилищеЗначения" - то еще прийдется писать в первичный документ путь к файлу картинки.
4 DrShad
 
15.07.18
09:51
если ты уже все решил, что здесь хочешь услышать?
5 xXeNoNx
 
15.07.18
09:55
(4) поощрение и разрешение...
6 new_hope
 
15.07.18
10:02
(4) Я не решил, это я так думаю.. Но я могу не знать о других путях решения проблемы (задачи). И еще - не растянется ли эта процедура на долгие недели? (ведь записывать в базу 500 тысяч записей, и это по одной?)

Вот и спрашиваю у вас, может есть другие пути решения?
7 vde69
 
15.07.18
10:13
для начала выведи статистику по размеру и дате файлов,

возможно именно тут ты поймешь, что сжав или удалив 20% самых больших файлов ты освободишь 80% места
8 vde69
 
15.07.18
10:14
>>>500 тысяч записей

это максимум 1 час
9 new_hope
 
15.07.18
10:30
(8) в среднем размер файла 1-2 мегабайта.

Все файлы в двоичном виде записаны в справочник "ХранилищеЗначения".

1 час - средствами 1С?

Принцип я вижу правильный?
1. Запрос к "ХранилищеЗначения" и получить выборку записей, где необходимо "урезать" фотографии.
2. Перебор значений запроса в цикле и запись в базу новой фотографии минимального размера (фотографии-иконки 32*32). В итоге, мы получаем вместо фотографии 2 мегабайта фотку в 250 байт.
3. После окончания процедуры - сделать сжатие таблиц ИБ?

Или как?
10 Фрэнки
 
15.07.18
10:38
пока ты будешь ломать голову и размышлять, можешь уже сделать обработку, которая будет выбирать подряд самые древние записи, пересохранять их на использование файлового архива, а уже затем, при необходимости, отдельно выполнить замены полноразмерных изображений на эскизы с размером 32 кб, если это покажется целесообразным.
11 vde69
 
15.07.18
10:48
(9)
>>> не нормировалось по объему каждого файла.
>>> в среднем размер файла 1-2 мегабайта.

да вот я не верю, два абсолютно не совместимых посыла...

я пользаков знаю, если не ставить ограничение будет куча файлов и 30 метров и еще больше...

зы
стандатный скан А4 с разрешением 300дпи занимает в цвете 0.5 метра, по любому  можно в двое твою базу ужать...
12 Aleksey
 
15.07.18
10:59
что же за фотографии такие, если их можно безболезнено заменить на "на маленькие картинки типа иконок 32*32 пикселя"
13 new_hope
 
15.07.18
11:04
(10) Обработка уже почти готова, по описанному принципу. Но как тут писали "за 1 час - 500 тыс записей" - она так быстро не работает.
14 new_hope
 
15.07.18
11:09
(11) Фотографии прямо с фотоаппаратов. С мобилок... с разным разрешением... есть и по мегабайту, есть и по десять, есть и по 500 кбайт (скан-копии документов)...

В один первичный документ пользователю было позволено присоединять любое количество фотографий. Размер фото не контролируется.

Задача другом. Мало того, что база данных распределенная.

Я описал выше принцип, по которому собираюсь делать процедуру, но испытав ее - понял, что одним часом дело не ограничится. Как можно сделать за час? (да и три часа - тоже подойдет :-) )
15 new_hope
 
15.07.18
11:12
(12) Фотографии, которые уже не нужны. Это не номенклатура товаров, а документы и фотографии событий, по которым уже завершены дела.
16 Aleksey
 
15.07.18
11:31
(15) тогда зачем миниатюры? Чтобы вводить в заблуждения, что они есть?
17 Aleksey
 
15.07.18
11:34
(15) да ты уже на мисте 2 часа трындишь, плюс до этого сидел думал явно не полчаса. Что ты к этому часу привязался? Или тебя через час выкинет с сервера и больше не пустит? Ты дольше готовишься. Или ты как в мультике "Лучше день потерять, потом за 5 минут долететь"

Работы на полдня максимум с перекуром, но ты будешь неделю ходить и искать инструмент как её сделать за полчаса?
18 rphosts
 
15.07.18
11:37
(15)что за непонятное ограничение времени в 1 час?
19 new_hope
 
15.07.18
11:43
(16) Да, что-бы знать, что фото есть.
И еще - посмотрев сам документ первичный - не получится просто убрать (удалить) фото из базы. Нужно еще удалять следы из первичного документа, иначе ошибки будут при его открытии. В код документа лезть? Слишком все сложно делается (ИМХО)

Я пытаюсь сейчас получить от Вас помощь - или прямо заменить в справочнике "ХранилищеЗначения" на миниатюры, тогда не нужно лезть в первичный документ и там делать изменения.

Выше писали - можно сделать все за один час (грубо). Это реально?

Я пробовал, описанным мной выше методом: Запрос - переборка запроса в цикле - запись миниатюры на место оригинала.
Но за час точно не будет.
Где я неверно думаю?
20 new_hope
 
15.07.18
11:46
(18) Ограничения "в час" нет конечно же.

Но - судя по моим пробам - обработка по вышеописанному методу - ну...на неделю точно. Запрос ко всей базе происходит очень быстро.. но вот переборка в цикле и запись - это уже совсем не быстро.
21 vde69
 
15.07.18
12:04
(20) недавно делал конвертацию прикреплены файлов (выгрузка на диск расчет CRC перенос на другой сервер и запись данных в базу), правда хранение не в базе а в томе на диске, но 700 гигов прошло за 1 час (и это с копированием по сети)
22 rphosts
 
15.07.18
12:47
(20) ну добавь 2 поля в таблицу хранение: 1 - булево - признак что файловое  хранение, 2 - строка ну пусть 180 - путь и имя файла.... и пусть себе неделю в цикле пишет... единственное что код получения фото из файла нужно дописать.
2 + 2 = 3.9999999999999999999999999999999...