Резкое увеличение времени расчета себестоимости

1. Anesk 17 11.02.20 08:33 Сейчас в теме
Имеем базу УПП 1.3.132.2 на платформе 8.3.14.1630 (MS SQL)
Учет ведется партионный.
Расчет себестоимости за месяц занимает от 2 до 6 часов.
Месяц назад считал расчет себестоимости за октябрь, ноябрь, декабрь. По времени примерно 6 часов.
Пытаюсь сделать это сейчас, и расчет себестоимости делается 2 дня. Причем существенных изменений данных не было. Изменение настроек сервера тоже. Без пользовательской нагрузки на сервер.

Раньше когда я сталкивался с такой проблемой, я делал Тестирование и исправление информационной базы, и после этого скорость увеличивалась, но тогда речь шла об ускорении с 12 часов до 4-6 часов. Но потом это перестало помогать, как вдруг я обнаружил что выгрузка базы в dt и обратная его загрузка, приводит к рекордному увеличению скорости расчета до 2 часов.

Теперь проделав эти процедуры, я не получил никакого эффекта. Кэш очищал, очистил журнал регистрации никакого эффекта. Пробовал даже на другом сервере считать, видимо дело в базе. Думаю возможно это индексы, но со стороны MS SQL не знаю как там вообще что делается, но сисадмин говорит что вам все отлично, что индексы пересчитываются каждую ночь (прикладываю скрин плана обслуживания)
В чем может еще причина резкого увеличения скорости расчета себестоимости?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
12. avusachev 2 11.02.20 15:40 Сейчас в теме +0.2 $m
Постоянно есть подобная проблема у моего клиента. (УПП, база 180 Гб. MS SQL)
Какие-то индексы портятся и скорость перепроведения падает в разы (раз в 5-10). И чтобы месяц перепровести - за выходные нереально.
И реиндексация средствами СУБД - не помогает!
Вот как решили:
Делаем новую базу и разворачиваем туда бэкап. И получаем профиты:
1. Свежие, стройные индексы (ну и конечно снова хорошая скорость перепроведения);
2. Проверка резервной копии;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. danjer74 4 11.02.20 10:00 Сейчас в теме
(1)Насколько база большая? Я бы делал полное восстановление индексов, это заблокирует работу в базе, поэтому делать это надо ночью, когда никто не работает. Сделал бы обновление статистики - надо посмотреть сколько времени это занимает. Реорганизация индекса исправляет индексы, а полная реиндексация их заново создает. Еще имеет смысл очищать процедурный кэш запросом - создать такой план обслуживания. Вот все эти манипуляции надо сделать с отключенным планом, который на скриншоте и после этого смотреть что и как. Индексы каждую ночь пересчитывать не нужно - достаточно раз в неделю их полностью перестраивать. А вот обновление статистики надо делать почаще - опять же посмотреть перед этим, сколько времени занимает. Причина может быть в неоптимально плане запроса для SQL. Ну и как сами запросы написаны тоже большое значение имеет.
18. Amadeus007 8 11.02.20 20:15 Сейчас в теме
(1) было бы хорошо локализовать проблему: самое простое замерить конфигуратором что именно долго там выполняется. а далее если найдётся виновник. надо разбираться с ним. ещё можно попробовать DBCC FREEPROCCACHE сначала..у меня в базе есть запрос который раз в месяц по неизвестной причине начинает выполнятся дольше чем обычное. очистка процедурного кэша помогает..
2. Ranel 11.02.20 09:00 Сейчас в теме
Резервную копию базы сделайте, сохраните, а после этого сделайте свёртку базы, если Вас этот вариант устроит.
И работайте наслаждаясь
3. Anesk 17 11.02.20 09:16 Сейчас в теме
(2) сверка базы не устраивает руководство. Нужны движения по периодам для анализа. Но как вариант я начал рассматривать свертку по паре регистров, таких как "Затраты на выпуск Бухгалтерский учет", потому этот регистр чаще всего пишется при расчете себестоимости и это по размеру самая большая таблица базы
5. Burchic1 11.02.20 12:41 Сейчас в теме
Сталкивался с подобной ситуацией. Причиной тогда оказался неправильный план запроса. По поводу сворачивания регистра "Затраты на выпуск Бухгалтерский учет" - пришел к сворачиванию движений после расчета себестоимости.
6. Anesk 17 11.02.20 13:54 Сейчас в теме
(5) Как сделали план запроса "правильным"?
и сворачивание движений - у меня оно всегда стоит в списке действий расчета себестоимости если вы про это
9. Burchic1 11.02.20 14:45 Сейчас в теме
(6) Оно хоть и стоя но итерационный расчет вносил по несколько записей по одним и тем же измерениям. Сворачивание не происходило. Сделав вручную, уменьшив объем регистра раз в 5 без потери каких либо данных. Насчет плана запросов я уже и не вспомню как сделал правильно (это было года два назад) но ситуация была аналогичная: расчет себестоимости из 6 часов резко вырос до 2-х дней. Долго покопав, обнаружил что выборка из таблицы идет не по индексам (я их даже перестроил). Толи как-то очистил план запросов чтобы оно создало новый правильный, толи вручную сделал запрос и оно его пересоздало.
7. Жернов Виктор 7 11.02.20 14:17 Сейчас в теме
Откажитесь от части проверок которые на данном этапе можете опустить. Сделайте дополнительный регистр для промежуточных расчетов.
8. Anesk 17 11.02.20 14:26 Сейчас в теме
(7) Ерунду какую-то написали. Вы предлагаете мне переписать весь типовой код расчета себестоимости? Вы представляете вообще какие это объемы?

