Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Удаление 500000+ помеченных в БП 2.0

Удаление 500000+ помеченных в БП 2.0
Я
   Митяйский
 
13.04.18 - 11:51
Может кто подсказать, как можно вычистить помойку после свертки БП 2.0, обойдясь меньшей кровью? Стандартное удаление повесило мой i5 уже на три с лишним часа. Подумываю начать чистить внешней обработкой, только очень не хочется чего-то опять садиться за написание велосипедов.

Может кто какие хитрости знает?
 
 
   Cool_Profi
 
1 - 13.04.18 - 11:53
Я обычно беру Портативные Инструменты (TormozIT, с тебя магарыч) И чищу по метаданным
   Dmitry1c
 
2 - 13.04.18 - 11:53
(0) выгрузи через выгрузку-загрузку XML данные в чистую базу
   Lama12
 
3 - 13.04.18 - 11:58
(0) 3 часа... :-) Выходные впереди.  Подожди.
   Митяйский
 
4 - 13.04.18 - 11:58
(2) Ну так не факт, что мусор не потащится следом.
Я ведь не знаю остались ли там ссылки на старые документы.

Свертку запускал со всеми настройками по умолчанию. В предыдущие разы у меня всегда оставались какие-то не до конца свернутые хвосты и недопомеченные документы
   Рэйв
 
5 - 13.04.18 - 12:04
(0)Если скуль, то напрямую скальными запросами удаляется в разы быстрее.
   Рэйв
 
6 - 13.04.18 - 12:05
*скульными :-)
   SeriyP
 
7 - 13.04.18 - 12:11
(4) Думаю, что при таком способе удалится процентов 10 из помеченного. И ждать придется долго
   Митяйский
 
8 - 13.04.18 - 12:29
Короче, не удаляется вообще ничего практически.

Эти козлы поснимали галку "только обороты" с субконто документов расчета почти на всех счетах. Соответсвенно и не свернулось толком нихера, все повылазило в остатки.

Короче мой косяк, извиняйте.
Без велосипедов сегодня не обойтись, увы.
   ProxyInspector
 
9 - 13.04.18 - 12:52
Я думаю, что через сутки/двое обработка по удалению вывалиться в дамп.
Если в базе больше 100 000 документов, то это уже не ларек, и типовая обработка по удалению помеченных на удаление документов не работает.
  Обычно пишется своя обработка по удалению помеченных на удаление объектов порциями. И все работает.
  Я удалял 1 500 000 документов и ничего
   ВикторП
 
10 - 13.04.18 - 13:00
(9) ничего - это сколько длилось?
 
 Рекламное место пустует
   Aleksey
 
11 - 13.04.18 - 13:19
(5) Я бы не стал бы так делать
Есть 100500 регистров сведений где участвует документ (типа первичные документы наличие файла и т.д.) и еще 100600 справочников (типа прикрепленные файлы, циклы обмена и т.д.)
А еще куча подвязок если используется 1С-Отчетность и 1с-ЭДО

Забодаешься битые ссылки вычищать ...
   Segate
 
12 - 13.04.18 - 13:22
(10) если паралеллизмом заморочиться, и сервер позволяет, то норм. Не долго должно быть
   Мандалай
 
13 - 13.04.18 - 13:32
(4)Если мусор потащится следом значит на него есть ссылки - как ты в этом случае собрался удалять?
   vis_tmp
 
14 - 13.04.18 - 13:34
(9)Если и уже написанные
   Ботаник Гарден Меран
 
15 - 13.04.18 - 13:58
В типовую обработку добавлял кнопку, которая снимала флажки в списке помеченных на удаление и устанавливала нужное количество флажков (запрашивалось в диалоге или делалось несколько пунктов меню).
По 500 и 1000 элементов вполне быстро удалялось.
   Maniac
 
16 - 13.04.18 - 14:00
сделать это на нормальном компе.
с хорошим процом и памятью.
плюс чтобы 1С 64 битная
   ВикторП
 
17 - 13.04.18 - 14:14
(12) Я сам параллельные процессы не "делал" , если опыт , поделитесь- что делали и сколько времени ушло на сам алгоритм
   Широкий
 
18 - 13.04.18 - 14:31
Удаляй скульными методами
   piter3
 
19 - 13.04.18 - 14:34
(9) И сколько по времени дает экономию?Пробовал,особой разницы не заметил
   Buster007
 
20 - 13.04.18 - 14:42
(19) сколько потоков, во столько раз и быстрее
   s202
 
21 - 13.04.18 - 15:12
(0) с диска ИТС обработка "УдалениеПомеченных" с отборами -
не подойдет ?
   s202
 
22 - 13.04.18 - 15:13
Если отбирать и делать по частям - контроль проходит в разы быстрее.
   Segate
 
23 - 13.04.18 - 15:36
(17) Так как 1с не умеет в паралеллизм, то можно пойти двумя способами:

1й: на уровне SQL курить max degree of parallelism, или как-то так... раскуривать результирующие запросы и раскидывать на уровне скуля

2й: запускать выборку, потом бить выборку на части и удаление каждой из порций запускать в рег. задании...
   Cyberhawk
 
24 - 13.04.18 - 15:36
Свертка базы - безсмысленное дело.
Свертка регистров - наоборот.
   piter3
 
25 - 13.04.18 - 15:37
(20) Это пятничная шутка такая?
   Митяйский
 
26 - 13.04.18 - 15:38
(21) я не догадался даже в унирепс 81 посмотреть, если честно

не знал, что оно все еще работает
   Tatitutu
 
27 - 13.04.18 - 15:47
Как быстро "удалить все документы и движения" в базе (Альтернатива)

http://catalog.mista.ru/public/795965/
   Segate
 
28 - 13.04.18 - 15:52
(25) не, ну при наличии неограниченных ресурсов, можно приблизится к подобному... Если каждый из потоков будет в своем рабочем процессе и на каждый будет свое физическое ядро... То в принципе это будет работать быстрее... вопрос остается только в ожиданиях на блокировках... но тут надо играться со степенью изоляции..
   ProxyInspector
 
29 - 13.04.18 - 16:01
(19) Причина из-за которой приходится изобретать велосипед при при удалении помеченных объектов
1. Для 1с8 - это необходимость монопольного доступа к базе
2. Типовая обработка вываливается в дамп, так как она создает таблицу ссылок для каждого помеченного на удаление элемента. Если у вас 1000 элементов, то данная таблица может доходить до 1 млн записей. Если 10 000, то до 100 млн записей. При этом эта таблица совершенно не нужна.

   А так удаление 1 500 000 документов заняло несколько суток в фоновом режиме
   Serg_1960
 
30 - 13.04.18 - 16:02
(0) "Может кто подсказать, как можно" - конечно подскажу.
Гуглите :)
https://yandex.ru/yandsearch?text=удалениепосле%20свертки&lr=10754&site=forum.mista.ru
   ProxyInspector
 
31 - 13.04.18 - 16:07
Если у вас достаточно большая база пусть будет 3 млн. документов из которых 1.5 млн помеченных на удаление.
  ТО стандартные способы с планами обмена не сработают. Там файл обмена будет несколько сотен Гб.
   piter3
 
32 - 13.04.18 - 16:08
(29) Заинтриговали
   Serg_1960
 
33 - 13.04.18 - 16:08
(27) Это неправильный совет :( Но в нужном направлении :)
Когда используется обмен, то отключаются все платформенные проверки (даже контроль целостности данных) и большинство программных действий и проверок. И в итоге можно получить те-же грабли, что и при непосредственном удаление объектов с использованием ".ОбменДанными.Загрузка = Истина".
 
 
   ProxyInspector
 
34 - 13.04.18 - 16:11
Возможны два способа 
1. ОЛЕ
2. WEB обмен
  Однако не смотря на свою крутизну разработчики 1с так и не смогли написать универсальных обменов для одинаковых конфигураций через ОЛЕ или WEB.
   ProxyInspector
 
35 - 13.04.18 - 16:29
Вот сейчас стоит задача База 3.6 млн документов за 5 лет. Учет велся по 60 организациям. Сейчас учет ведется где-то по 10 организациям. Требуется перенести в чистую базу пару организаций.
Через универсальный WEB обмен это заняло примерно 6 часов. Было перенесено 62 тыс документов. Без ошибок. Все остатки сошлись.
  Я начинаю любить 1С8
   Доминошник
 
36 - 13.04.18 - 16:32
(35) А где почитать-посмотреть по поводу "универсального WEB обмена"?
   ProxyInspector
 
37 - 13.04.18 - 16:36
А это сами пишете. Там не очень сложно. Так же как и универсальный обмен через ОЛЕ.
  Для WEB есть несколько тонкостей. Там есть какое то отграничение на размер передаваемого объема информации. В моем случае при попытке передать информацию о 30 тыс. документов обмен отваливался. Пришлось передавать информацию частями
   ProxyInspector
 
38 - 13.04.18 - 16:45
Я посмотрел требуется порядка 100 строк кода на формирование выгрузки любого объекта базы в XML, включая регистры сведений. И столько же на загрузку.
  Это конечно не относится к бухгалтерии. Там наверное сложнее. Уж больно криво все реализовано в бухгалтерии.
   Aleksey
 
39 - 13.04.18 - 16:59
(23) они будут блочить друг друга. я пробовал паралельно удалять доки по разным организациям - не взлетело, нарывался на блокировки
   ProxyInspector
 
40 - 13.04.18 - 17:05
(39) Для 1с8 все параллельности не актуальны. 1с8 очень плохо работает по настоящему параллельно. Разработчики 1с8 умудрились сделать так, что параметр "ВремяОжиданияБлокировки" при записи элемента не работает. И любая попытка записать заблокированный элемент справочника приводит к немедленной взаимоблокировке.
  Для решения этой проблемы можно использовать Попытка Исключение  вот тогда становится немного лучше
   ProxyInspector
 
41 - 13.04.18 - 17:06
Это все касается толстого клиента. Но у меня есть ощущение, что на УФ не лучше.
   mexanik_96
 
42 - 13.04.18 - 17:14
(23) ну опять... она и не должна уметь, это проблемы субд и планировщика
   ВикторП
 
43 - 17.04.18 - 09:44
(40), (41) какой клиент тут ни при чем, вы не смогли распараллелить - надо чтобы записи не пересекались - у вас не так - от этого и блокировки


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует