Имя: Пароль:
1C
 
Запрос в динамическом списке ут11 + тормоза у пользователей
0 DmitriyDI
 
23.01.15
16:31
Есть типовой запрос в динамическом списке + маленькая дописка- добавили новый реквизит в документ - реализацию, и соответственно вывели в запросе в этот динамический список. Пользователи жалуются, что бывает часто, что система подвисает, настроил ТЖ на долгие запросы таким образом:
<event>
<eq value="sdbl" property="name"/>
<gt value="10000" property="duration"/>
</event>
, и этот запрос из динамического списка занимает 70% времени всех тяжелых запросов.

Запрос находится в конфигурации

ОбщаяФорма.СписокДокументовПродажи.Реквизит.СписокРеализацииТоваровУслуг (подсистема продажи, список документов продажи)
, что можно еще посмотреть? и могут ли возникать тормоза из-за простого добавления реквизита документа в запрос?
1 WebberNSK
 
23.01.15
17:24
РегистрыНакопления.Продажи.Регистратор.Номер?
2 WebberNSK
 
23.01.15
17:26
(1) + в общем может, скорей всего вы неявно наделали кучу левых соединений

1) а ссылку расшифровать нельзя было в пользовательском режиме до этого реквизита?
2) доп. реквизиты не подходят?
3 DmitriyDI
 
25.01.15
12:44
(2) вот типовой запрос :

ВЫБРАТЬ
    ДокументРеализацияТоваровУслуг.Ссылка,
    ДокументРеализацияТоваровУслуг.ПометкаУдаления,
    ДокументРеализацияТоваровУслуг.Номер,
    ДокументРеализацияТоваровУслуг.Дата,
    ДокументРеализацияТоваровУслуг.Проведен,
    ДокументРеализацияТоваровУслуг.Автомобиль,
    ДокументРеализацияТоваровУслуг.АдресДоставки,
    ДокументРеализацияТоваровУслуг.БанковскийСчетОрганизации,
    ДокументРеализацияТоваровУслуг.БанковскийСчетКонтрагента,
    ДокументРеализацияТоваровУслуг.БанковскийСчетГрузоотправителя,
    ДокументРеализацияТоваровУслуг.БанковскийСчетГрузополучателя,
    ДокументРеализацияТоваровУслуг.БанковскийСчетПеревозчика,
    ДокументРеализацияТоваровУслуг.Валюта,
    ДокументРеализацияТоваровУслуг.ВалютаВзаиморасчетов,
    ДокументРеализацияТоваровУслуг.Водитель,
    ДокументРеализацияТоваровУслуг.Грузоотправитель,
    ДокументРеализацияТоваровУслуг.Грузополучатель,
    ДокументРеализацияТоваровУслуг.ДатаПлатежа,
    ДокументРеализацияТоваровУслуг.ДатаРаспоряжения,
    ДокументРеализацияТоваровУслуг.ДоверенностьВыдана,
    ДокументРеализацияТоваровУслуг.ДоверенностьДата,
    ДокументРеализацияТоваровУслуг.ДоверенностьЛицо,
    ДокументРеализацияТоваровУслуг.ДоверенностьНомер,
    ДокументРеализацияТоваровУслуг.ЗаказКлиента,
    ДокументРеализацияТоваровУслуг.Комментарий,
    ДокументРеализацияТоваровУслуг.Контрагент,
    ДокументРеализацияТоваровУслуг.Менеджер,
    ДокументРеализацияТоваровУслуг.НалогообложениеНДС,
    ДокументРеализацияТоваровУслуг.Организация,
    ДокументРеализацияТоваровУслуг.Партнер,
    ДокументРеализацияТоваровУслуг.Перевозчик,
    ДокументРеализацияТоваровУслуг.Подразделение,
    ДокументРеализацияТоваровУслуг.Сделка,
    ДокументРеализацияТоваровУслуг.СкидкиРассчитаны,
    ДокументРеализацияТоваровУслуг.Склад,
    ДокументРеализацияТоваровУслуг.Согласован,
    ДокументРеализацияТоваровУслуг.Соглашение,
    ДокументРеализацияТоваровУслуг.Договор,
    ДокументРеализацияТоваровУслуг.СрокДоставки,
    ДокументРеализацияТоваровУслуг.Статус,
    ДокументРеализацияТоваровУслуг.СуммаВзаиморасчетов,
    ДокументРеализацияТоваровУслуг.СуммаДокумента,
    ДокументРеализацияТоваровУслуг.ФормаОплаты,
    ДокументРеализацияТоваровУслуг.ХозяйственнаяОперация,
    ДокументРеализацияТоваровУслуг.ЦенаВключаетНДС,
    ДокументРеализацияТоваровУслуг.Касса,
    ДокументРеализацияТоваровУслуг.Отпустил,
    ДокументРеализацияТоваровУслуг.ОтпустилДолжность,
    ДокументРеализацияТоваровУслуг.СпособДоставки,
    ДокументРеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки1,
    СостоянияЭД.СостояниеВерсииЭД,
    ВЫБОР
        КОГДА НЕ ДокументРеализацияТоваровУслуг.Проведен
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.НеРассчитано)
        КОГДА СостоянияОтгрузки.Состояние ЕСТЬ NULL
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.Доставлено)
        ИНАЧЕ СостоянияОтгрузки.Состояние
    КОНЕЦ КАК СостояниеОтгрузки
