v7: Медленное удаление помеч.на удаление документов после обрезки базы #676459


#0 by olmi
Бухгалтерская база SQL-я существует несколько лет, много раз правлена. Обновила ее в свое время до 551 релиза и сегодня обрезала. При этом помечены на удаление почти 1,7 млн документов и некоторое количество записей в справочниках. Сюда входят и ручные пометки на удаление. Стандартно удалять не могу, все виснет. Написала обработочку с транзакциями по 150 документов, с проверкой ссылок. Работает все равно очень медленно. Буду благодарна за рекомендацию чисто SQL-х или 1С-овских более быстрых методов удаления документов и элементов справочников с проверкой ссылок.
#1 by Прыгун
прямыми запросами можно удалить. С помощью 1С++, например. Как, не подскажу, т.к. сам в свое время привлекал для этого специалиста. )
#2 by olmi
Ссылок на подобные обработки нашла много, но все немножко не то или не 100% надежно, по словам авторов.  SQL знаю недостаточно хорошо, чтобы делать самостоятельно. Важно не просто удалить все, но и не нарушить ссылочную целостность.
#3 by Midaw
а пошринковать, то что удалено пробовали?
#4 by olmi
Что значит - пошринковать? Я обрезала базу стандартной обработкой WRAP.ert, убрав только пометку на удаление. Потом убрала на начало времен ТА и БИ, пометила на удаление все до операций ввода начальных остатков в корреспонденции со счетом 00 и теперь хочу удалить все, помеченное на удаление вручную до начала обрезки и автоматические помеченное - это почти 1,7 миллиона документов за несколько лет и сколько-то элементов справочников. Все это, естественно , надо делать с учетом ссылок.
#5 by olmi
Ответы смогу посмотреть только завтра утром. Заранее благодарна за них! Всем хороших выходных!)
#6 by Холст
а перенести оставшиеся актуальные доки и справочники в чистую конфу не вариант ?
#7 by КонецЦикла
Удалить не вопрос, вот контроль... Можно для самых массовых документов написать свой контроль ссылок. Ну, например, ты знаешь, что документа "Реализация" точно не будет в субконто неопределенного вида в выписке и т.п. Можно наоборот, пройтись по остаткам и перетянуть все что с ними связано. Есть остаток по документу - тянем. Вот, кстати, обрезка, которая сразу это смотрит (но там только регистры)
#8 by Midaw
пометка и удаление помеченных это только относительно видимых данных. удаленные помеченные попрежнему остаются в бд. правда не помню как в скуле, но в dbf точно. в скуле есть понятие шринкование, но возможно нужно даже не оно. лень лезть вспоминать.
#9 by КонецЦикла
В ДБФ мусор остается, можно Сжать В СКЛ нет
#10 by olmi
, Сжатие после удаления, чтобы физически удалить из базы невидимые уже объекты - это понятно, просто в Конфигураторе. Да и в SQL вроде не нужно же? Речь только о НайтиСсылки(Док, Ссылки); и Если Ссылки.КоличествоСтрок=0 Тогда Удалить;КонецЕсли; Это работает медленно, можно ли заменить на прямые SQL-е запросы, обязательно с проверкой ссылок? Ну и со справочниками аналогично. Если не смогу быстро почистить хвосты, придется переносить, возможно. Но с будущего года базу будем переводить на 8.2, еще тратить время на перенос не хотелось бы - база уже свернута, другой работы полно.
#11 by МимохожийОднако
Запуская по ночам обработку удаления объектов в фоновом режиме. Постепенно удалит.
#12 by ЧеловекДуши
Зачем? СФ ты никогда не удалишь, на них есть ссылки.. Реализации так же, тоже ссылки :) В итоге получишь мертвую БД...
#13 by ЧеловекДуши
Почему то мне кажется, что контроль ссылок его мало интересует :)
#14 by olmi
, Ребята, я не против, чтобы меня считали блондинкой, мне бы задачку решить). В том-то и дело, что счета-фактуры, как и реализации, в удаляемом периоде имеют ссылки на удаляемые же документы. Вот и хотелось бы удалить все, что не цепляет рабочих периодов. Конкретнее: база существует с декабря 2004 года. Свертка сделана по 2011 год включительно, чтобы оставить очередной период трехлетний для аудита, текущий проверяют в старой базе, если что-поправить начальные остатки в боевой не проблема. Вся история возникла из-за того, что база последнее время работает медленно и начались странные ошибки, например, в журнале по серии одинаковых документов суммы видны нарастающим итогом и т.д. О переводе на 8.2 только что принято решение, но улита едет - когда-то будет, а работать надо здесь и сейчас. Поэтому полумера-обрезка базы. Так можно ли ее обрезать корректно?) Если да, то как удалить помеченное на удаление?) У меня часов 15-20 крутится на пробу 1 месяц так, как я писала в ... И конца-краю не видать)...
#15 by olmi
Естественно, обрезка проблем не решит, но базу хоть можно будет быстрей выгружать-загружать (что чистит многие баги), переводить в dbf при необходимости и т.п.
#16 by olmi
Сейчас в ней больше 20 гигов и растет она стремительно - основная база, в нее сливается из нескольких крупных внешних источников все, если ляжет - беда.
#17 by olmi
, Да, и, конечно, контроль ссылок интересует и очень). Я попробовала самый простой вариант пока, и то медленно безумно, а если таблицы ссылок анализировать-еще веселей будет. Поэтому и спрашиваю об альтернативных методах.
#18 by hhhh
заведите пустую базу и в нее загрузите из внешних источников
#19 by olmi
Это проблемы не решает. База заполняется как изнутри, так и заливом извне. Еще раз - если способа безболезненно и быстро удалить помеченные на удаление документы и элементы справочников, не имеющие ссылок на непомеченные на удал. документы и эл-ты спр-ков не найдется, я, конечно, буду выгружать справочники и доки в чистую базу, но хотелось бы закончить начатое, а не ваять все с нуля.
#20 by КонецЦикла
Ладно, если все так серьезно, то какой бюджет? :)
#21 by КонецЦикла
А вообще если в след. году переходите на 8.2 (удачного перехода), то я бы вообще не заморачивался обрезками. 20 Гиг - это не тот объем.
#22 by Злопчинский
ну все, конец цикла обогатится и уедет на мальдивы.. ;-)
#23 by КонецЦикла
Ну если токо на след. год :)
#24 by ЧеловекДуши
Они имеют ссылки не на документы, их имеют Регистры +Счета бух учета :)
#25 by ЧеловекДуши
Удаление документов не лишит её объемности, т.е. скорости небудет так же как и прирост дискового пространства :)
#26 by jarett
мне одному показалось, что в ветке бреда про ТА как дерьма за баней? Речь идет о бухгалтерской базе судя по . Или что?
#27 by ЧеловекДуши
Может про БУ, но есть шанс, что это вообще комплексная БД :) Автор не раскрывает всех козырей, но судя по информации в скоре они переходят на 8.2, но и тут непонятно на какую конфу :)
#28 by olmi
Так). Смотрю, инфа продолжает поступать). Меня перекинули было на другие срочные задачки, сорри, некогда было глянуть). Пока даже не обсуждается). База бухгалтерская, платформа комплексная, с моей точки зрения тоже ТА не относится к делу, но где-то рекомендовалось и ее сперва закидывать на начало времен, потому и упомянула. Насчет дерьма за баней не в курсе, поисками не занималась, возможно, есть более опытные товарищи). ,,. Естественно, ссылки в проводках есть, но и документы-основания, скажем, тоже. Объем базы уже сильно уменьшился за счет табл.проводок, но надо и документы чистить, желательно, побыстрей, хотя теперь так не гонят. На 8.2 переход планируется в будущем году, естественно, тоже будут все компоненты, потому что баз разных в конторе как, хм)... Не рискую писать, в ветке есть специалист по баням)...
#29 by olmi
Да, идею просмотра ссылок по остаткам уже подсказал один умный человек, возможно, так и придется делать, если не найду более быстрого способа. Спасибо, идея хорошая!)
#30 by olmi
Объем частично ушел, я писала-проводки ушли, еще уйдет после удаления документов, сжатие вроде ж не нужно, база SQL-я.
#31 by Ёпрст
если штатно - то отключи ЖР..совсем и помечай себе доки на удаление.
#32 by Ёпрст
А так, sql запросом всего лишь проапдейтить _1sjourn да прибить проводки и операции, делов то
#33 by olmi
, Вернулась к теме. ЖР отключить не проблема, на удаление тоже помечено все, а проапдейтить _1sjourn - как? Есть ли способ, при котором не оборвутся ссылки? И как прибить проводки и операции? Я в SQL-е не сильна, увы. Простой Select напишу, конечно, а вот хитростей не знаю...
#34 by olmi
И еще: ЖР с 2012 года нужен, можно ли его переписать или обрезать, как обычный текстовой файл? Есть ли в этом случае ограничения по размеру записываемого через V7plus текстового файла? Или лучше использовать другие средства? Если да, то какие?
#35 by Джордж1
дак пусть ЖР в копии останется.
#36 by Ёпрст
Да ё.. ЖР прибивать не надо! Нужно в пофигураторе СЫНять галочки все с него, чтоб при штатной пометке на удаления туда ничего не писалось..вообще. Потом можешь обратно галки взад вернуть.
#37 by Ёпрст
но  sql запросом всё можно сделать быстрее
#38 by olmi
База обрезана по 2011 год, ЖР с 2012 года нужен, просто в копии оставлять мало. Им бывает надо видеть, кто что делал не только с момента обрезки, но и раньше.
#39 by olmi
В ЖР при обрезке, галочки, конечно, убирала. Речь не о том, просто попутно ответила. С обрезкой его тоже все просто оказалось - обычный текстовой файл, в копии уже обрезала. А вот вопросы из остались...
#40 by EugeniaK
А зачем так сильно волноваться о ссылочной целостности? Период закрыт, прошлые данные всегда можно в копии посмотреть. Удалите програмно все документы до 2011 года без проверок.
#41 by olmi
Не рискую). При нарушении ссылочной целостности база может вообще перестать читаться, такие случаи известны.
#42 by olmi
Ведь ссылки могут быть в более поздних документах и элементах справочников, и точно будут  - есть справочники, в которых одним из реквизитов является документ, есть документы, ссылающиеся на другие - хотя бы как на основания, да много чего есть).
#43 by sttt
в SQL тоже запись помечается как удаленная и через некий промежуток времени очищается
#44 by Ёпрст
да блин, примитивный запрос который в 1sjourn пометит доки на удаление и в табличках операций и проводок уберёт все записи с этих документов.. и всё.
#45 by Ёпрст
+ с таблички итогов можно тоже вычистить, хотя проще, прибить и пересчитать таблички итогов.
#46 by olmi
А физически и с точки зрения 1Са они останутся в базе помеченными на удаление? А надо их физически удалить, чтобы уменьшить размер базы. И как насчет ссылок на эти документы в справочниках и других документах?
#47 by olmi
И что значит "прибить таблички итогов"?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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