|
За какое время можно удалить 500 000 документов в БП 2.0? | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
fillIn
25.04.15
✎
20:25
|
Продолжение темы БП. Как ускорить закрытие периода?
Имеется 75000 контрагентов-физлиц, не ИП. Надо заменить их на одного контрагента. Один из этапов - удалить 500000 документов. На это дается всего 2 часа (не спрашивайте, откуда такая цифра). Клиент-серверный вариант. MS SQL. Сервера 16х1.4Ггц, RAM 32ГБ. Есть мнение, что за 2 часа это сделать нереально. А каково по вашему мнению реальное время? |
||||||||||||||||
1
RomanYS
25.04.15
✎
20:29
|
(0) а зачем удалять? ты их ещё сворачиваешь(объединяешь)?
|
||||||||||||||||
2
fillIn
25.04.15
✎
20:34
|
(1) Да. Вместо нескольких тысяч реализаций и оплат за месяц, надо сделать по одной реализации и одной оплате.
|
||||||||||||||||
3
vde69
25.04.15
✎
20:37
|
штатно не выйдет...
только удаление помеченных объектив на 0.5 ляма будет идти больше 2х часов |
||||||||||||||||
4
ShoGUN
25.04.15
✎
20:38
|
(2) Во-первых, тут многое будет зависеть от дисков, имхо, а про них ничего не сказано, во-вторых, мне кажется, объединять при загрузке будет быстрее, чем хреначить 500000 документов, а потом из удалять.
|
||||||||||||||||
5
Garykom
гуру
25.04.15
✎
20:39
|
Сначала более 4 суток подготовки, и затем
до 2 часов |
||||||||||||||||
6
fillIn
25.04.15
✎
20:41
|
(4) Это надо сделать в прошлых периодах в текущей базе.
|
||||||||||||||||
7
RomanYS
25.04.15
✎
20:43
|
может быстрее в пустую базу только нужное
|
||||||||||||||||
8
fillIn
25.04.15
✎
20:44
|
(6) Значит таки реально удалить за 2 часа? Что для это надо сделать за 4+ суток подготовки?
|
||||||||||||||||
9
dmpl
25.04.15
✎
20:45
|
(0) А может просто движения поправить? Зачем удалять?
|
||||||||||||||||
10
jsmith82
25.04.15
✎
20:45
|
Ну, если написать годный скрипт на T-SQL, то
до 2 часов |
||||||||||||||||
11
ДенисЧ
25.04.15
✎
20:46
|
Мда... Тут лёгкая атлетика уже не поможет.
Тут только тотальная диспансеризация и детоксикация... |
||||||||||||||||
12
dmpl
25.04.15
✎
20:46
|
(5) А подготовка зачем? Достаточно непосредственное удаление использовать.
|
||||||||||||||||
13
fillIn
25.04.15
✎
20:47
|
(7) Пробовали. Конвертация умирает на загрузке только справочников контрагентов и договоров. 250000 контрагентов (без физиков), еще больше договоров.
|
||||||||||||||||
14
shuhard_серый
25.04.15
✎
20:48
|
(0) а может и 30
более 4 суток |
||||||||||||||||
15
Garykom
гуру
25.04.15
✎
20:50
|
(13) типовая да... тут как раз нужна самописная, на текстовых файлах с правильной транзакцией
|
||||||||||||||||
16
fillIn
25.04.15
✎
20:50
|
(10) Тут уже делали так. База после этого, мягко говоря, заглючила.
Требуется надежное решение. |
||||||||||||||||
17
ДенисЧ
25.04.15
✎
20:51
|
(16) "База после этого, мягко говоря, заглючила"
Мягко говоря, тех, кто это делал, нужно было уволить. Жёстко говоря - пристрелить... |
||||||||||||||||
18
fillIn
25.04.15
✎
20:54
|
(17) Уже уволили. Не хочется уйти вслед за ними :)
Я считаю, что неплохо знаю структуру БД 1С, но не решусь удалять данные непосредственно в SQL. |
||||||||||||||||
19
RomanYS
25.04.15
✎
20:56
|
(13) под конвертацией имеется в виду выгрузка по правилам обмена?
Или ВыгрузкаЗагрузкаXML тоже пробовали? Откуда ограничение 2 часа? Если документы проведены, то мне кажется без шансов за сутки удалить. до 4 суток |
||||||||||||||||
20
ДенисЧ
25.04.15
✎
20:56
|
(18) А я считаю, что я плохо знаю структуры БД 1с 8*, но при необходимости выполнять такие операции - возьмусь, сделаю и всё будет работать, как часы "Командирские".
|
||||||||||||||||
21
vde69
25.04.15
✎
21:06
|
документы надо удалить выборочно или все определеного вида?
|
||||||||||||||||
22
fillIn
25.04.15
✎
21:08
|
(19) > под конвертацией имеется в виду выгрузка по правилам обмена?
Да > Или ВыгрузкаЗагрузкаXML тоже пробовали? А как это поможет? > Откуда ограничение 2 часа? Некоторые считают это реальным, причем только средствами 1С. Документы проведены. |
||||||||||||||||
23
fillIn
25.04.15
✎
21:10
|
(21) Несколько видов. Реализация, СФ, оплата, корректировка долга, может еще что-то забыл.
|
||||||||||||||||
24
RomanYS
25.04.15
✎
21:11
|
(22) я думаю, ВыгрузкаЗагрузкаXML будет заметно быстрее чем обмен по правилам
|
||||||||||||||||
25
dmpl
25.04.15
✎
21:13
|
(22) Ну, если удалить именно документы - попробуй непосредственное удаление в монопольном режиме.
|
||||||||||||||||
26
RomanYS
25.04.15
✎
21:14
|
(22)
>Документы проведены. Отключение итогов может ускорить удаление на порядок, только последующий расчет итогов может занять более 2 часов |
||||||||||||||||
27
fillIn
25.04.15
✎
21:44
|
(15) Самописная конвертация? Рассматриваем как вариант.
На какое время можно выйти в этом случае по Вашему мнению?. |
||||||||||||||||
28
aspirant
25.04.15
✎
22:11
|
Блин, да сделай в конце концов РИБ, и в файловой периферийное базе, размещённой в Рам диске проверки свои опыты, потом обмен между базами и все. Никто даже не заметит...
|
||||||||||||||||
29
dmpl
25.04.15
✎
22:13
|
(28) Обмен тупо свалится по недостатку памяти.
|
||||||||||||||||
30
aspirant
25.04.15
✎
22:20
|
(29) 64битный сервер не свалится. Настроить правильно транзакции и периодичность обменов.
|
||||||||||||||||
31
fillIn
25.04.15
✎
22:24
|
(28) Не вариант. Происходит, как в (29). 64-битный сервер 32ГБ ОЗУ. Оптимизация обмена - это уже другая история.
|
||||||||||||||||
32
Злопчинский
25.04.15
✎
23:13
|
Еще подсказывали что отключить регистрацию в журнале на массовых таких операциях
|
||||||||||||||||
33
fillIn
25.04.15
✎
23:48
|
(32) Сделали. Помогает, но не сильно.
|
||||||||||||||||
34
Asirius
26.04.15
✎
00:46
|
(0) Удалять непосредственно движения документов, при чем паралельно на разных таблицах.
Выпилить все срабатываемые события и блокировки (например, временно накатив подготовленную заранее конфу), а не просто обменданными.загрузка = истина. |
||||||||||||||||
35
Garykom
гуру
26.04.15
✎
00:51
|
(27) все кроме проведения доков будет ок
скажем на нормальном обычном компе (файловая на ssd) до 100 записей (элементов справочника или документов) в секунду при загрузке (и правильно подобранной транзакции) |
||||||||||||||||
36
Wirtuozzz
26.04.15
✎
00:59
|
(0) За два часа завалить базу - легко! Заказчику надеюсь вы сказали чем вся эта спешка обернется? Если нет, то надо бы сказать.
|
||||||||||||||||
37
GANR
26.04.15
✎
01:22
|
(10) Конечно же надо учитывать, что скрипт должен чистить еще и движения удаляемых документов (если есть). Плюс надо учесть, что на удаляемые документы может что-то ссылаться. К примеру, Поступление может фигурировать в качестве парии для какой-нибудь Реализации или Комплектации, а Реализация - выступает основанием Счета-Фактуры.
А особенно круто, если удаляемые документы могут ссылаться друг на друга, и плюс НА какие-то из удаляемой связки может ссылаться что-то, что нельзя удалять - тогда получается, что нельзя удалять всю связанную группу. Представляете себе алгоритм решения такой задачки? |
||||||||||||||||
38
Garykom
гуру
26.04.15
✎
01:39
|
(37) лисапед... в смысле уже писалось и не раз "быстрое удаление" "связанных объектов"
все делается через списки (можно - низзя) и поиск ссылок |
||||||||||||||||
39
VladZ
26.04.15
✎
08:37
|
(0) А не быстрее будет в чистую базу залить без этих 500 000 доков?
|
||||||||||||||||
40
MaxS
26.04.15
✎
08:57
|
А можно ли так?
Делается полный бэкап и копия базы средствами SQL. На копии неспеша удаляются документы. Потом в копию средствами SQL загружаются изменения из рабочей базы. Рабочая база подменяется копией. |
||||||||||||||||
41
ProxyInspector
26.04.15
✎
09:17
|
Можно удалить штатными средствами
1 Без перехода в монопольный режим по 1 штуке как это сделано в УТ11. Займет времени 500 тыс секунд = это около 1 года 2. В монопольном режиме удалять порциями по 20 тыс документов. Займет это часов 10 - 15 3. Написать обработку по поиску объектов без ссылок. За час она найдет все объекты без ссылок. Потом в монопольном режиме можно удалить эти объекты стандартным способом за пару часов. Хочешь я тебе напишу внешнюю обработку по удалению большого числа объектов с контролем ссылочной целостности с минимально возможным временем нахождения базы в монопольном режиме. PS. Для 7-ки 500 тыс. документов удаляется за несколько часов :) |
||||||||||||||||
42
Рэйв
26.04.15
✎
09:19
|
мы скульно удаляли 5 000 000 расходных перед обрезкой около
5 часов |
||||||||||||||||
43
Рэйв
26.04.15
✎
09:20
|
там даже 5 мильенов с половиной было помоему
|
||||||||||||||||
44
ProxyInspector
26.04.15
✎
09:23
|
Если (0) надо пометить на удаление эти 500 тыс. документов, то это сложнее. Типовым способом на это уйдет от 10 до 100 суток. Если через SQL час. Но с учетом того, что на 8-ке нет 1С++ , то это почти не реально.
|
||||||||||||||||
45
ProxyInspector
26.04.15
✎
09:25
|
Короче, если (0) задает такие вопросы, то автор не удалит 500 тыс документов :)
более 4 суток |
||||||||||||||||
46
EugeniaK
26.04.15
✎
09:34
|
(0) Можно не удалять, а просто в фоновом режиме постепенно заменять несколько на один и помечать на удаление. Монопольный режим тут не нужен, постепенно удалятся.
|
||||||||||||||||
47
ILM
гуру
26.04.15
✎
10:33
|
Может съесть слона по кусочкам.
1. Ввести нужный остаток где надо (можно за два часа). 2. Удалить что не нужно (несколько суток). 3. Получить что причитается (до нескольких часов). |
||||||||||||||||
48
vde69
26.04.15
✎
11:26
|
я немного поработаю телепатом...
у автора розница, весь квартал оформляли на разных физиков... сейчас время сдачи НДС, а проверка ругается на не заполненное ИНН, кто-то умный сказал - оформляйте все на Иванова, у него ИНН есть и все пройдет.... а документов дофига и времени в обрез... способ реально только один 1. отключаем итоги 2. запускаем 10 сесий, каждая обрабатывает документы которые заканчиваются на цифру номер сесии (от 0 до 9) 3. устанавливаем пометки проведения 4. после в одной сесии генерим новые документы и их проводим 5. сдаем НДС 6. в фоне удаляем помеченные на удаление объекты в течении месяца... |
||||||||||||||||
49
ILM
гуру
26.04.15
✎
11:30
|
(48) Тут и телепатом не надо быть, чтобы понять - ТС НДС не сдаст их текущей базы. Нужно выгрузить реализацию и уже в ХМЛ заменять значения физика, или в самой декларации при сдаче. Короче решений масса, но они вне текущей базы.
|
||||||||||||||||
50
vde69
26.04.15
✎
11:34
|
кстати есть такое решение
на копии всех физиков банально изменить на одну фамилию и один ИНН, а потом по кодам вернуть взад... вся прелесть - не надо документы ни удалять ни новые делать... |
||||||||||||||||
51
vde69
26.04.15
✎
11:35
|
(50) реально минут 300 займет...
|
||||||||||||||||
52
vde69
26.04.15
✎
11:35
|
30
|
||||||||||||||||
53
v8Newbie
26.04.15
✎
11:56
|
(0) Легко до 2 часов. TSQL в помощь.
|
||||||||||||||||
54
vde69
26.04.15
✎
16:06
|
(53) ты за 2 часа напишешь и отладишь скрипт который корректно удаляет документы, движения и при этом все с контролем ссылочной целостности?
|
||||||||||||||||
55
ДенисЧ
26.04.15
✎
16:08
|
(54) Задача не написать скрипт за 2 часа, а чтобы он отработал за эти 2 часа
|
||||||||||||||||
56
Garykom
гуру
26.04.15
✎
17:10
|
(50) а не проще поменять только в одном месте? в месте проверки
Если ПустаяСтрока(ИНН) Тогда ИНН=ИНН_Одного_Физика_С_ИНН; КонецЕсли; |
||||||||||||||||
57
v8Newbie
26.04.15
✎
17:18
|
(54) Набрать по видам документов ссылок во временную таблицу, проиндексировать и написать delete по всем регистрам(по виду регистратора) по регистратору с join по временной таблице? Да пожалуй что смогу...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |