Оптимизатор временных таблиц в пакетных запросах

03.08.26

База данных - HighLoad оптимизация

В длинных пакетных запросах временные таблицы живут до конца пакета: УНИЧТОЖИТЬ либо забывают, либо сваливают в конец. Обработка анализирует пакет и расставляет УНИЧТОЖИТЬ ровно там, где каждая таблица использована в последний раз — tempdb освобождается раньше. Только текст запроса, к СУБД не обращается.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Авто-УНИЧТОЖИТЬ: оптимизатор временных таблиц в пакетных запросах
.epf 10,19Kb ver:1
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

В длинных пакетных запросах временные таблицы обычно живут до самого конца пакета: УНИЧТОЖИТЬ либо забывают, либо сваливают все в конец «для порядка». Всё это время СУБД держит таблицы в tempdb — на тяжёлых отчётах это лишние гигабайты и лишние секунды. Обработка анализирует пакет и расставляет УНИЧТОЖИТЬ ровно там, где каждая временная таблица использована в последний раз.

 

Что делает

  • Разбирает пакетный запрос: находит все временные таблицы (ПОМЕСТИТЬ/INTO) и место последнего использования каждой.
  • Показывает отчёт: где создана, где последний раз использована, был ли УНИЧТОЖИТЬ в исходном тексте.
  • Генерирует оптимизированный текст: УНИЧТОЖИТЬ вставлен сразу после последнего использования; существующие УНИЧТОЖИТЬ переставляются на правильные места (повторный прогон ничего не дублирует).
  • Таблицы, живущие до последнего пакета, не трогает — менеджер временных таблиц закроется сам, о чём честно пишет в отчёте.

 

Что учтено в разборе

  • Комментарии // и строковые литералы: упоминание таблицы в комментарии или строке использованием не считается.
  • Поиск имени по границам слова: ВТ_Товары и ВТ_Товары2 не путаются.
  • Регистронезависимость и англоязычный синтаксис (SELECT … INTO, DROP).
  • Вложенные подзапросы «В (ВЫБРАТЬ …)» считаются использованием.

 

Принцип безопасности

Обработка работает только с текстом запроса: к данным, метаданным и СУБД не обращается. Открыли — вставили текст — получили оптимизированный вариант и отчёт.

 

Зачем это вам

Из практики оптимизации больших баз: в типовом «отчёте на 15 пакетов» половина временных таблиц не уничтожается вовсе, а вторая половина — одним блоком в конце. На базах в сотни гигабайт это заметная нагрузка на tempdb при каждом запуске отчёта. Расстановка УНИЧТОЖИТЬ по месту последнего использования — самая дешёвая оптимизация пакетного запроса: ничего не переписывается, план не меняется, память освобождается раньше.

 

Совместимость

1С:Предприятие 8.3, управляемые формы, любая конфигурация (обработка не зависит от метаданных). Код открыт.

 

Что в файле

Внешняя обработка .epf. Вставили пакетный запрос — нажали «Расставить УНИЧТОЖИТЬ» — забрали оптимизированный текст и отчёт по каждой временной таблице.

Проверено на следующих конфигурациях и релизах:

  • Розница, редакция 2.3, релизы 2.2.6.18

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    269850    1497    422    

1180

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    12226    155    zup_dev    32    

86

Запросы Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    21609    XilDen    39    

113

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист 1С 8.3 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

10 стартмани

15.02.2024    23919    410    ZAOSTG    115    

132

HighLoad оптимизация Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    45680    doom2good    50    

80

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    24307    ivanov660    7    

84

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    13784    a.doroshkevich    23    

78

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    27556    skovpin_sa    15    

107
Для отправки сообщения требуется регистрация/авторизация