Оптимизация SQL запросов конфигурации
Всем привет.
У пользователей возникли жалобы на зависание 1С. По нагрузке ЦП стало понятно, что ресурсы съедает MS SQL. Я включил хранилище запросов, а затем с помощью отчёта "Основные отчёты, потребляющие ресурсы" и преобразования имен таблиц в 1Совские выявил ряд неоптимальных запросов, которые успешно исправил. Однако, остались запросы, источник вызова которых остался неочевидным.
Для того чтобы найти откуда он вызывается, я настроил технологический журнал следующим образом:
Не смотря на это, в анализе технологического журнала через ИР я вижу лишь события с типом EXCP, которые, казалось бы, вообще не должны были фиксироваться.
Помогите, пожалуйста, понять, откуда вызывается этот запрос.
У пользователей возникли жалобы на зависание 1С. По нагрузке ЦП стало понятно, что ресурсы съедает MS SQL. Я включил хранилище запросов, а затем с помощью отчёта "Основные отчёты, потребляющие ресурсы" и преобразования имен таблиц в 1Совские выявил ряд неоптимальных запросов, которые успешно исправил. Однако, остались запросы, источник вызова которых остался неочевидным.
Пример такого запроса | ||
|---|---|---|
SEL ECT
T1.IDTRef,
T1.IDRRef
FR OM (SEL ECT
0x0000018F AS IDTRef,
T2._IDRRef AS IDRRef
FR OM dbo._Document399 T2
WHERE ((T2._Fld1269 = @P1)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document399_VT1270 T3
WHERE T2._Fld1269 = T3._Fld1269 AND T2._IDRRef = T3._Document399_IDRRef AND ((T3._Fld1278_TYPE = 0x08 AND T3._Fld1278_RTRef = 0x000001AD AND T3._Fld1278_RRRef = @P2)))
UNI ON ALL SEL ECT
0x00000190 AS IDTRef,
T4._IDRRef AS IDRRef
FR OM dbo._Document400 T4
WHERE ((T4._Fld1269 = @P3)) AND (T4._Fld1342_TYPE = 0x08 AND T4._Fld1342_RTRef = 0x000001AD AND T4._Fld1342_RRRef = @P4)
UNI ON SEL ECT
0x00000190 AS IDTRef,
T5._IDRRef AS IDRRef
FR OM dbo._Document400 T5
WHERE ((T5._Fld1269 = @P5)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document400_VT1375 T6
WHERE T5._Fld1269 = T6._Fld1269 AND T5._IDRRef = T6._Document400_IDRRef AND ((T6._Fld1394_TYPE = 0x08 AND T6._Fld1394_RTRef = 0x000001AD AND T6._Fld1394_RRRef = @P6)))
UNI ON SEL ECT
0x00000190 AS IDTRef,
T7._IDRRef AS IDRRef
FR OM dbo._Document400 T7
WHERE ((T7._Fld1269 = @P7)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document400_VT1411 T8
WHERE T7._Fld1269 = T8._Fld1269 AND T7._IDRRef = T8._Document400_IDRRef AND ((T8._Fld1413_TYPE = 0x08 AND T8._Fld1413_RTRef = 0x000001AD AND T8._Fld1413_RRRef = @P8)))
UNI ON ALL SEL ECT
0x00000199 AS IDTRef,
T9._IDRRef AS IDRRef
FR OM dbo._Document409 T9
WHERE ((T9._Fld1269 = @P9)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document409_VT2024 T10
WHERE T9._Fld1269 = T10._Fld1269 AND T9._IDRRef = T10._Document409_IDRRef AND ((T10._Fld2036_TYPE = 0x08 AND T10._Fld2036_RTRef = 0x000001AD AND T10._Fld2036_RRRef = @P10)))
UNI ON ALL SEL ECT
0x0000019A AS IDTRef,
T11._IDRRef AS IDRRef
FR OM dbo._Document410 T11
WHERE ((T11._Fld1269 = @P11)) AND (T11._Fld2224_TYPE = 0x08 AND T11._Fld2224_RTRef = 0x000001AD AND T11._Fld2224_RRRef = @P12)
UNI ON SEL ECT
0x0000019A AS IDTRef,
T12._IDRRef AS IDRRef
FR OM dbo._Document410 T12
WHERE ((T12._Fld1269 = @P13)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document410_VT2228 T13
WHERE T12._Fld1269 = T13._Fld1269 AND T12._IDRRef = T13._Document410_IDRRef AND ((T13._Fld2232_TYPE = 0x08 AND T13._Fld2232_RTRef = 0x000001AD AND T13._Fld2232_RRRef = @P14)))
UNI ON SEL ECT
0x0000019A AS IDTRef,
T14._IDRRef AS IDRRef
FR OM dbo._Document410 T14
WHERE ((T14._Fld1269 = @P15)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document410_VT2240 T15
WHERE T14._Fld1269 = T15._Fld1269 AND T14._IDRRef = T15._Document410_IDRRef AND ((T15._Fld2244_TYPE = 0x08 AND T15._Fld2244_RTRef = 0x000001AD AND T15._Fld2244_RRRef = @P16)))
UNI ON ALL SELECT
0x0000019C AS IDTRef,
T16._IDRRef AS IDRRef
FR OM dbo._Document412 T16
WH ERE ((T16._Fld1269 = @P17)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document412_VT2288 T17
WH ERE T16._Fld1269 = T17._Fld1269 AND T16._IDRRef = T17._Document412_IDRRef AND ((T17._Fld2298_TYPE = 0x08 AND T17._Fld2298_RTRef = 0x000001AD AND T17._Fld2298_RRRef = @P18)))
UNION ALL SEL ECT
0x0000019F AS IDTRef,
T18._IDRRef AS IDRRef
FR OM dbo._Document415 T18
WH ERE ((T18._Fld1269 = @P19)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document415_VT2499 T19
WH ERE T18._Fld1269 = T19._Fld1269 AND T18._IDRRef = T19._Document415_IDRRef AND ((T19._Fld2501_TYPE = 0x08 AND T19._Fld2501_RTRef = 0x000001AD AND T19._Fld2501_RRRef = @P20)))
UNION ALL SEL ECT
0x000001A0 AS IDTRef,
T20._IDRRef AS IDRRef
FR OM dbo._Document416 T20
WH ERE ((T20._Fld1269 = @P21)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document416_VT2623 T21
WH ERE T20._Fld1269 = T21._Fld1269 AND T20._IDRRef = T21._Document416_IDRRef AND ((T21._Fld2625_TYPE = 0x08 AND T21._Fld2625_RTRef = 0x000001AD AND T21._Fld2625_RRRef = @P22)))
UNION ALL SEL ECT
0x000001A6 AS IDTRef,
T22._IDRRef AS IDRRef
FR OM dbo._Document422 T22
WH ERE ((T22._Fld1269 = @P23)) AND EXISTS(
SEL ECT 1
FR OM dbo._Document422_VT3050 T23
WH ERE T22._Fld1269 = T23._Fld1269 AND T22._IDRRef = T23._Document422_IDRRef AND ((T23._Fld3052_TYPE = 0x08 AND T23._Fld3052_RTRef = 0x000001AD AND T23._Fld3052_RRRef = @P24)))
UNION ALL SEL ECT
0x000001AA AS IDTRef,
T24._IDRRef AS IDRRef
FR OM dbo._Document426 T24
WH ERE ((T24._Fld1269 = @P25)) AND (T24._Fld3162_T
Показать
|
Для того чтобы найти откуда он вызывается, я настроил технологический журнал следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="true" location="D:\dump" type="3" prntscrn="false"/>
<log history="72" location="D:\log\2022-06-30">
<event>
<eq property="name" value="DBMSSQL"/>
<like property="sql" value="%FROM dbo.\_Document399_VT1270 T3%"/>
</event>
<property name="all"/>
</log>
<sc riptcircrefs/>
</config>
ПоказатьНе смотря на это, в анализе технологического журнала через ИР я вижу лишь события с типом EXCP, которые, казалось бы, вообще не должны были фиксироваться.
Помогите, пожалуйста, понять, откуда вызывается этот запрос.
По теме из базы знаний
- Пример пошагового решения проблемы производительности на базе Postgres SQL с картинками
- Выгрузка данных 1С в ClickHouseDB, PostgreSQL, MySQL, REST, CSV, JSON, XLS, XLSX и Google Sheets
- Опыт оптимизации 1С на PostgreSQL
- Анализируем SQL сервер глазами 1С-ника
- Используем частотный анализ количества выполненных запросов для выявления проблем оптимизации
Найденные решения
(10) Если используешь ИР анализ техножурнала, то мог бы и настройку техножурнала оттуда же использовать. Она вычисляет путь к активному файлу конфигурации техножурнала по алгоритму платформы. Поэтому сразу увидишь как минимум где лежит файл активной конфигурации журнала и там же можешь настроить ее.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Какая конфа? По смыслу похоже, что выбираются все документы, в которых упоминается конкретный Заказ. Возможно динамический запрос в таблице какой-то формы.
(10) я такое видел когда люди вручную переносили дистрибутив запуска, и права на каталог для учетной записи службы сервера 1С не скопировались program files , из-за нехватки прав на файл и каталог уровнем выше файл не считывался, но это один из вариантов, или скажем учетку службе 1С поменяли, а права не предоставили новой учетке и т.п.
(10) Если используешь ИР анализ техножурнала, то мог бы и настройку техножурнала оттуда же использовать. Она вычисляет путь к активному файлу конфигурации техножурнала по алгоритму платформы. Поэтому сразу увидишь как минимум где лежит файл активной конфигурации журнала и там же можешь настроить ее.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот