Как правильно удалить записи регистра сведений через MS SQL? #802811


#0 by kumena
слишком много записей в регистре, нужно удалить частично, через 1с очень долго получается. Посмотрел через команду получается 2 таблицы - регистрация изменений и основная. Непонятно почему их две, и зачем нужна таблица регистрации изменений, соответственно, не понятно какие изменения можно удалить. и как правильно написать запрос на T-SQL ?
#1 by Cyberhawk
"Непонятно почему их две, и зачем нужна таблица регистрации изменений" // ИТС уже почитал?
#2 by Cyberhawk
Если удалять долго, то можно сохранить то, что удалять не надо, очистить весь РС и потом в него загрузить то, что сохранил до этого
#3 by kumena
> ИТС уже почитал? нет, можешь ссылку дашь куда там смотреть? > Если удалять долго, то можно сохранить то, что удалять не надо, очистить весь РС и потом в него загрузить то, что сохранил до этого удаление и запись - это все процесс записи, они долго проходят потому что регистр раздулся. все сразу из 1с не удалить, никакой озу не хватит. а если частично, то можно просто не удалять то что нужно оставить.
#4 by Волшебник
Пересоздать регистр в Конфигураторе, загрузить остатки.
#5 by kumena
> Пересоздать регистр в Конфигураторе, загрузить остатки. какие остатки для регистра сведений?
#6 by Волшебник
Оставшиеся записи
#7 by kumena
это тоже наверное не устроит, да и как потом обновляться с новым идентификатором регистра?
#8 by Волшебник
Идентификатор оставить старый
#9 by Йохохо
накатить из конфы поставщика
#11 by kumena
да, сейчас понял. может это и быстрее будет, выгрузить 10 миллионов записей в xml, а потом загрузить, но я думаю что слишком много шансов что она вообще не осилит.
#12 by Волшебник
"и зачем нужна таблица регистрации изменений" для планов обмена
#13 by mehfk
Выгрузить что нужно оставить в xml или еще куда. Сделать TRUNCATE TABLE. Загрузить. PROFIT!
#14 by Numerus Mikhail
Изменение данных напрямую через SQL является нарушением лицензионного соглашения!
#15 by kumena
> Выгрузить что нужно оставить в xml или еще куда. ты себе представляешь xml файл на 10 миллионов записей?
#16 by kumena
> Изменение данных напрямую через SQL является нарушением лицензионного соглашения!
#17 by X Leshiy
10 миллионов оставить надо, сколько тогда всех записей?!
#18 by kumena
+15 а главное какой клиент его прожевать сможет и за какое время?
#19 by kumena
30 с лишним
#20 by X Leshiy
Нихуясеберегистр, извините.
#21 by X Leshiy
Ну выгрузи 30 и снеси регистр.
#22 by mehfk
У меня хорошее воображение.
#23 by Волшебник
выгружай на SSD-диск
#24 by Волшебник
+ или RAM-диск
#25 by mehfk
Не нравится выгружать - удаляй. DELETE FROM ... WHERE
#26 by piter3
А это разовая операция?
#27 by kumena
ну скажем так, двух разовая, сначала надо в тестовой базе убедиться что все хорошо!
#28 by kumena
я так и подозревал что вторая таблица для планов обмена. осталось только скрипт написать, сейчас пока более срочные есть задачи, а потом им займусь, но если кто напишет, то будет еще лучше.
#29 by Йохохо
потом на тестовую накатываешь бэкап и тихой сапой переносишь в очищенную рабочую
#30 by X Leshiy
А ты точно сварщик, или маску на стройке нашел?
#31 by DmitrO
Ничо не надо пересоздавать и перекладывать. Надо просто удалить лишнее. Надо просто сделать обмены данными чтобы таблица регистрации изменений была пустая (если обмены данными используются и там вообще что-то есть). Далее удалять так. Перевести базу в Простую модель восстановления. Удалять записи обычным delete с нужными условиями, но делать это порциями, чтобы не сильно прирастал ЖТ. Потом вернуть полную модель восстановления и сбекапить базу. Все. Память клиента тут не причем. А сервер точно справится при любом размере памяти.
#32 by kumena
> Надо просто удалить лишнее. да, я тоже за этот вариант, вижу его самым беспроблемным. Спасибо, план действий понятен!
#33 by DmitrO
ГрафикиРаботыПоВидамВремени вероятно в ЗУП 2.5 Посмотрел его. Решение задачи с помощью прямого доступа к SQL может вообще не дать изюму ну или дать но небольшой, ибо и на 1С можно написать достаточно эффективно.
#34 by Ахмадинежад
как-то обрезал большую базу средствами МС СКЛ... как-то не срасталось всё, плюнул, взял обработку с ИТС - и просто подождал )
#35 by DmitrO
а кто придумал эту чепуху? и почему все об этом рассказывают на этом форуме?
#36 by Ёпрст
обычно пишут те, кто qa в глаза не видел
#37 by Lama12
Ну раньше этот запрет точно был. Может сейчас и поменяли.
#38 by GANR
Проще TRUNCATE TABLE. Чем удалить, потом сравнением/объединением переносить.
#39 by Timon1405
п. 65
#40 by rudnitskij
А почему нельзя программно средствами 1с удалить ненужные записи? По одной в цикле, а не весь регистр сразу
#41 by kumena
> А почему нельзя программно средствами 1с удалить ненужные записи? По одной в цикле, а не весь регистр сразу в первом посте написал - долго получается, в лучшем случае через месяц. > Решение задачи с помощью прямого доступа к SQL может вообще не дать изюму ну или дать но небольшой, ибо и на 1С можно написать достаточно эффективно. почему? обычно везде пишут о сказочной скорости удаления. но я конечно попробую другими порциями еще.
#42 by Timon1405
есть платформенные накладные расходы на удаление записей: например, поиск ссылок на объект, если он стоит как ведущее измерение в регистре. в том числе поэтому 1С и не рекомендует прямого доступа к СУБД.
#43 by H A D G E H O G s
Ты путаешь.
#44 by Фрэнки
транзакциями не пользуешься?
#45 by H A D G E H O G s
Автор, ты не поверишь, но и в sql тоже будет долго :-)
#46 by H A D G E H O G s
Если накладывать хоть какие-нибудь условия на отбор при удалении.
#47 by kumena
это вроде в 7.7 рулило, а на восьмерке прироста не дает.
#48 by H A D G E H O G s
А так - можно поотключать индексивароние-ведущесть у измерений и ресурсов - и вперед, типовыми средствами.
#49 by kumena
понятно, т.е. все меняет то, что устанавливается отбор.
#50 by H A D G E H O G s
Ну и job в sql на дефраг индеска и апдейт статистики по этим двум таблицам раз в 5 минут.
#51 by kumena
в целом все понятно! всем спасибо!
#52 by rudnitskij
тогда закрывайте тему. А то мы вам напишем тут))
#53 by Злопчинский
дикари , что с них взять ... ;+)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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