09.01.2023 Айдар Фархутдинов 24855
Временные таблицы в запросе 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С, то лучше удалять таблицу при помощи команды «Уничтожить», или же при помощи метода МВТ.Закрыть().

   

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

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

Наши проекты

Компания IBS
Компания IBS

Отрасль:
Системный интегратор

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

- Интеграция систем – АСУП и «1С:Управление производственным предприятием»...

ООО “РТИТС”
ООО “РТИТС”

Отрасль:
Транспортные системы

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

Блок регламентированного кадрового учета и расчета заработной платы в 1С:ERP;...

ООО ХДМ Рус
ООО ХДМ Рус

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

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

Управление цепочками поставок Оптовая торговля ...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

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

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

- Налоговый учет;...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

Внедренное типовое решение:
Платформа 1С:Предприятие 8

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

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

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

Различная отраслевая специфика:
- Переработка давальческого сырья
- Уче...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

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

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

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

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

МИР ХОББИ
МИР ХОББИ

Отрасль:
Торговля. Интернет магазин

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

Оформление заказов поставщикам
Взаиморасчеты с покупателями
Оформление...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

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

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад ...

ООО «Еврорадиаторы»
ООО «Еврорадиаторы»

Отрасль:
1С:ERP 2.4

Внедренное типовое решение:

Специалисты «Кодерлайн» помогли перенести базу из текущей системы «1С:ERP 2.2» ...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

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

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

- Оперативный учет...

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

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

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

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