v8: Свёртка базы: почему так долго чистит регистр "Хозрасчетный"? #674037


#0 by dave2000
Есть база УПП на MS SQL Server 2005, поток документов в день небольшой: около 30-40 документов максимум! В начале этого года делал свёртку базы за 2008-й год. Создание документов остатков проходило быстро, движения по всем регистрам удалялись быстро, за исключением регистра бухгалтерии "Хозрасчетный", его чистка по времени занимала около 8-12 часов. Сейчас запустил свёртку 1 квартала 2009, думал пройдёт всё намного быстрее, но нет! Чистка регистра бухгалтерии занимает около 7-10 часов. Чего ж оно так долго-то? Мне кажется вручную удалять документы было бы намного быстрее, но это ведь не выход. Когда открываешь диспечер задач, процесс sqlservr.exe что-то делает, загрузка около 80%. Может оно там таблицы пережимает, с места на место данные переставляет, и из-за этого так долго? В самой обработке "Свертка Информационной Базы 2.0" код чистки регистра выглядит так: Может можно как-то более оптимизировать данный код?
#1 by Maxus43
Итоги отключи
#2 by Maxus43
или в транзакции делай, по тыще другой доков
#3 by Vovan1975
думается мне - дело в итогах, этож регистр бухгалтерии...
#4 by acsent
все 7 методы никак не можешь забыть?
#5 by Maxus43
нормальный метод, лучше конечно итоги отключить
#6 by fisher
Дело однозначно в пересчете итогов, но сомневаюсь что их можно отключить безболезненно для работы обработки свертки. Она ж остатки тоже где-то снимает. Нужно четко выверенное вмешательство.
#7 by fisher
Хотя... Стопудов она их снимает ДО. Но на всяк пожарный я бы прошелся по алгоритму. Может, и еще какое шаманство есть.
#8 by dave2000
Посмотрел по коду, перед вызовом процедуры сбУдалитьДвиженияПоРегиструСРегистратором есть такая строка: Т.е. итоги отключаются, причина в чём-то другом.
#9 by Живой Ископаемый
просто не надо его чистить, нужно завести документы остатков и перенести их в пустую базу.
#10 by dave2000
там документы за 2009-2013 год, это действующая рабочая база, с неё нужно убрать старые периоды
#11 by Maxus43
существующий алгоритм уже не ускорить...
#12 by Живой Ископаемый
2 и как это отменяет то, что я сказал?
#13 by Живой Ископаемый
то есть либо ты из дейстующей базы "убрать старые периоды", что влечет за собой чистку РБ Хозрасчтеный. Либо ты разворачиваешь пустую базу, и переносишь документы ввода остатков, созданные сверткой в нее. Есть версия, что вариант займет меньше времени.
#14 by dave2000
ты имеешь в виду, перенести не только все документы остатков, а и все рабочие документы 2009-2013?
#15 by acsent
#16 by Живой Ископаемый
2 что такое рабочий документ 2009-2013? Это документ который имеет проводки и движения? Чувак, ты же чистишь их  движения, то есть они перестанут быть рабочими
#17 by dave2000
Ты не понял... чистятся только периоды до 2 квартала 2009, остальные документы остаются на месте, так была поставлена задача.
#18 by Живой Ископаемый
2 да, наверное не понял.. а зачем так делать?
#19 by acsent
там может с 2003 года база
#20 by Живой Ископаемый
2 и тем не менее.. я бы попробовал перенести все документы с момента свертки в новую базу. вдруг это будет быстрее..
#21 by Bober
- Перед циклом создать набор записей и им одним пользоваться  - убрать условия в цикле (все равно все идет в рамках обного регистра  - Сделать переменную ЭлементОтбора = НаборЗаписей.Отбор.регистратор и в цикле с ним работать  - отключить как уже говори выше итоги, но не забудь отключить и текущие итоги. Если в базе работают люди, то отключать итоги нельзя, только сделать период расчета итогов 00010101 и отключи текущие итоги. Запросы будут тормозить, но люди смогут работать.  - далее можно через фоновое задание раскидать, одно задание - один регистр.
#22 by Bober
удаление движений по бух всегда идет туго, но в этом варианте случае думаю не хватает еще строки УстановитьИспользованиеТекущихИтогов(Истина), так как при удалении все равно считаются итоги на 3999 год
#23 by Bober
УстановитьПериодРассчитанныхИтогов('00010101') И УстановитьИспользованиеТекущихИтогов(Ложь)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С