Разное время формирования отчета за разные даты

1. user602678_maxipunchik 96 05.04.23 07:32 Сейчас в теме
Формирование оборотки за один день происходит моментально, за другой виснет почти на минуту. Например за сентябрь 21 еле еле, за октябрь 21 моментально.

Сделал пересчет итогов, так же, на сколько я знаю, все индексы и статистики актуализированы методами скл. Дополнительно вчера сделал пересчет итогов. Не помогло.

Так же сам не делал, но говорят, что делали несколько раз реструктуризацию до этого.

Подозрения на то, что это началось после обновления базы на новый релиз, который подразумевал подключение нового БСП и поднятия режима совместимости с 8.3.14 до 8.3.17. База при этом увеличилась примерно на 25-30 процентов и не уменьшилась даже после шринка.

Так же посмотрел профайлер. почему-то запрос 1с посылается на скл разный, прикрепил 2 текстовика с запросами

UPD. Прикрепил планы запросов
Прикрепленные файлы:
быстрый запрос.txt
медленный запрос.txt
план быстрый запрос.SQLPlan
план долгий запрос.SQLPlan
По теме из базы знаний
Найденные решения
19. user602678_maxipunchik 96 06.04.23 06:22 Сейчас в теме
В принципе направление было правильным, дело было действительно в итогах, только я не знал про оптимизационные фишки 1с.

Помогла вот эта статья на Инфостарте. Оказывается в 1с есть понятие минимальной даты расчета итогов, до которой эти самые итоги не рассчитываются.

Видимо после обновления эта самая минимальная дата итогов как-то установилась и начались эти проблемы с отчетами.

Для проверки минимальной даты по регистру бухгалтерии можно выполнить код на сервере
РегистрыБухгалтерии.Типовой.ПолучитьМинимальныйПериодРассчитанныхИтогов();


а для установки нужно прописать
РегистрыБухгалтерии.Типовой.УстановитьМинимальныйПериодРассчитанныхИтогов(Дата(2021,08,01));


где Типовой - это название вашего регистра.

Всем участникам спасибо за помощь, прокачал свои навыки в просмотре всяких профайлеров
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 05.04.23 08:31 Сейчас в теме
(1) Лучше планы выполнения запросов прикладывать. Казахские конфигурации тут у считанных единиц.
3. user602678_maxipunchik 96 05.04.23 08:56 Сейчас в теме
(2) Планы чуть попозже, план запроса на быстрый запрос сложновато выловить, не могу отфильтровать) А по конфигурации там оборотка должна быть такая же как и в российской
14. RustamZz 05.04.23 16:46 Сейчас в теме
(1) В параметрах быстрого запроса только 1 октября, в параметрах медленного 1 и сентябрь и октябрь. Похоже на формирование оборотов за периода с 23:59 1 сентября по 0:00 1 октября.
15. user602678_maxipunchik 96 05.04.23 17:04 Сейчас в теме
(14) Это в тексте же? сейчас перепроверю, может текстовку не ту взял
16. user602678_maxipunchik 96 05.04.23 17:09 Сейчас в теме
(14) Да, реально так и есть, зачем-то пытается вместо одного дня месяц посмотреть
4. user602678_maxipunchik 96 05.04.23 09:37 Сейчас в теме
Прикрепил планы запросов
5. RustamZz 05.04.23 10:57 Сейчас в теме
(4) Нет под рукой SQL 2019, я правильно понял у вас эта версия? Более старая не хочет читать план.
6. user602678_maxipunchik 96 05.04.23 11:32 Сейчас в теме
(5) Да, всё правильно, стоит 2019
7. RustamZz 05.04.23 13:21 Сейчас в теме
(6) В быстром обрабатывает 215 тыс. строк, в долгом 6,5 млн. В 30 раз больше - в 30 раз медленнее.
8. user602678_maxipunchik 96 05.04.23 13:49 Сейчас в теме
(7) так то оно так, но у нас каждый месяц примерно одни и те же показатели по объемам данных, более того, они со временем увеличиваются, а тут получается с января 21 года по сентябрь работает медленнее чем позже. Я еще специально нашел близкие по значениям данные, разница в месяц, так же и там и там это начало месяца. По идее оборотка вообще только с итоговых таблиц должна формироваться на начало плюс строки за день, а там строк минимум должно быть, тем более на начало периода. Я думал, что это из-за сбитых итогов, пересчитали, но ничего не изменилось. Так же сейчас замерил количество строк в этих 2-х днях, по которым идет сравнение (1 сентября 21 и 1 октября 21). За 1 сентября 241 319, а за 1 октября 215 763
10. RustamZz 05.04.23 14:00 Сейчас в теме
(8) Обращения к таблицам итогов в обоих вариантах там нет, а вот когда обороты считаются 6,5 млн и выходит. В быстром варианте этой ветки вообще нет.
9. user602678_maxipunchik 96 05.04.23 13:53 Сейчас в теме
(7) как вариант попробую сегодня через конфу индексы обновить, пока больше вариантов нет
11. RustamZz 05.04.23 14:12 Сейчас в теме
(9) Индексы тут не причем, а вот статистику на мой взгляд стоит. Минимум на AccRg13450
12. user602678_maxipunchik 96 05.04.23 15:27 Сейчас в теме
(11) вот этот AccRg13450 - это как раз основная таблица с кучей записей. по статистике вот скрин сегодня утром обновлялось.
Прикрепленные файлы:
13. redfred 05.04.23 16:10 Сейчас в теме
Похоже в adaptive join проблема. Уровень совместимости базы до 140 попробуйте понизить. Или
ALT ER   DATABASE SCOPED CONFIGURATION SET BATCH_MODE_ADAPTIVE_JOINS = OFF;
17. user602678_maxipunchik 96 05.04.23 17:11 Сейчас в теме
(13) завтра попробую, отпишусь по результату
18. user602678_maxipunchik 96 05.04.23 19:15 Сейчас в теме
19. user602678_maxipunchik 96 06.04.23 06:22 Сейчас в теме
В принципе направление было правильным, дело было действительно в итогах, только я не знал про оптимизационные фишки 1с.

Помогла вот эта статья на Инфостарте. Оказывается в 1с есть понятие минимальной даты расчета итогов, до которой эти самые итоги не рассчитываются.

Видимо после обновления эта самая минимальная дата итогов как-то установилась и начались эти проблемы с отчетами.

Для проверки минимальной даты по регистру бухгалтерии можно выполнить код на сервере
РегистрыБухгалтерии.Типовой.ПолучитьМинимальныйПериодРассчитанныхИтогов();


а для установки нужно прописать
РегистрыБухгалтерии.Типовой.УстановитьМинимальныйПериодРассчитанныхИтогов(Дата(2021,08,01));


где Типовой - это название вашего регистра.

Всем участникам спасибо за помощь, прокачал свои навыки в просмотре всяких профайлеров
Оставьте свое сообщение

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