ИЗ
    Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
        ПО (СостоянияЭД.СсылкаНаОбъект = ДокументРеализацияТоваровУслуг.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОтгрузки КАК СостоянияОтгрузки
        ПО ДокументРеализацияТоваровУслуг.Ссылка = СостоянияОтгрузки.ДокументОтгрузки

добавили только из документа реализация товаров услуг. реквизит тип перечисление. реквизит не типовой и все
4 DmitriyDI
 
26.01.15
09:48
up
5 PRO100 NigGaZ
 
26.01.15
09:58
точно этот запрос выполняется? как в подборе программно не дописывается?
6 DmitriyDI
 
26.01.15
12:20
(5) точно, еще в типовой автообновление отключено, у в базе, где тормозит включено, с периодом в 10
7 H A D G E H O G s
 
26.01.15
12:34
rls, невыполненные регламенты sql.
8 DmitriyDI
 
26.01.15
12:45
(7) как можно быстрее всего найти слабое место в rls?
9 H A D G E H O G s
 
26.01.15
12:49
(8) Посмотреть запрос и план выполнения запроса в профайлере.
10 DmitriyDI
 
26.01.15
18:23
получилось следующее, если я беру запрос из динамического списка, выполняется достаточно быстро, но в тех. журнале я вижу следующие отборы:

WHERE
(CAST(Q_000_T_001.Fld10179 AS (Reference118)).Description LIKE "%текст%" ESCAPE "/")
AND (
((Q_000_T_001.Date_Time < DATETIME(2015,1,26,10,17,49)) OR Q_000_T_001.Date_Time IS NULL)
OR
((Q_000_T_001.Date_Time = DATETIME(2015,1,26,10,17,49)) AND ((Q_000_T_001.ID < &П2) OR Q_000_T_001.ID IS NULL))
)

добавляю их в консоли запросов и все система висит...

эти отборы это ведь отборы пользователя? как их можно отключить и почему с ними такое зависание (ну в принципе понятно, там он берет просто первых 30 записей, а тут всю таблицу реализаций перелопачивает, а потом только отсеивает по отбору?)
11 Fragster
 
гуру
26.01.15
18:37
какое-то наименование содержит "траляля"... если очень нужно, то сделать полнотекстовый поиск, если нет - научиться польвзаоться "в списке" или равно
12 Fragster
 
гуру
26.01.15
18:37
нифига я в "пользоваться" опечатался :)
13 DmitriyDI
 
