09.01.2023 Айдар Фархутдинов 23676
Временные таблицы в запросе 1С – что это и за...

Содержание:

1.     Что такое временные таблицы в запросе 1С и их хранение

 

Временные таблицы в запросе 1С – это особые объекты системы управления базами данных (СУБД). Не стоит путать с таблицами значений, которые хранятся на 1С сервере. Они используются внутри 1С кода для повышения его производительности.


Глобально, временные таблицы в системе 1С хранятся в оперативной памяти, либо на жёстком диске. А если рассматривать более локально, то создание и хранение временных таблиц происходит обычно внутри базы TempDB. Если углубиться в вопрос подробнее, то можно понять, что по стандартным настройкам временные таблицы в запросе 1С создаются внутри оперативной памяти, внутри буферного кэша. Однако, следует отметить, что есть исключение – это тот вариант, когда временная таблица в системе 1С имеет слишком большой размер, в таком случае – таблица будет записана на диск.


Временные таблицы в запросе 1С создаются в памяти потому что чтение с оперативной памяти будет, в любом случае, быстрее, чем чтение с диска.


Экспериментально проверим где будет создана временная таблица в системе 1С, для этого нужно внутри консоли прописать такой запрос:



Внутри консоли прописываем запрос


Далее нужно запустить трассировку SQL Profiler, с событием SQL:BatchComplited, и выполним внутри консоли запрос, результатом которого будет:



Выполнение внутри консоли запрос 8.2, его результат


Таким образом, увидим лишь внесение данных (заполнение) временной таблицы в запросе 1С, код создания отображён не будет.


Для начала, определим откуда происходит считка сведений, для этого нужно знать считываются данные с диска или с памяти. Воспользуемся, чтобы это выяснить, показатель physical reads (данный показатель отвечает за количество чтений перед выполнением запроса, страницы по 8Кб). Далее создаём и читаем временную таблицу в системе 1С внутри Management Studio, чтобы узнать величину показателя.


В новом запросе нужно прописать следующее по порядку:



В новом запросе прописываем следующее


Как только код выше будет выполнен, то во вкладке «Сообщения» будет текст такого вида:



Вкладка «Сообщение»


Наиболее важное из такого сообщения – это число физических чтений, которое равно 0, и число логических чтений, которое равно единице, - что означает, что сведения читались лишь из самой памяти.  


2.     Как производить индексирование таблиц

 

На экзамене 1С требуют проводить индексацию полей внутри временных таблиц в системе 1С, в обязательном порядке. В обычной работе также используют индексирование таблиц, так как она стала уже привычной, однако с ней запросы выполняются медленнее. Стоит отметить, что случаев, когда индексация не нужна гораздо больше, чем обратных, это связано, в первую очередь, с оптимизацией.


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



Пакетный запрос


Запрос будет осуществлён примерно за 1.2 секунды. В трассировке SQL Profiler будет следующее:



Tрассировка SQL Profiler


Таблица будет создана за 1.1 секунды, а за 0.1 секунду будет произведено сканирование всей таблицы для возврата одной строки. Рассмотрим, что поменяется, если добавить индекс в таблицу ВТ_Числа.


Запрос будет выполнен примерно за 6 секунд. Таблица будет создаваться за 5.3 секунды. А поиск по индексу будет проходить за 0.5 секунд, однако без индекса будет длиться 0.1 секунды. Преимуществом запроса с индексированием будет то, что он имеет меньшее количество логических чтений (2057, а не 2233).  


3.     Удаление временных таблиц в конфигурации системы 1С

 

Рассмотрим то, нужно ли удалять временные таблицы в конфигурации системы 1С, после того, как они были созданы. Это будет зависеть от того, каким способом создавалась таблица. Для случая, когда временная таблица в запросе 1С была задействована для одного пакетного запроса, то она будет существовать до выполнения пакетного запроса, то есть, менеджер временных таблиц создан скрыто. В таком случае, MS SQL создаст новую временную таблицу в системе 1С ЕРП, которая будет локальной, и она будет иметь одну решётку. По окончанию пакетного запроса, менеджер временных таблиц 1С будет закрыт и будет команда «Truncate table», - именно она удалит временную таблицу.


В случае наличия индексации таблицы – сначала будет она удалена, а потом сама таблица.


Если используется менеджер временных таблиц 1С, то лучше удалять таблицу при помощи команды «Уничтожить», или же при помощи метода МВТ.Закрыть().

   

Специалист компании "Кодерлайн"

Айдар Фархутдинов

Наши проекты

ООО «Вистеон Автоприбор Электроникс»
ООО «Вистеон Автоприбор Электроникс»

Отрасль:

Внедренное типовое решение:
1C:Управление производственным предприятием

- Управленческий учет; - Расчет зарплаты; - Логистика адресного склада; - Учет ...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Бухгалтерский учет
- Расчет зарплаты и кадровый учет
- Налоговый учет ...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Много Плитки»
ООО «Много Плитки»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление ...

ООО "Эскорт-Центр"
ООО "Эскорт-Центр"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Сквозной учет затрат по объектам
- Бухгалтерский учет
- Расчет зарплаты...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-проце...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

Внедренное типовое решение:
1С:Управление производственным предприятием

Автоматизация бизнес-процессов...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

Внедренное типовое решение:
1С:Комплексная автоматизация

- Разработка подсистемы оперативного учета транзакций...

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

Отрасль:
Производство

Внедренное типовое решение:
1С:Комплексная автоматизация

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных ...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- А...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение