powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
11 сообщений из 11, страница 1 из 1
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34911616
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток.
Дано: на одном и томже наборе данных с одинаковыми параметрами запускается отчет в системе 1С 8.0, этот отчет отрабатывает за разное время, пять раз подряд может выполниться за 30 секунд, а на шестой выполняться более часа? в прикрепленных файлах трассы запросов при нормальной отработке отчета и при подвисании.

Из трасс видно, что затык происходит на запросе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
exec sp_executesql N'SELECT
_AccTtl36008_R._Value1_TYPE _Value1_TYPE,
_AccTtl36008_R._Value1_RTRef _Value1_RTRef,
_AccTtl36008_R._Value1_RRRef _Value1_RRRef,
_AccTtl36008_R._Value3_TYPE _Value3_TYPE,
_AccTtl36008_R._Value3_RTRef _Value3_RTRef,
_AccTtl36008_R._Value3_RRRef _Value3_RRRef,
CASE
WHEN SUM(_AccTtl36008_R._Fld5989) IS NULL
THEN CAST(CAST(0 AS NUMERIC(1,0)) AS NUMERIC(28,2))
ELSE SUM(_AccTtl36008_R._Fld5989)
END _Fld5989Balance,
CASE
WHEN SUM(_AccTtl36008_R._Fld5991) IS NULL
THEN CAST(CAST(0 AS NUMERIC(1,0)) AS NUMERIC(28,3))
ELSE SUM(_AccTtl36008_R._Fld5991)
END _Fld5991Balance
FROM
_AccTtl36008 _AccTtl36008_R WITH(NOLOCK)
INNER JOIN #tt3 #Accsc7db818c7df94164b1aa6d325c1526f3_Accs WITH(NOLOCK)
ON #Accsc7db818c7df94164b1aa6d325c1526f3_Accs._IDRRef = _AccTtl36008_R._AccountRRef AND #Accsc7db818c7df94164b1aa6d325c1526f3_Accs._Cnt = CAST(3 AS NUMERIC(1,0))
WHERE
CASE
WHEN _AccTtl36008_R._Value1_TYPE = 0x08 AND _AccTtl36008_R._Value1_RTRef = 0x0000001D
THEN _AccTtl36008_R._Value1_RRRef
WHEN _AccTtl36008_R._Value1_TYPE IS NULL OR
_AccTtl36008_R._Value1_TYPE NOT IN (0x08) OR
_AccTtl36008_R._Value1_RTRef IS NULL OR
_AccTtl36008_R._Value1_RTRef <> 0x0000001D
THEN NULL
ELSE 0x00000000000000000000000000000000
END IN (SELECT
#tt5._REFFIELDRRef f_5
FROM
#tt5 WITH(NOLOCK)) AND _AccTtl36008_R._Period = @P1 AND (_AccTtl36008_R._Fld5989 <> CAST(@P2 AS NUMERIC(1,0)) OR
_AccTtl36008_R._Fld5991 <> CAST(@P2 AS NUMERIC(1,0)))
GROUP BY
_AccTtl36008_R._Value1_TYPE,
_AccTtl36008_R._Value1_RTRef,
_AccTtl36008_R._Value1_RRRef,
_AccTtl36008_R._Value3_TYPE,
_AccTtl36008_R._Value3_RTRef,
_AccTtl36008_R._Value3_RRRef
HAVING
CASE
WHEN SUM(_AccTtl36008_R._Fld5989) IS NULL
THEN CAST(CAST(0 AS NUMERIC(1,0)) AS NUMERIC(28,2))
ELSE SUM(_AccTtl36008_R._Fld5989)
END <> CAST(@P2 AS NUMERIC(1,0)) OR
CASE
WHEN SUM(_AccTtl36008_R._Fld5991) IS NULL
THEN CAST(CAST(0 AS NUMERIC(1,0)) AS NUMERIC(28,3))
ELSE SUM(_AccTtl36008_R._Fld5991)
END <> CAST(@P2 AS NUMERIC(1,0))
ORDER BY
_AccTtl36008_R._Value1_TYPE,
_AccTtl36008_R._Value1_RTRef,
_AccTtl36008_R._Value1_RRRef,
_AccTtl36008_R._Value3_TYPE,
_AccTtl36008_R._Value3_RTRef,
_AccTtl36008_R._Value3_RRRef
SELECT @@TRANCOUNT', N'@P1 datetime,@P2 numeric(1,0)', {ts '2007-09-01 00:00:00'},  0 

Еще раз повторюсь, отчет запускается на одном и томже наборе данных с одинаковыми параметрами для выборки (условно говоря выбрали параметры отчета и жмем кнопку сформировать после того как отчет отработает, на 5 - раз он начинает тормозить)

Куда копать? в трассах собрана статистика по плану выполнения...
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34911688
Leshij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда выполняется долго, в Enterprise Manager в Management->Current
Activity
смотрим состояние процесса, сопоставленного запросу, в частности, какие
блокировки не дают ему выполняться.
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34911989
vogenut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блокировки тут не причем, NOLOCK видите? Судя по планам, выполнение запросов сильно отличаются. Быстрый вариант использует параллелизм и hash джоины, медленный вариант работает через loop джоины. К сожалению, план выбирает сам MS SQL и почему он так далает, сказать трудно.
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34911998
vogenut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще совет, попробуйте данный отчет прогнать на 8.1.
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34919379
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем еще раз привет.
А кто ни будь снятые мною трассы смотрел? (прикрепленный файл trace.rar) В этом файле трассы с планом выполнения двух одинаковых запросов которые отработали за разное время, отличается в 10 раз!!!
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34920128
Leshij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понимаю, что этот вариант был проверен в первую очередь, но все-таки?
Другие задачи на сервере не выполнялись? Запросы других пользователей или
там бэкап кой-нить?
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34920178
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leshij
Я понимаю, что этот вариант был проверен в первую очередь, но все-таки?
Другие задачи на сервере не выполнялись? Запросы других пользователей или
там бэкап кой-нить?
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4

Сервер тестовый, ни каких сторонних задач на нем не выполнялось...
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34920927
Ферзь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы выполняете прямой запрос или это аналог запроса 1С?
нужно копать скорее всего в сторону временных таблиц
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34921137
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФерзьВы выполняете прямой запрос или это аналог запроса 1С?
нужно копать скорее всего в сторону временных таблиц

Это трасса запроса 1С к SQL серверу...
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34921588
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно увидеть еще и сам текст запроса из 1с?
...
Рейтинг: 0 / 0
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
    #34956070
max44
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем еще раз привет, Все дело оказалось в индексах, точнее в их сильно фрагментации. В течении дня над БД делаю несколько раз следующие операции (назовем их "регламентные"):

дефрагментация индексов:
Код: plaintext
EXEC sp_MSforeachtable @command1='ALTER INDEX ALL ON ? REORGANIZE'

обновление статистики:
Код: plaintext
EXEC sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'

очистка процедурного кэша:
Код: plaintext
DBCC FREEPROCCACHE

P.S. во время дефрагментации очень быстро заполняется лог БД, поэтому до начала регламентных процедур перевожу БД в режим восстановления Simpel, потом обратно в Full.

Всем кто откликнулся Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]