Гость
Форумы / [игнор отключен] [закрыт для гостей] / Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время? / 11 сообщений из 11, страница 1 из 1
01.11.2007, 21:25
    #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
01.11.2007, 22:56
    #34911688
Leshij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Когда выполняется долго, в Enterprise Manager в Management->Current
Activity
смотрим состояние процесса, сопоставленного запросу, в частности, какие
блокировки не дают ему выполняться.
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.11.2007, 09:28
    #34911989
vogenut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Блокировки тут не причем, NOLOCK видите? Судя по планам, выполнение запросов сильно отличаются. Быстрый вариант использует параллелизм и hash джоины, медленный вариант работает через loop джоины. К сожалению, план выбирает сам MS SQL и почему он так далает, сказать трудно.
...
Рейтинг: 0 / 0
02.11.2007, 09:32
    #34911998
vogenut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Еще совет, попробуйте данный отчет прогнать на 8.1.
...
Рейтинг: 0 / 0
06.11.2007, 15:57
    #34919379
max44
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Всем еще раз привет.
А кто ни будь снятые мною трассы смотрел? (прикрепленный файл trace.rar) В этом файле трассы с планом выполнения двух одинаковых запросов которые отработали за разное время, отличается в 10 раз!!!
...
Рейтинг: 0 / 0
06.11.2007, 19:02
    #34920128
Leshij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Я понимаю, что этот вариант был проверен в первую очередь, но все-таки?
Другие задачи на сервере не выполнялись? Запросы других пользователей или
там бэкап кой-нить?
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
06.11.2007, 19:23
    #34920178
max44
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
Leshij
Я понимаю, что этот вариант был проверен в первую очередь, но все-таки?
Другие задачи на сервере не выполнялись? Запросы других пользователей или
там бэкап кой-нить?
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4

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

Это трасса запроса 1С к SQL серверу...
...
Рейтинг: 0 / 0
07.11.2007, 12:39
    #34921588
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один и тот же отчет, на одинаковом наборе данных отрабатывает за разное время?
А можно увидеть еще и сам текст запроса из 1с?
...
Рейтинг: 0 / 0
21.11.2007, 16:59
    #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]