Имя: Пароль:
 
1C
1С v8
Определить лишние временные таблицы в запросе, не идущие в последнюю выборку
0 NikP123
 
06.06.20
15:29
Есть отчет на СКД с огромным запросом на 220 таблиц... На основании него был сделан еще один, в котором половина полей была убрана, запрос я не трогаю, чтобы не нарушать целосность, вдруг чего-то слетит. Но отчет формируется очень долго.., надо оптимизировать. Решил поудалять вероятно образовавшиеся "лишние" временные таблицы в запросе (после отказа от многих полей в настройках).
НО запрос на 220 таблицы, поэтому вручную искать откуда тянется и где начинается каждое поле и каждая таблица муторно... Нет ли какого-то способа сделать это быстро в полуавтоматическом режиме?
1 Kassern
 
06.06.20
15:39
Я думаю врятли найдется способ это дело автоматизировать. В последнем запросе, какие таблицы вы не используете и найдите где эти таблицы формируются. Если нигде больше в тексте запроса после создания временной таблицы, она не используется, то ее скорее всего можно удалить.
2 vde69
 
06.06.20
15:42
выкинь бяку и напиши нормальный где будет не 220 а 22 таблицы
3 NikP123
 
06.06.20
15:43
(2) такое не предлагать)
4 NikP123
 
06.06.20
15:43
(2) отчет готов и можно считать принят, надо всего лишь оптимизировать
5 vde69
 
06.06.20
16:03
кстати посмотри сколько он в темб-дб добавляет, а то вдруг выяснится, что мега сервер заказчика не выдержит несколько паралельных запросов...

а вообще 220 таблиц в запросе - это по любому не правильно
6 kumena
 
06.06.20
16:10
Так в СКД платформа сама убирает не используемые таблицы и запросы, для полей, которые не выводятся.
Ловите запрос, тот который реально выполняется из макета.
7 kumena
 
06.06.20
16:12
Я даже больше скажу, эта слишком умная компоновка, иногда то что надо не выводит, и приходится "как бы не нужные" (с её точки зрения) поля обязательными полями делать.
8 kumena
 
06.06.20
16:23
Кстати, я тоже как-то боролся за производительность в СКД на длинном запросе, сколько временных таблиц там было не знаю, думаю что 100 точно было.
Тот же самый запрос (реальный, из макета) в обычной консоли выполнялся раз в 6-8 быстрее. Ничего не помогало, в итоге просто выполнял запрос без СКД и выгружал результат в источник.
Было это на ЗУП 2.5 и 8.2 и довольно давно.
9 ДенисЧ
 
06.06.20
16:31
(2) "нормальный" запрос из 22х таблиц? О_о
10 ДенисЧ
 
06.06.20
16:31
(0) продам два символа... / и /
Они помогут
11 experimentator76
 
06.06.20
17:02
(0) в Выбранных полях оставь только те что по-твоему используют юзеры в отчете.
СКД сама отключит соединения с таблицами из которых берутся невыбранные поля.

но скорее всего это просто говняный тормозной запрос, который надо смотреть глазами и оптимизировать в комплексе.
можно пару дней на оптимизацию убить.
на форуме без доступа к запросу и конфе этого не сделать
12 experimentator76
 
06.06.20
17:05
(0) еще у 1с был замечательный курс по глубокому изучению запросов.
сейчас не знаю есть ли. но если есть каждому одинэснику советовал бы пройти даже удаленно
13 Ненавижу 1С
 
06.06.20
17:08
Когда 1с впилит хранимые процедуры, выдающие табличные данные?
14 Надо работать
 
06.06.20
17:44
(11) + а после этого погони через консоль компоновки в Инструментах разработчика - получишь оптимизированный запрос
15 NikP123
 
06.06.20
19:31
(6) Он только поля из запросов убирает, таблицы и соединения не трогает
16 experimentator76
 
06.06.20
19:54
(15) {} вокруг соединений поставь, т.е.
{... соединение ... по ...}
17 Ненавижу 1С
 
06.06.20
19:56
(15) только привести это может к иным результатам чем задумывалось
18 experimentator76
 
06.06.20
19:57
(15) временные таблицы СКД-оптимизатор по-моему не трогает - возможно их надо перенести в тело
главного запроса - тогда оптимизатор должен заработать
19 experimentator76
 
06.06.20
19:58
(17) понятно что надо от запроса и данных отталкиваться, но их здесь нет
20 Конструктор1С
 
06.06.20
20:57
Возможно дело не в количестве таблиц, а в кривых условиях отборов/соединений