Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос, удаление временной таблицы

Запрос, удаление временной таблицы
Я
   Momus
 
03.03.20 - 16:46
Поделитесь опытом сильно ли влияет на производительность явное удаление временной таблицы в запросе. Временные таблицы имею ввиду те, которые образуются после "Поместить".
   vicof
 
1 - 03.03.20 - 16:46
Сильно влияет вставание в 7 утра на вымирание землероек?
   Momus
 
2 - 03.03.20 - 16:49
(1) т.е. если будет какой-то архисложный запрос, Запрос.Выполнить() будет одинаково по времени отрабатывать?
   vicof
 
3 - 03.03.20 - 16:51
Нет, вещи спрашиваешь не особо связанные. Зависит от настроек СУБД, 1С, сервера, железа, кода, мозгов и т.д. и т.п.
   unenu
 
4 - 03.03.20 - 16:51
(2) если у вас есть бд в которой есть рн в которых 100-500КК записей то проведите тесты.
самое ценное знание то, которые вы добыли сами.
   Сияющий в темноте
 
5 - 03.03.20 - 17:03
это влияет не на скорость а на обьем памяти и диска используемый sql-сервером.
   Momus
 
6 - 03.03.20 - 17:34
(5) т.е. прямой зависимости скорости выполнения запроса от объема занимаемой памяти и диска (если она в избытке) нет? +Судя по той информации, которую я нарыл в сети, явное уничтожение временных таблиц это скорее хорошие манеры, а не необходимость
   D_E_S_131
 
7 - 03.03.20 - 17:35
(4) Да, на рабочем сервере будет в самый раз провести такой эксперимент :)
   Said_We
 
8 - 03.03.20 - 17:49
(6) Не бывает в избытке. Сегодня в избытке, а завтра не хватает. Поэтому если та или иная временная таблица более не используется, то её надо удалять. Что бы потом не сидеть и не оптимизировать, то что можно нарисовать сразу.
   VS-1976
 
9 - 03.03.20 - 18:10
(0) Времянка создаётся в temp_db. Удаление очищает используемое место в базе. Есть шанс что освободившееся нарезанное пространство будет использовано повторно, вместо того что бы база temp_db распухла ( выделение куска диска + нарезка структуры ). Шанс что-то выиграете от этого есть но он ничтожно мал...
   vi0
 
10 - 03.03.20 - 18:15
(0) что значит явное удаление?
   VS-1976
 
11 - 03.03.20 - 18:17
(10) Как то так:

ВЫБРАТЬ
    "Значение" КАК Поле

ПОМЕСТИТЬ тзДанные

;

УНИЧТОЖИТЬ тзДанные
;
   pechkin
 
12 - 03.03.20 - 18:17
в скорости проигрыш будет точно (в противном случае таблица удабится когда то потом), но выигрыш в освобождении пространства
   vi0
 
13 - 03.03.20 - 18:17
(11) ну может быть он другое имеет ввиду
   Momus
 
14 - 03.03.20 - 18:18
(10) из того, что я прочитал, вт живёт до тех пор, пока жива переменная с результатом запроса. Под явным удалением удалением я подразумеваю использование конструкции "уничтожить" в тексте запроса
   vi0
 
15 - 03.03.20 - 18:19
(14) не совсем - если есть менеджер временных таблиц и он жив, то вт жива и в этом случае
   VS-1976
 
16 - 03.03.20 - 18:19
(14) То только. Есть ещё случай
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Тогда таблица будет автоматом уничтожена когда будет уничтожен МенеджерВременныхТаблиц
   Надо работать
 
17 - 03.03.20 - 18:20
(8) а потом, во время отладки, будешь сидеть и не понимать куда делись твои ВТ..
   vi0
 
18 - 03.03.20 - 18:20
(15) + поэтому если МВТ жив долгое время, например когда гуляет от функции к функции, то ВТ смысл удалять есть
это как частный случай
   VS-1976
 
19 - 03.03.20 - 18:21
(16) Но если падает клиент, а запрос осуществлялся на клиенте ( ОФ ), то таблица может существовать долго :)
   vi0
 
20 - 03.03.20 - 18:21
(16) не так, нужно чтобы переменная была с МВТ
   vi0
 
21 - 03.03.20 - 18:23
(17) если только для отладки то это совсем другой разговор
   Momus
 
22 - 03.03.20 - 18:23
(12) проигрыш в скорости только в том случае, если мне таблица понадобится? Если я уверен, что эта таблица мне более не нужна, то в скорости разницы нет (если с памятью проблем нет)?
(16) да, про менеджер знаю, поэтому сразу уточнил именно про поместить.
   vi0
 
23 - 03.03.20 - 18:24
(20) точнее - переменная, если Запрос уже уничтожен
   pechkin
 
24 - 03.03.20 - 18:25
(22) причем здесь понадобится или нет?
если ты запускаешь действие (уничтожить ВТ) - то оно будет выполнять N секунд. вот это и будет проигрыш
   vi0
 
25 - 03.03.20 - 18:25
(22) а ты спроси его "если проигрыш будет точно то как это легко проверить?"
ну раз уж "точно" то и проверить легко значит
   vi0
 
26 - 03.03.20 - 18:26
(24) ВТ в любом случае будет уничтожаться, если у запроса не инициирован МВТ
   Momus
 
27 - 03.03.20 - 18:26
(24) вот так понятней
   pechkin
 
28 - 03.03.20 - 18:27
(26) оно уничтожится, но уничтожится потом не блокируя ввод
   VS-1976
 
29 - 03.03.20 - 18:27
(20) Ясен хрен пока объект держат он не будет уничтожаться сборщиком мусора и его деструктор не будет вызываться.
При этом этого достаточно:

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

В случае 2:

пМенеджер = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = пМенеджер;
Запрос = Неопределено;

Менеджер разумеется не грохнется, так как будет в переменной, так как у объекта есть счётчик ссылок.
Во втором случае после уничтожения объекта Запрос, произойдёт уменьшение счётчика использования МенеджерВременныхТаблиц. И когда счётчик станет равным 0, вызовется деструктор МенеджерВременныхТаблиц.
   pechkin
 
30 - 03.03.20 - 18:27
то бишь асинхронно
 
 Рекламное место пустует
   vi0
 
31 - 03.03.20 - 18:28
(28) что такое блокировка ввода? до сих пор говорили только про скорость
   VS-1976
 
32 - 03.03.20 - 18:31
(30) Разные базы, по этому MS SQL будет параллельно делать DML к базе temp_db. Удаление таблицы это тупо пометка в структуре что область свободна. Это не занимает много времени. По этому о каком-то торможении из-за УНИЧТОЖИТЬ говорить не приходится. Если конечно на temp_db не длинная очередь, и то тупо выполнится удаление позже что не критично.
   Momus
 
33 - 03.03.20 - 18:46
(9), (32) вот примерно такого ответа я ожидал. Спасибо
   Надо работать
 
34 - 03.03.20 - 18:50
(33) захламление кода. направьте свою энергию в более полезное для базы дело
   Said_We
 
35 - 03.03.20 - 21:02
(17) "а потом, во время отладки, будешь сидеть и не понимать куда делись твои ВТ.." - это когда это?
В консоле видно когда и что удаляешь.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.