26.01.15
18:44
(11) даже если оставляю всего 2 отбора (Q_000_T_001.Date_Time < DATETIME(2015,1,26,10,17,49)) OR Q_000_T_001.Date_Time IS NULL)
OR
(Q_000_T_001.Date_Time = DATETIME(2015,1,26,10,17,49)
выполняется не реально долго
14 H A D G E H O G s
 
26.01.15
18:46
(13) Текст запроса 1С, полностью напиши сюда
15 DmitriyDI
 
26.01.15
18:48
(14) вот это запрос, который выдал мне ТЖ

SELECT ALLOWED TOP 30
Q_000_T_001.ID sf_2,
Q_000_T_001.Marked,
Q_000_T_001.Number,
Q_000_T_001.Date_Time sf_1,
Q_000_T_001.Posted,
Q_000_T_001.Fld10166,
Q_000_T_001.Fld10179,
Q_000_T_001.Fld10178,
Q_000_T_001.Fld10183,
Q_000_T_001.Fld10188,
Q_000_T_001.Fld10182,
Q_000_T_001.Fld10196,
Q_000_T_001.Fld10209,
Q_000_T_002.Fld13631,
CASE  WHEN (NOT(Q_000_T_001.Posted)) THEN &П WHEN Q_000_T_003.Fld13613 IS NULL THEN &П1 ELSE Q_000_T_003.Fld13613 END ,
Q_000_T_001.Fld10248
FROM
Document343 Q_000_T_001 LEFT JOIN InfoRg13629 Q_000_T_002 ON (Q_000_T_002.Fld13630 = Q_000_T_001.ID) LEFT JOIN InfoRg13611 Q_000_T_003 ON (Q_000_T_001.ID = Q_000_T_003.Fld13612)
WHERE
(CAST(Q_000_T_001.Fld10179 AS (Reference118)).Description LIKE "%текст%" ESCAPE "/")
AND (
((Q_000_T_001.Date_Time < DATETIME(2015,1,26,10,17,49)) OR Q_000_T_001.Date_Time IS NULL)
OR
((Q_000_T_001.Date_Time = DATETIME(2015,1,26,10,17,49)) AND ((Q_000_T_001.ID < &П2) OR Q_000_T_001.ID IS NULL))
)
ORDER BY
sf_1 DESC,
sf_2 DESC
16 DmitriyDI
 
26.01.15
18:53
(14) вот этот запрос я написал, для проверки в консоли запросов:

Вот этот я попробовал выполнить в консоли:

ВЫБРАТЬ
    ДокументРеализацияТоваровУслуг.Ссылка,
    ДокументРеализацияТоваровУслуг.ПометкаУдаления,
    ДокументРеализацияТоваровУслуг.Номер,
    ДокументРеализацияТоваровУслуг.Дата,
    ДокументРеализацияТоваровУслуг.Проведен,
    ДокументРеализацияТоваровУслуг.Автомобиль,
    ДокументРеализацияТоваровУслуг.АдресДоставки,
    ДокументРеализацияТоваровУслуг.БанковскийСчетОрганизации,
    ДокументРеализацияТоваровУслуг.БанковскийСчетКонтрагента,
    ДокументРеализацияТоваровУслуг.БанковскийСчетГрузоотправителя,
    ДокументРеализацияТоваровУслуг.БанковскийСчетГрузополучателя,
    ДокументРеализацияТоваровУслуг.БанковскийСчетПеревозчика,
    ДокументРеализацияТоваровУслуг.Валюта,
    ДокументРеализацияТоваровУслуг.ВалютаВзаиморасчетов,
    ДокументРеализацияТоваровУслуг.Водитель,
    ДокументРеализацияТоваровУслуг.Грузоотправитель,
    ДокументРеализацияТоваровУслуг.Грузополучатель,
    ДокументРеализацияТоваровУслуг.ДатаПлатежа,
    ДокументРеализацияТоваровУслуг.ДатаРаспоряжения,
    ДокументРеализацияТоваровУслуг.ДоверенностьВыдана,
    ДокументРеализацияТоваровУслуг.ДоверенностьДата,
    ДокументРеализацияТоваровУслуг.ДоверенностьЛицо,
    ДокументРеализацияТоваровУслуг.ДоверенностьНомер,
    ДокументРеализацияТоваровУслуг.ЗаказКлиента,
    ДокументРеализацияТоваровУслуг.Комментарий,
    ДокументРеализацияТоваровУслуг.Контрагент,
    ДокументРеализацияТоваровУслуг.Менеджер,
    ДокументРеализацияТоваровУслуг.НалогообложениеНДС,
    ДокументРеализацияТоваровУслуг.Организация,
    ДокументРеализацияТоваровУслуг.Партнер,
    ДокументРеализацияТоваровУслуг.Перевозчик,
    ДокументРеализацияТоваровУслуг.Подразделение,
    ДокументРеализацияТоваровУслуг.Сделка,
    ДокументРеализацияТоваровУслуг.СкидкиРассчитаны,
    ДокументРеализацияТоваровУслуг.Склад,
    ДокументРеализацияТоваровУслуг.Согласован,
    ДокументРеализацияТоваровУслуг.Соглашение,
    ДокументРеализацияТоваровУслуг.Договор,
    ДокументРеализацияТоваровУслуг.СрокДоставки,
    ДокументРеализацияТоваровУслуг.Статус,
    ДокументРеализацияТоваровУслуг.СуммаВзаиморасчетов,
    ДокументРеализацияТоваровУслуг.СуммаДокумента,
    ДокументРеализацияТоваровУслуг.ФормаОплаты,
    ДокументРеализацияТоваровУслуг.ХозяйственнаяОперация,
    ДокументРеализацияТоваровУслуг.ЦенаВключаетНДС,
    ДокументРеализацияТоваровУслуг.Касса,
    ДокументРеализацияТоваровУслуг.Отпустил,
    ДокументРеализацияТоваровУслуг.ОтпустилДолжность,
    ДокументРеализацияТоваровУслуг.СпособДоставки,
    ДокументРеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки1,
    СостоянияЭД.СостояниеВерсииЭД,
    ВЫБОР
        КОГДА НЕ ДокументРеализацияТоваровУслуг.Проведен
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.НеРассчитано)
        КОГДА СостоянияОтгрузки.Состояние ЕСТЬ NULL
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.Доставлено)
        ИНАЧЕ СостоянияОтгрузки.Состояние
    КОНЕЦ КАК СостояниеОтгрузки,
    ДокументРеализацияТоваровУслуг.ДобавленноеПеречисление КАК Перечисление
