|
Помогите правильно уменьшить (урезать) размер 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 - путь и имя файла.... и пусть себе неделю в цикле пишет... единственное что код получения фото из файла нужно дописать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |