|
v7: Удаление документов. | ☑ | ||
---|---|---|---|---|
0
Eeakie
23.07.14
✎
16:01
|
Добрый день.
Надо удалить ~500к документов. Обычной обработкой пометить на удаление, а потом через стандартное "Удаление помеченных объектов" удалить что помечено. Вопрос в том, что скорость пометки на удаление падает. Помечаю в транзакции по месяцу. Количество документов в одном месяце примерно одинаково, но первые 2 месяца помечаются по 2-3 минуты, а дальше скорость серьезно падает. Если через контроль удалить то, что уже помечено, то скорость вновь становится нормальной. Как обойти данную хрень? Чтоб сразу пометить всё, а потом всё удалить без потери в скорости? ТА перевёл на самый первый документ в базе. |
|||
1
AntiBuh
23.07.14
✎
16:04
|
а чо этой обычной обработкой сразу не выпилить?
|
|||
2
Eeakie
23.07.14
✎
16:05
|
(1) Ссылки нужно сохранить. Много документов друг на друга ссылкаются. Думаю, если их по каждому удаляемому документу искать внутри обработки, то будет еще дольше.
|
|||
3
DeiMos
23.07.14
✎
16:09
|
(2): Так сохраняй предварительно в список значений.
Потом по этому СЗ иди и ищи объекты - помечай их. |
|||
4
Эльниньо
23.07.14
✎
16:11
|
Попробуй транзакциями по 100 штук
|
|||
5
Eeakie
23.07.14
✎
16:14
|
(3) Немного не понял ход мыслей... взять объект, записать в СЗ, а потом шерстить СЗ, ища ссылки на каждый объект?
(4) Сейчас попробую. |
|||
6
КонецЦикла
23.07.14
✎
16:16
|
ТА перенести перед перед удаляемым документом
По штук 100 можно помечать |
|||
7
NS
23.07.14
✎
16:17
|
(0) Скорость падает из-за "особенностей" SQL-а.
Простейший способ обойти - сделать выход из 1С после определенного количества документов, потом по шедулеру вход, с автоматическим запуском обработки. Ну и как выше написано - удалять в транзакциях, по 100-1000 документов. |
|||
8
КонецЦикла
23.07.14
✎
16:18
|
Да, помнится при восстановлении посл-ей юзал реконнект натив
|
|||
9
Eeakie
23.07.14
✎
16:21
|
(6) Каждый раз переность ТА на удаляемый документ?
(7) Тоже была мысль в планировщик запихать через каждые 2 месяца помеченных. |
|||
10
NS
23.07.14
✎
16:23
|
(9) ТА перед началом обработки убрать в самое начало, а вернуть только после пометки всех документов. Естественно.
Насчет планировщика была правильная мысль. Ибо обработка мало того что замедляется, она после большого количества данных может просто упасть. |
|||
11
Eeakie
23.07.14
✎
16:24
|
(10) ТА убрал на самое начало, да. Буду пробовать через планировщик, наверное, делать. Самый простой выход, как мне кажется.
|
|||
12
DeiMos
23.07.14
✎
16:29
|
(5): Да. Именно так.
Транзакциями по 100-1000 записей СЗ. |
|||
13
Ёпрст
23.07.14
✎
16:34
|
(0) тупо так
delete жур from _1sjourn as Жур where Жур.date_time_iddoc <=:КонДата~ далее почистить таблички шапок/тч документов по условию iddoc not in (select iddoc from _1sjourn) аналогично с табличками движений регистра, проводками и операциями + почистить табличку ссылок и _1sconst пересчитать итоги, наслаждаться. |
|||
14
Eeakie
23.07.14
✎
16:39
|
(13) Если б умел так "тупо :)", то давно бы сделал. Пытался когда-то прямыми удалить, но не врубился как почистить движения регистров. Да вообще пока что совсем мало опыта прямыми выкашивать документы.
|
|||
15
Eeakie
23.07.14
✎
16:45
|
(13) И, кстати, если в наглую так косить, то удалится всё, что есть. А некоторые надо оставить, ссылки на которые есть в документах нынешних.
|
|||
16
Eeakie
23.07.14
✎
16:46
|
Ну, да ладно. Как прижмёт, так и до удаления прямыми дойду. А пока через планировщик буду мутить :)
|
|||
17
Ёпрст
23.07.14
✎
16:50
|
(15) как бэ, условия в текстах запроса еще никто не отменял
|
|||
18
Eeakie
23.07.14
✎
16:54
|
(17) Не знаю как ссылки проверить в прямом запросе. Ну гуглил правда...
|
|||
19
Ёпрст
23.07.14
✎
17:02
|
(18) через запрос к 1SCRDOC
|
|||
20
ДенисЧ
23.07.14
✎
17:02
|
(19) нуну. Если у меня в реквизите справочника будет ссылка на документ, никакой scrdoc об этом не узнает.
|
|||
21
Eeakie
23.07.14
✎
17:14
|
(20) В справочниках, к счастью, ссылок на документы нет. Только если в периодике.
|
|||
22
Ёпрст
23.07.14
✎
17:42
|
(20) ну дык..он же вроде как доки пока удаляет :)
|
|||
23
ДенисЧ
23.07.14
✎
17:44
|
(22) Ссылка-то есть...
|
|||
24
NS
23.07.14
✎
20:13
|
А зачем ссылки проверять? Ты же не удаляешь, а помечаешь на удаление.
|
|||
25
Pit0n_08
23.07.14
✎
20:45
|
А база SQL или DBF?
|
|||
26
Pit0n_08
23.07.14
✎
20:53
|
На файловой удалял файлы RG.dbf и RA.dbf, штатной обработкой помечал на удаление, штатно удалял и перепроводил оставшиеся. Удаление порядка 230 т. доков , проведение оставщихся, ТиИ и сжатие ИБ заняло совокупно 3,5 часа на сервере 10-летней давности. Предварительно обработкой на конец обрезаемого периода были созданы документы по вводу нужных остатков (непроведенные).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |