Comments 3
В недавнем (мы установили его в январе) масштабном обновлении «Приоритета» и платформы эту проблему наконец-то исправили. Теперь вместо дубликата создается только ссылка на исходный бинарник, а отдельный бинарник появляется только в случае внесения правок в файл. Слава разработчикам! Но что делать с теми дубликатами, которые уже созданы?
Вы можете через своего партнёра или просто как клиент запросить в техподдержке скрипт который бы удалил дубликаты файлов созданные в период работы согласований. Но в целом ваш вариант тоже неплох
В целом непонятно почему именно эти файлы занимаю в БД основное место?
Можно воспользоваться процедурой
exec dvsys_help_show_section_size
вот что она может:
В результате работы будет выведен список таблиц, отсортированный по размеру, в сторону уменьшения. Ниже приведены рекомендации, если в списке таблиц с большим размером окажутся следующие.
1. dvtable_{388F390F-139E-498E-A461-A24FBA160487}
В данной таблице хранятся журналы всех экземпляров бизнес-процессов, которые существуют в системе. Для уменьшения размера таблиц нужно:
1. Удалить все отработавшие и уже не нужные экземпляры бизнес-процессов. Если запускаются подпроцессы, то необходимо сделать настройку удаления подпроцессов после завершения.
2. Определить какой из процессов делает большее число записей. Сделать это можно посмотрев на поле InstanceID в строке из данной таблицы. В этом поле содержится идентификатор карточки экземпляра бизнес-процесса. Журнал такого процесса, если он не нужен, можно очистить.
Команда очистки журнала определенного процесса:
DELETE FROM [dvtable_{388F390F-139E-498E-A461-A24FBA160487}]
WHERE InstanceID = 'ТУТ_ДОЛЖЕН_БЫТЬ_ID_ПРОЦЕССА_БЕЗ_ФИГУРНЫХ_СКОБОК'
Для удаления журналов всех завершенных бизнес-процессов выполните:
DELETE FROM [dvtable_{388F390F-139E-498E-A461-A24FBA160487}]
WHERE InstanceID IN
(SELECT InstanceID FROM [dvtable_{0EF6BCCA-7A09-4027-A3A2-D2EEECA1BF4D}] WHERE State = 4)
Можно удалить журналы всех экземпляров бизнес-процессов. На работу системы это не повлияет, однако, если есть процессы, приостановленные по ошибке, то причину остановки не удастся выяснить без журнала. Поэтому сначала нужно проверить нет ли процессов приостановленных по ошибке. Выяснить причину, а затем очищать таблицу.
Для удаления всех строк таблицы выполните:
TRUNCATE TABLE dvtable_{388F390F-139E-498E-A461-A24FBA160487}
Для предотвращения роста размера этой таблицы проверьте необходимость ведения журналов в активных бизнес-процессах, особенно которые работают по замкнутому циклу.
2. dvsys_log
В этой таблице хранятся записи журнала "Навигатора". Для того, чтобы журнал не увеличивался не ограниченно в размерах необходимо настроить автоматическую очистку. Для этого в журнале навигатора выставьте опцию "Очищать журнал" с соответствующим параметром. И в консоли настройки задайте "Папку для выгруженных файлов журнала". При такой очистке журнал будет выгружаться на диск (при помощи bcp). Это позволит в дальнейшем восстановить журнал при необходимости.
Удалить все записи из этой таблицы можно так же вручную запросом:
TRUNCATE TABLE dvsys_log
3. dvsys_files (dvsys_binaries)
В этой таблице хранятся все файлы, загруженные в DocsVision. Уменьшить размер этой таблицы можно только удалив ненужные файлы.
Хороший вопрос, почему бы просто не обратиться к разработчику?
Мы обратились к разработчику, параллельно прорабатывая решение своими силами.
Начнем с того, что простого скрипта не существует, специфика объема.
И к тому моменту, когда разработчик дал нам верхнеуровневую оценку, стало понятно, что основная сложность работы – не написание запросов, а планирование и согласование работ на продуктивной среде. Я предполагаю, что в результате мы бы получили переписку длиною в сотни сообщений и оценку, выросшую раз в пять от первоначальной верхнеуровневой. Т.е. результат тот же, но тратим деньги и работаем больше, нужно ли это нам?
Но не исключено, что я сильно ошибаюсь и существуют более простые способы решить данную задачу. Если DocsVision или Digital Design прокомментирует статью и укажет на какие-то ошибки или предложит элегантные решения – буду только рад, т.к. это будет полезно всем.
СЭД на платформе DocsVision (часть 2): как сократить базу данных с 19 до 11 ТБ