Вопрос даже в другом: что произошло с базой/сервером, что один и тот же расчет себестоимости на одних и тех же данных считается намного дольше?
10. Liogon 8 11.02.20 15:28 Сейчас в теме
(8) Возможно я тут не в тему буду. Но из моего опыта расчёт себестоимости идёт сильно дольше если где-то проскакивал неучтённый встречный выпуск.

P.S. Если не секрет, это ж сколько переделов он пересчитывает столько времени?
14. Anesk 17 11.02.20 15:49 Сейчас в теме
(10) хороший совет, но нет встречного выпуска
11. Жернов Виктор 7 11.02.20 15:28 Сейчас в теме
Если бы не представлял не писал. Обычно дополнительные проверки делаются в проц перед записью документов. Можно сделать отказ от проверок при вычислении себестоимости в одной подписке сразу для всех документов. Если в разных базах одни и те же данные но расчет ведется с разной скоростью сверьте в базах администрирование\ общие настройки\настройки хранения может быть в процессе восстановления последовательности перезаписывается много копий. Сверьте запущенные регламентные задания в обеих базах. Можно посмотреть длительность процедур при запущенном расчете себестоимости.

Сверьте конфигурации обеих баз. Сверьте в базах учетную политику
13. Anesk 17 11.02.20 15:41 Сейчас в теме
(11) а кто вам сказал что в разных базах с разной скоростью? я наоборот написал что с одной скоростью
Проверки перед записью?? серьезно? В расчете себестоимости упп? Зайдите посмотрите, что там прежде чем писать что представляете что это такое.
16. Жернов Виктор 7 11.02.20 16:07 Сейчас в теме
(13) Цитата Вашего сообщения от 11.02.20 14:26 "Вопрос даже в другом: что произошло с базой/сервером, что один и тот же расчет себестоимости на одних и тех же данных считается намного дольше?"

Один и тот же расчет себестоимости считается у Вас намного дольше, но Ваша цитата от 11.02.20 15:41"я наоборот написал что с одной скоростью"?
12. avusachev 2 11.02.20 15:40 Сейчас в теме +0.2 $m
Постоянно есть подобная проблема у моего клиента. (УПП, база 180 Гб. MS SQL)
Какие-то индексы портятся и скорость перепроведения падает в разы (раз в 5-10). И чтобы месяц перепровести - за выходные нереально.
И реиндексация средствами СУБД - не помогает!
Вот как решили:
Делаем новую базу и разворачиваем туда бэкап. И получаем профиты:
1. Свежие, стройные индексы (ну и конечно снова хорошая скорость перепроведения);
2. Проверка резервной копии;
15. Anesk 17 11.02.20 15:55 Сейчас в теме
(12) вы не поверите но сегодня утром я сделал новую базу, и грузанул туда базу из dt. вот на всякий случай решил ТИИ провести, и потом проверить Расчет себестоимости. Если вы правы, то в принципе сейчас должна быть хорошая скорость, я скоро об этом узнаю.

Но если это правда, это сразу же порождает кучу вопросов, почему реиндексации СУБД не работает, реиндексация во время ТИИ не работает, в чем вообще причина.
Пересоздавать базу конечно если это работает это хорошо, но все таки это костыль
21. RustamZz 12.02.20 10:49 Сейчас в теме
(15) При загрузке из dt не только индексы создаются, но и таблицы итогов в РН пересоздаются.
Попробуйте без перевыгрузки в ТиИ выполнить пересчет итогов.
23. Anesk 17 12.02.20 14:05 Сейчас в теме
(21) Уважаемый, прочитайте первый пост, ТИИ делался одним из первых (и да в включенной галочкой пересчет итогов, со всеми галочками)
19. Anesk 17 12.02.20 07:53 Сейчас в теме
(12) Да это решение работает, хоть и не самое лучшее. Здесь есть круто Администратор DBA который может подсказать что не так? Может неправильный план обслуживания у нас
22. avusachev 2 12.02.20 12:10 Сейчас в теме
(19) Отлично, это подтвердило, что у нас база никакая не особенная. Возможно, в базе 1С есть кроме индексов ещё какая-то сущность типа индексов, которая не управляется СУБД...
24. a.doroshkevich 1416 13.02.20 19:08 Сейчас в теме
(19)Да, у Вас неверный план обслуживания.
В нём нет реиндексации, в нём есть реорганизация индексов - это совершенно другое.
Сделайте отдельный план, который запускайте раз в месяц (перед расчётом с/с) и в нём пропишите именно реиндексацию (ребилд) индексов.
17. acanta 11.02.20 16:10 Сейчас в теме
А одновременно в двух одинаковых базах почему может выполняться в 4 раза быстрее чем в одной монопольно? Может компы вышли слишком быстрые для 1с, засыпают между командами?
20. Anesk 17 12.02.20 07:58 Сейчас в теме
(17) одна и та же база везде. Везде монопольно. Скорость быстрее была раньше после ТИИ или перевыгрузки в dt. Но сейчас это помогает
Оставьте свое сообщение

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