Здравствуйте!
УПП 1.3 8.2.19.102, Сервер 64х
Начала тормозить УПП, начали смотреть, во время тормозов процессор, на сервере, где крутиться sql уходит практически в 100%.
Выявили запрос, на выполнение которого уходит большее время процессора, но понять, откуда он вызывается так и не могу.
Может кто подскажет, в каком направлении искать, или кто - то уже с этим сталкивался?
Запрос:
УПП 1.3 8.2.19.102, Сервер 64х
Начала тормозить УПП, начали смотреть, во время тормозов процессор, на сервере, где крутиться sql уходит практически в 100%.
Выявили запрос, на выполнение которого уходит большее время процессора, но понять, откуда он вызывается так и не могу.
Может кто подскажет, в каком направлении искать, или кто - то уже с этим сталкивался?
Запрос:
INS ERT IN TO #tt25 (_Q_001_F_000TRef, _Q_001_F_000RRef, _Q_001_F_001RRef, _Q_001_F_002, _Q_001_F_003, _Q_001_F_004, _Q_001_F_005, _Q_001_F_006) SEL ECT
T1._Q_003_F_000TRef,
T1._Q_003_F_000RRef,
T1._Q_003_F_001RRef,
T1._Q_003_F_003,
T1._Q_003_F_004,
T1._Q_003_F_005,
T1._Q_003_F_002,
T2._Q_001_F_001
FR OM #tt21 T1 WITH(NOLOCK)
LEFT OUTER JOIN #tt16 T2 WITH(NOLOCK)
ON (DATEADD(DAY,CAST(DATEPART(DAY,T1._Q_003_F_005) AS NUMERIC(4)) - 1,DATEADD(MONTH,CAST(DATEPART(MONTH,T1._Q_003_F_005) AS NUMERIC(4)) - 1,DATEADD(YEAR,(CAST(DATEPART(YEAR,T1._Q_003_F_005) AS NUMERIC(4)) - 2000) - 2000,*P1))) = T2._Q_001_F_000)
WHERE (T1._Q_003_F_004 > *P2)
ПоказатьПо теме из базы знаний
- Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика
- Как найти неиспользуемый код
- Несколько альтернативных универсальных способов подбора ссылок при переносах данных
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Если код в конфигурации, можно попробовать глобальным поиском (Ctrl+Shift+F) поискать "ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ("
DATEADD(DAY,CAST(DATEPART(DAY,T1._Q_003_F_005) AS NUMERIC(4)) - 1,DATEADD(MONTH,CAST(DATEPART(MONTH,T1._Q_003_F_005) AS NUMERIC(4)) - 1,DATEADD(YEAR,(CAST(DATEPART(YEAR,T1._Q_003_F_005) AS NUMERIC(4)) - 2000) - 2000,*P1)))
Если код в конфигурации, можно попробовать глобальным поиском (Ctrl+Shift+F) поискать "ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ("
походу это кто то руками писал у вас. идет заполнение некой таблицы в sql с алиасом tt25, больше похоже на резервирование. если найдете какой таблице соответсвует #tt25 станет понятно, возможно это регистр накопления и здесь производится расчет себестоимости, так как параметров не много и ссылок на справочники в таблице всего 3 (организация, склад, номенклатура)
Подобные запросы из 1С - это ВЫБРАТЬ * ПОМЕСТИТЬ ВТХХХ ИЗ ВТУУУ". Такого хлама в 1С полно, ибо 1С-ных школьников учат в любой непонятной ситуации все выгружать во временные таблицы и все группировать (от греха подальше).
Для начала: обновите статистику, очистите процедурный кэш, приучите систему обновлять статистику минимум раз в сутки, реиндексировать тоже раз в сутки и дефрагментировать индексы раз в неделю. И будет вам счастье...
Для начала: обновите статистику, очистите процедурный кэш, приучите систему обновлять статистику минимум раз в сутки, реиндексировать тоже раз в сутки и дефрагментировать индексы раз в неделю. И будет вам счастье...
Включайте технологический журнал по событию DBMSSQL И SDBL, и ищите (лучше через grep) строки "ON (DATEADD(DAY,CAST(DATEPART(DAY,T1._Q_003_F_005) AS NUMERIC(4))" и другие куски вашего запроса.
Как найдете - увидите, из какого модуля и какой строки кода запрос вызывается.
Как найдете - увидите, из какого модуля и какой строки кода запрос вызывается.
(13) Не факт что можно найти данный запрос. Он может собираться динамически, пробелы и прочее. Это может быть внешний отчет.
Вообщем вариантов куча.
Тут либо самому посмотреть к каким таблицам обращается и перевести на "человеческий" язык запрос и понять, что запрашивают. Или воспользоватся советом в (12).
А дальше уже искать обращение по таблице.
Вообщем вариантов куча.
Тут либо самому посмотреть к каким таблицам обращается и перевести на "человеческий" язык запрос и понять, что запрашивают. Или воспользоватся советом в (12).
А дальше уже искать обращение по таблице.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот