Мина замедленного действия при нетиповой обрезке базы

1. irreal 32 11.08.15 12:40 Сейчас в теме
Добрый день!

Стояла задача урезать относительно небольших размеров (30 ГБ) базу, клиент-сервер + MS SQL. Типовая обработка в тестах делала это за неделю, да и не все гладко было. Написал обработку-генератор скрипта SQL, усекающую регистры и удаляющую ненужные документы. Урезал, пересчитал итоги, все в норме, полет нормальный. До тех пор, пока не возникла необходимость подправить одно предопределенное субконто (добавить признак Количественный). При реструктуризации таблица Хозрасчетный.Субконто полностью очищается. От релиза не зависит, проверял в т.ч. на последнем совместимом из 8.3.5.

Предположил также, что могут мешаться неприбитые по дате записи из таблицы субконто (зачищалась только основная таблица). Дочистил все записи, более не имеющие прародителей в основной таблице, типа:

delete fr om _AccRgED22127
where _RecorderRRef in (
sel ect distinct t._RecorderRRef
fr om _AccRgED22127 t
left outer join _AccRg22129 tt
on tt._RecorderRRef = t._RecorderRRef
wh ere tt._RecorderRRef is NULL)

- не помогает.
Никто не имел такого удовольствия?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. МихаилМ 11.08.15 13:14 Сейчас в теме
смотрите , к каким таблицам обращается 1с8 пред очисткой .
и попытайтесь проанализировать, почему 1с8 решает очистить. как вариант сделайте копию таблицы. после реструктуризации и очистки пре заполните с учетом количественного субконто.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Frogger1971 11.08.15 14:14 Сейчас в теме
(1) irreal, вообще-то после "обрезания" средствами Сиквелла делают ТиИ... думаю, что после него у вас сразу будет ответ на все вопросы
5. Martinian 10 11.08.15 14:40 Сейчас в теме
(1) irreal,
Типовая обработка в тестах делала это за неделю, да и не все гладко было.

Лучше всё-таки пользоваться типовой обработкой. Гладко в таких случаях не бывает НИКОГДА. В любом случае придётся проверять и что-то исправлять потом руками.
6. tristarr1 61 11.08.15 16:00 Сейчас в теме
(1) irreal, База в DT не выгружается? Может попробовать выгрузить а потом загрузить в чистую серверную и там уже внести все необходимые изменения?
7. DoctorRoza 11.08.15 16:31 Сейчас в теме
(1) irreal, скажите, какие Вы сделали умозаключения или что подвигло Вас на подобный шаг, а именно: урезать базу? Для меня остается полной загадкой этот шаг в принципе для 8-ой версии 1С.
11. CaptainMorgan 15.08.15 21:05 Сейчас в теме
(1) Задача "урезать" может быть решена переносом данных в новую базу.
Что-то мне подсказывает, что удалить надо большую часть данных.
Следовательно, Перенос актуальных данных может занять гораздо меньшее время.
При грамотно настроенном обмене можно сделать так, что будут некоторое время существовать обе базы.
А после окончательного переноса данных и ввода остатков на начало периода - первую базу можно будет просто отключить.
2. МихаилМ 11.08.15 13:14 Сейчас в теме
смотрите , к каким таблицам обращается 1с8 пред очисткой .
и попытайтесь проанализировать, почему 1с8 решает очистить. как вариант сделайте копию таблицы. после реструктуризации и очистки пре заполните с учетом количественного субконто.
8. irreal 32 11.08.15 16:49 Сейчас в теме
Решение было то, же что и в начале: просто в скрипте очистки бесхозных записей субконто перепутал таблицу налогового к проводкам хозрасчетного - они вязались, но понятно, что движения одних регистраторов есть и по БУ и по НУ. После исправления скрипта все прокатило. Вознаграждение - в ответ (2), потому что после него запустил профайлер, и увидел, что за скрипты гонит ТИИ, и увидел несоответствие).
Остальное - лицензия, ТИИ, типовщина, выгрузки - хорошо, но слишком долго.
(7) Придумайте сами ну, например, пару причин, зачем. Наверняка найдете)
9. SaschaL 12.08.15 08:00 Сейчас в теме
(8) irreal, я понимаю вы написали скрипт котрый систит некоторые балицы и документы, потом у это удаляете? Причем средствами SQL.
Геройский поступок. А не проще было воспользоваться стандартной обработкой по сверке базы, создать правило по которому сворачивается тот или иной документи вперед. Просто при усечении средствами SQL можно не учесть связанных движений и можно нарушить целостность данных в системе.
3. Lama12-1 8 11.08.15 13:34 Сейчас в теме
Ну в общем то результат предсказуем. Нарушение лицензии к тому же. Не стоит этого делать.
10. irreal 32 12.08.15 12:08 Сейчас в теме
Как я писал, та самая стандартная обработка возится слишком долго, сколько мне дать не могут. Это еще одна из самых маленьких баз, есть еще базенка под 300 гигов. "Целостность базы" - очень лелеемое людьми из 1С понятие. Если целостность ограничивается "объект не найден", то это не проблема, к тому же в скрипте зачистки генерировалась таблица по поиску ссылок тех документов, что фигурируют в остатках, введенных той самой обработкой. Воздействие на данные - не фатальное действие, вот когда конфигуратор вылетит в середине обновления и скажет, что в предыдущем обновлении произошла ошибка, а потом "Нарушена целостность ИБ" и закроется - это да... ищи небитую _Config.)))
А так - ничего страшного - просто поленился зачистить таблицу субконто, а реструктуризация, как заправский хирург, оттяпала руку из-за пальца)
12. tormozit 7270 16.08.15 18:04 Сейчас в теме
Многопоточная свертка спасет автора.
13. CaptainMorgan 17.08.15 09:52 Сейчас в теме
(12) Мысль не плохая. Только создание, корректно работающей много-поточной свертки потребует прилично времени.
В принципе вот статья как это можно сделать: http://catalog.lessons1c.ru/public/306865/

Но мне кажется, что лучше использовать уже проверенные механизмы.
Перенос данных, как вариант свертки, мне кажется самым простым и надежным при такой огромной базе.
Данные из базы 1 в базу 2 могут перетекать хоть месяц не мешая работе.
И всегда будет возможность вернуться к прежнему состоянию.
14. tormozit 7270 17.08.15 10:29 Сейчас в теме
(13) У меня тоже есть статья про многопоточность Приемы обработки больших данных в 1С. На пути к big data... У нас есть готовые универсальные многопоточные механизмы для решения задач как свертки, так и обмена данными без изменения конфигурации.
15. CaptainMorgan 17.08.15 11:24 Сейчас в теме
(14) Статья просто супер! Это реально большой труд.
Давайте ссылку (в "Инструменты разработчика" вроде нет). Где ваша много-поточная свертка. Если это действительно работающая программа, то это действительно хорошая вещь.
16. SaschaL 17.08.15 13:55 Сейчас в теме
(15) CaptainMorgan, Поддерживаю Вас. Хотелось бы почитать статью, тема на самом деле актуальна
17. tormozit 7270 18.08.15 19:50 Сейчас в теме
Многопоточная свертка тут Менеджер автоматизации и обмена данными для баз 1С, как и все остальное многопоточное...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот