Отчет через stimulsoft вэб страницу очень медленный.

Обсуждение Stimulsoft Reports.WEB
Agyn
Сообщения: 11
Зарегистрирован: 04 ноя 2016, 09:13

Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Agyn »

Здравствуйте.
Sql запрос, который выполняется через веб страницу стимул софт зависает на ms sql server-е Но при этом если запускать sql запрос на sql management studio запрос отрабатывает нормально. Обе запроса делаются из удаленного компьютера.

Проект сделан ASP.net MVC 5. База данных(MS sql server 2012) очень много записей.
Стимул софт дизайнер версии 2015.1. Версии библиотеки в ASP.net вэб приложении Stimulsoft.Base, Version=2015.1.0.0,
Stimulsoft.Base, Version=2015.1.0.0, Stimulsoft.Report.Mvc, Version=2015.1.0.0.
В проекте есть отчеты где делаются запрос
по не нагруженным таблицам- они отрабатывают нормально. Есть отчет где
запрос идет по нагруженным таблицам. Когда sql скрипт выполняется на
прямую в бд запрос отрабатывает, когда отчет выполняется через веб приложение
ASP.net через веб станицы стимул софт очень долго отрабатывает.
В станице проблемного отчета используется следующие компоненты:
Дата начала(datetime), Дата конца(datetime), Пост(Varhcar). Результат отображается в таблице.

Скрипт запроса из sql профайлера.

Код: Выделить всё

exec sp_executesql N'SELECT DISTINCT
	p.Number AS PostNumber,
	p.NameRu AS Post,
	Count(p.NameRu) AS Total,
	Sum(CASE WHEN d.PublicCode = ''0'' THEN 1 ELSE 0 END) AS CountNorth,
Sum(CASE WHEN d.PublicCode = ''2'' THEN 1 ELSE 0 END) AS CountEast,
Sum(CASE WHEN d.PublicCode = ''4'' THEN 1 ELSE 0 END) AS CountSouth,
Sum(CASE WHEN d.PublicCode = ''6'' THEN 1 ELSE 0 END) AS CountWest
FROM Traffic t 
INNER JOIN Camera ON t.CameraId = Camera.Id 
INNER JOIN Direction d ON d.Id = Camera.DirectionId 
INNER JOIN Apk ON Apk.Id = Camera.ApkId 
INNER JOIN Post p ON p.Id = Apk.PostId
WHERE t.GCRecord = 0 
AND t.FixationDateTime >= @StartDate
AND t.FixationDateTime <= @EndDate
AND p.Number != 111
AND (case when @Apk_Post = '''' then @Apk_Post else p.NameRu end) = @Apk_Post
GROUP BY p.Number, p.NameRu
ORDER BY Post;
',N'@StartDate datetime,@EndDate datetime,@Apk_Post varchar(100)',@StartDate='2016-10-09 00:00:00',@EndDate='2016-11-04 00:00:00',@Apk_Post='Абая - Ауэзова'
Последний раз редактировалось Agyn 08 ноя 2016, 12:34, всего редактировалось 1 раз.
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Aleksey »

Здравствуйте,

Не могли бы более подробно описать свою проблему. Какой компонент используется, какая версия?

Спасибо.
Agyn
Сообщения: 11
Зарегистрирован: 04 ноя 2016, 09:13

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Agyn »

Проект сделан ASP.net. База данных(MS sql server) очень много записей. Стимул софт версии 2015.1. В проекте есть отчеты где делаются запрос по не нагруженным таблицам- они отрабатывают нормально. Есть отчет где запрос идет по нагруженным таблицам. Когда sql скрипт выполняется на прямую в бд запрос отрабатывает, когда отчет выполняется через веб приложение ASP.net через веб станицы стимул софт очень долго отрабатывает. В станице проблемного отчета используется следующие компоненты: Дата начала(datetime), Дата конца(datetime), Пост(Varhcar). Результат отображается в таблице.
Agyn
Сообщения: 11
Зарегистрирован: 04 ноя 2016, 09:13

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Agyn »

Aleksey писал(а):Здравствуйте,

Не могли бы более подробно описать свою проблему. Какой компонент используется, какая версия?

Спасибо.

Проект сделан ASP.net. База данных(MS sql server) очень много записей. Стимул софт версии 2015.1. В проекте есть отчеты где делаются запрос по не нагруженным таблицам- они отрабатывают нормально. Есть отчет где запрос идет по нагруженным таблицам. Когда sql скрипт выполняется на прямую в бд запрос отрабатывает, когда отчет выполняется через веб приложение ASP.net через веб станицы стимул софт очень долго отрабатывает. В станице проблемного отчета используется следующие компоненты: Дата начала(datetime), Дата конца(datetime), Пост(Varhcar). Результат отображается в таблице.
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Aleksey »

Здравствуйте,

Уточните какой вьювер используется (flash, html5), а так же, очень много записей - это сколько? И сколько страниц получается в отчете.
Время построения зависит от количества данных, данные выгружаются полностью в DataSet и затем передаются в отчет на клиента.

Спасибо.
Agyn
Сообщения: 11
Зарегистрирован: 04 ноя 2016, 09:13

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Agyn »

Используем MVC вьювер(Html и Javascript). Записей больше чем десятки миллионов.
Получаем максимум 4 страницы. Мы выдаем аналитические данные.
В основном считаем, используем ресурсоемкий sql функцию count. Допустим если запустит отчет с периодом
больше месяца на прямую в БД он отработает за 60-70 секунд. А если с приложения отчет отрабатывает очень долго.
Мне кажется проблема не отображением данных, а исходящем sql запросе от страницы отчета. Когда делал профилирование
запроса, sql запрос приходил но потом висел у sql server-а.
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Aleksey »

здравствуйте,

Пожалуйста, попробуйте выполнить построение отчета при помощи кода, и уточните зависает ли в данном случае:
report.Load("report.mrt");
report.Render(false);
report.SaveDocument("report.mdc");

а так же, протестируйте время построения.
Если все строится хорошо, попробуйте использовать во вьювере уже построенный MDC отчет, то есть

report = new StiReport();
report.LoadDocument("report.mdc");

Спасибо.
Agyn
Сообщения: 11
Зарегистрирован: 04 ноя 2016, 09:13

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Agyn »

Добрый день.

У нас предварительно сам отчет строится.Далее нам надо указать параметры и часть параметров
для выбора это значения подгруженные из БД. Пользователь выбирает параметры и запускает отчет
(селект в БД выполняется по конструкции EXEC sp_prepexec) и вот как раз на этом этапе процесс
подвисает и подвисает на уровне БД, то есть такое ощущение, что как будто отчет либо не понимает то,
что ему отвечает БД либо как-то до конца не верно передаются параметры на сторону БД.

Спасибо.
Agyn
Сообщения: 11
Зарегистрирован: 04 ноя 2016, 09:13

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Agyn »

а так же, протестируйте время построения.
Если все строится хорошо, попробуйте использовать во вьювере уже построенный MDC отчет, то есть

report = new StiReport();
report.LoadDocument("report.mdc");
Отчет строится но пропадают компоненты входного параметра(Дата начало, Дата конца). Потом когда возвращаю созданный "report.mdc " выходит Internal server Error.
Aleksey
Сообщения: 2793
Зарегистрирован: 22 апр 2010, 06:57

Re: Отчет через stimulsoft вэб страницу очень медленный.

Сообщение Aleksey »

Здравствуйте,

Уточните, пожалуйста, установлен ли для источников данных Command Timeout.
А также уточните, что значит пропадают компоненты входного параметра?

Спасибо.
Ответить