<< Click to Display Table of Contents >> Разработка > Рекомендации по разработке для масштабируемых систем > Оптимизация длительных процессов Массовое удаление документов |
![]() ![]() ![]() |
В веб-клиенте сотрудник может удалять из системы ошибочно созданные документы. Также иногда нужно массово удалять документы, например десять и более. В прикладном коде для этого используется метод Delete(). Например, в системе разработчик доработал согласование документов так, что для каждого согласующего создаются рабочие копии документов. Это позволяет избежать блокировок документа для других сотрудников и из примечаний составить протокол согласования. При таком подходе количество документов увеличивается в несколько раз, поэтому после согласования нужно массово удалять рабочие копии.
В рабочее время рекомендуется отказаться от массового удаления документов, так как оно снижает быстродействие и отклик системы для всех пользователей. Это связано с медленным удалением записей из СУБД: в ней нет полного покрытия индексами ограничений (constraints), и их проверка происходит длительное время.
Если нужно массово удалить документы, то рекомендуется:
•делайте это в нерабочее время;
•удалите версии документов, а не сами документы. После этого нужно очистить файловое хранилище и изъять права на документ. Подробнее про очистку файлового хранилища см. в разделе «Сервис хранилищ» (Windows и Linux);
•переиспользуйте существующие записи. Например, при создании копии документа добавьте условие, которое будет проверять, что исходный документ можно повторно использовать. Если можно, то продолжить работу с исходным документом, а если нет, то создать копию. При реализации необходимо учитывать, что документ возможно используется в других местах: отправлен на согласование, он уже подписан, зарегистрирован и т.д. В этом случае его удалить нельзя.
© Компания Directum, 2024 |