ИЗ
    Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
        ПО (СостоянияЭД.СсылкаНаОбъект = ДокументРеализацияТоваровУслуг.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОтгрузки КАК СостоянияОтгрузки
        ПО ДокументРеализацияТоваровУслуг.Ссылка = СостоянияОтгрузки.ДокументОтгрузки
Где ((ДокументРеализацияТоваровУслуг.Дата < &ВыбДата) или ДокументРеализацияТоваровУслуг.Дата есть null) или (ДокументРеализацияТоваровУслуг.Дата = &ВыбДата)
17 H A D G E H O G s
 
26.01.15
18:55
Счаст посмотрим
18 H A D G E H O G s
 
26.01.15
19:17
(16) Забыл Выбрать Первые 30
19 H A D G E H O G s
 
26.01.15
19:17
В планах запросов - вполне нормальный план, ну, более-менее.
20 DmitriyDI
 
26.01.15
19:51
(18) точно, спешил не поставил, но все равно почему же может этот запрос выполняться час (данные из тж)
21 H A D G E H O G s
 
26.01.15
21:01
(20) Давай доступ удаленный, посмотрим.
У меня отрабатывает за 200 миллисекунд.
22 Fragster
 
гуру
27.01.15
10:56
(16) убери NULL нахфиг
23 Fragster
 
гуру
27.01.15
10:56
ДокументРеализацияТоваровУслуг.Дата <= &ВыбДата
24 DmitriyDI
 
27.01.15
10:57
(21) да сейчас у меня запрос тоже быстро отрабатывает, но почему может быть такое подвисание ?
(22) да я уберу. не понятно откуда он берется в (15) ?
25 Fragster
 
гуру
27.01.15
11:05
в РС ссылки должны быть первым реквизитом
26 Fragster
 
гуру
27.01.15
11:19
в соединение можно добавить условие
И СостоянияЭД.СсылкаНаОбъект Ссылка Документ.РеализацияТоваровУслуг, и аналогичное для второго регистра, если там составной тип у измерения
27 Fragster
 
гуру
27.01.15
11:20
а то я в (15) не вижу, но это какой-то SDBLный вид, реального скульного не видно, а для составных типов там еще одна колонка есть в индексе, и она - первая
28 Fragster
 
гуру
27.01.15
11:20
(27) вернее не одна, а несколько
29 DmitriyDI
 
27.01.15
11:34
(26) да там мне кажется не в этом причина, может так подвиснуть из-за блокировки? но, в тех журнале никаких данных по блокировкам не вижу.
30 H A D G E H O G s
 
27.01.15
11:40
(25) Так и есть.
(26) Нет, не надо. Там по регистрам нормально соединяется, без провалов по индексам.
(29) В дин. списке не должно быть никаких блокировок, если, например, нет чтения объекта руками, например в ПриАктивацииСтроки()