Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Очень медленно открывается отчет SSRS, в IE. / 12 сообщений из 12, страница 1 из 1
09.07.2012, 16:00
    #37871841
fivtis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
Добрый день. Очень нужна помощь.
Есть отчет построенный в REPORT BUILDER 3.0.
Отчет публикуется на sharepoint 2010, используемый в связке с SQL server 2008 R2.
Отчет используется вместе с другими отчетами, т.е. вызывается из тела других отчетов, принимая передаваемые в него параметры.
Проблема в следующем:
При отладке отчета в report builder все отлично работает, но после публикации на SharePoint отчет открывается крайне медленно: 2-4 минуты (через IE, при этом загрузка ЦП на стороне пользователя 50-70%, сервер вообще не загружен).
Если просматривать отчет через firefox то открывается немного быстрее -1-2 минуты и нагрузка на ЦП, поменьше.
Сами запросы на выборку данных отрабатывают быстро. Все запросы используемые в DATASETs отчета выполняются за 0 секунд в management studio.
На форме читал что подобные проблемы могут быть связаны с использованием параметров фильров.
Кто нибудь сталкивался с подобными проблемами ? Подскажите в какую сторону копать ?
Если нужно могу предоставить больше информации.
Во вложении сам RDL.
...
Рейтинг: 0 / 0
09.07.2012, 18:31
    #37872098
виги
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
fivtis,

А просто браузером отчет смотрели?
http://сервер/ReportServer/Pages/ReportViewer.aspx?
...
Рейтинг: 0 / 0
09.07.2012, 19:22
    #37872136
fivtis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
виги,

В моем случае если щелкнуть левой кнопкой мыши непосредственно на сам RDL, то в адресной строке будет такая ссылка:
http ://yug/app/portal/_layouts/ReportServer/ RSViewerPage.aspx ?rv:RelativeReportUrl=/app/portal/dashboard_pm/markom/ det_for_good_dash_board.rdl &Source=http ://yug/app/portal/dashboard_pm/Forms/current.aspx?RootFolder=%2Fapp%2Fportal%2Fdashboard%5Fpm%2Fmarkom&FolderCTID=0x0120005DFFA26CDD17BC49813AF5F9DD1A8861&View={D2468007-7A69-4F45-817A-1D16C1510043}&DefaultItemOpen=1&DefaultItemOpen=1

А при вызове отчета из тела "родительского" отчета в адресной строке браузера будет следующее:

http ://yug/app/portal/_layouts/ReportServer/ RSViewerPage.aspx ?rv:RelativeReportUrl=/app/portal/dashboard_pm/markom/ main_dashboard.rdl & Source= http ://yug/app/portal/dashboard_pm/Forms/current.aspx ?RootFolder=%2Fapp%2Fportal%2Fdashboard%5Fpm%2Fmarkom&FolderCTID =0x0120005DFFA26CDD17BC49813AF5F9DD1A8861 &View={D2468007-7A69-4F45-817A-1D16C1510043} &DefaultItemOpen=1

т.е. просмотр отчета выполняется через RSViewerPage.aspx ,
а вот такой каталог как Вы указали вообще отсутствует:
... /ReportServer/Pages/ReportViewer.aspx?...

Что значит посмотреть просто браузером?
...
Рейтинг: 0 / 0
10.07.2012, 10:34
    #37872722
user6278
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
fivtis,

Какова скорость работы отчета если его просто опубликовать на Report Server'e, без использования Sharepoint 2010?
...
Рейтинг: 0 / 0
12.07.2012, 17:22
    #37877035
fivtis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
Предыдущая проблема была решена путем отключения значений по умолчанию в фильтрах отчета- отчет заработал относительно быстро (15 сек).
Еще огромная одна просьба, во вложении отчет который так же работает очень медленно - 50 секунд.
Там всего 3 датасета.
в первых двух определяются значения для фильтров по умолчанию.
в третьем , выбираются топ 10покупателей.

Все 3 датасета отрабатывают за 0 секунд в management studio.

Посмотрите пожалуйста в отчет во вложении, возможно кто то знает как можно его оптимизировать...

Ниже привожу запросы из ДС:
ФИЛЬТР по группам:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT 
distinct [группа]
 FROM [Photo_report].[dbo].[TBL_SPS_BUD_PLAN_FACT_GROUP_TER] t
where
t.[Категория] in -- ограничения полномочий по категориям
 (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user and p.Dim_id in (3,4))
or
t.[Группа] in -- ограничения полномочий по категориям
(select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user and p.Dim_id in (3,4))
union
select 'прочее'  --  обрабатываем ситуацию когда запрос ни чего не вернул (что бы не было пустого фильтра)



Фильтр по торговым маркам :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT  distinct  t.[Бренд]
 FROM [Photo_report].[dbo].[TBL_SPS_BUD_PLAN_FACT_GR2_MNF] t
where
 
(t.[Категория] in (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user /*'MC\GUBINSKIY-A'*/ and p.Dim_id in (3,4))
or
t.[Группа] in (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user /*'MC\GUBINSKIY-A'*/ and p.Dim_id in (3,4))
 ) 
 and (t.[План]+t.[Факт]+t.[Вып пл]+t.[Остаток о]+t.[Остаток т]+t.[Наценка БМ] <>0 )
 union
select 'прочее '  



Сам датасет топ 10:

Код: sql
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.
SELECT top 10
[dk_kName]

      ,sum([cost_acc])[cost_acc]
      ,sum([cost_cur_price])[cost_cur_price]
      
  
  FROM [Photo_report].[dbo].[TBL_SPS_fact_sale_good_gr_ter_ks_kontr] t
 left join (SELECT distinct 
       [Категория]
      ,[Группа]
        FROM [Photo_report].[dbo].[TBL_SPS_BUD_PLAN_KS_GR_vPLAN]) gk on t.[BUDMGRName] =gk.Группа

where 
(
gk.[Категория] in (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user   and p.Dim_id in (3))
or
t.[BUDMGRName] in (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user   and p.Dim_id in (3))
)and t.[BUDMGRName] in (@gr)
and t.[mnf_name] in (@mnf)

group by [dk_kName]
 

order by sum([cost_cur_price]) desc




Помогите пожалуйста. Очень нужно.
...
Рейтинг: 0 / 0
12.07.2012, 20:02
    #37877264
fivtis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
Тестируя данный отчет заметил следующее :
Если в запросе на выборку данных закомментировать параметры то отчет работает быстро открытие происходит за 5 секунд:
т.е. проблема 100 % связана с параметрами или с длиной строки которая содержится в переменных @gr и @mnf.
Если же просто уменьшить кол-во отмеченных чекбоксами значений, то отчет строится 40 секунд.

В прошлом посте не указал сколько строк возвращают датасеты:
1. Фильтр по группам 51 строка (в менеджмент студии 0 секунд)
2. Фильтр по брендам 160 строк (в менеджмент студии 0 секунд)
3. Главный датасет, понятное дело 10 строк (в менеджмент студии 0 секунд)



ниже привожу главный датасет, где закоменчены параметры, в этом случае отчет работает быстро:


Код: sql
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.
SELECT top 10
[dk_kName]

      ,sum([cost_acc])[cost_acc]
      ,sum([cost_cur_price])[cost_cur_price]
      
  
  FROM [Photo_report].[dbo].[TBL_SPS_fact_sale_good_gr_ter_ks_kontr] t
 left join (SELECT distinct 
       [Категория]
      ,[Группа]
        FROM [Photo_report].[dbo].[TBL_SPS_BUD_PLAN_KS_GR_vPLAN]) gk on t.[BUDMGRName] =gk.Группа

where 
(
gk.[Категория] in (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user   and p.Dim_id in (3))
or
t.[BUDMGRName] in (select p.dim_member from [Photo_report].[dbo].[tbl_Granted_Dim_Perms] p 
where p.user_Name_Domain=current_user   and p.Dim_id in (3))
)
--Закоментировали ограничения: 
--and t.[BUDMGRName] in (@gr)
--and t.[mnf_name] in (@mnf)

group by [dk_kName]
 

order by sum([cost_cur_price]) desc




При этом полный select * к таблице из главного датасета выполняется за 2 сек 80425 строк :
Код: sql
1.
2.
  select *
  FROM [Photo_report].[dbo].[TBL_SPS_fact_sale_good_gr_ter_ks_kontr]
...
Рейтинг: 0 / 0
13.07.2012, 10:01
    #37877659
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
А вы тестировали в студии подставляя параметры эти? Вместо @gr и @mnf запихав запросы? А еще лучше список значений, так как передает его репортинг. Все таки IN не самый шустрый оператор.
И вообще не нравится мне как репортинг отрабатывает такую подстановку параметра. Мы сразу у себя отказались от такой схемы. Все выборки живут в хранимках, параметры туда передаются длинной строкой с разделителями varchar(max), потом в процедуре функцией разворачиваем параметры в таблицу и скармливаем запросу.
Ну и житие запроса в хранимке просто удобное решение.
...
Рейтинг: 0 / 0
13.07.2012, 10:30
    #37877714
fivtis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
Klick,

Да, вчера специально подставлял все возможные значения параметров, в главный запрос.
Т.е. в запросе явно прописал :
where gr in ('группа 1','группа 2'..) and mnf in ('бренд1','бренд2'..)
Отрабатывает быстро - 0 сек.

Расскажите пожалуйста как Вы используете сохраненки для этой цели?

авторВсе выборки живут в хранимках, параметры туда передаются длинной строкой с разделителями varchar(max), потом в процедуре функцией разворачиваем параметры в таблицу и скармливаем запросу.
Как Вы это делаете расскажите, возможно это то решение которое меня спасет.

Т.е. как вы передаете параметры в сохраненную процедуру?
...
Рейтинг: 0 / 0
13.07.2012, 11:15
    #37877789
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
fivtis,

В самой процедуре IN параметр:
Код: sql
1.
@Сompanies varchar(MAX)


Внутри в where секции примерно такая конституция:
Код: sql
1.
[Company] IN (SELECT value FROM dbo.ParamTable(@Companies))



Функция ParamTable:
Код: sql
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.
CREATE FUNCTION [dbo].[ParamTable](@paramStr NVARCHAR(MAX))
RETURNS @t TABLE (value NVARCHAR(450) NOT NULL PRIMARY KEY)
BEGIN
    IF @paramStr IS NULL
		RETURN

    DECLARE @i BIGINT 
    DECLARE @value NVARCHAR(MAX)

    WHILE ISNULL(@i, 1) <> 0
    BEGIN
        SET @i = CHARINDEX(CHAR(10), @paramStr)
        IF @i <> 0 BEGIN
            SET @value = LEFT(@paramStr, @i - 1)
            SET @paramStr = RIGHT(@paramStr, LEN(@paramStr) - @i)
        END ELSE
            SET @value = @paramStr

		INSERT @t(value) 
		SELECT @value
		WHERE @value NOT IN (SELECT value FROM @t)
    END

    RETURN    
END



Передача параметра из репортинга:
Код: sql
1.
= Join(Parameters!Companies.Value, Chr(10))



Ну и конечно, чтобы из хранимки вернулся рекордсет нужно чтобы последней командой был select.
Вызов хранимки в репортинге:
Код: sql
1.
exeс Proc @param1, @param2
...
Рейтинг: 0 / 0
13.07.2012, 12:34
    #37877964
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
1) Мигрировать на SQL2012. В нем интеграция с SP2010 реализована через Service Application, и Microsoft утверждает, что скорость обработки отчетов выше.
2) Если нет возможности перейти на SQL2012, то установить все доступные обновления для SQL2008R2 и SP2010 (это в любом случае). По ходу обновлений производительность SSRS повышали (в частности в части интеграции с SP).
3) Внимательно проанализировать количество параметров, а также количество возможных значений каждого параметра. Если количество возможных значений (условно) >100, то еще раз подумать над структурой параметров отчета.

Из моей практики симптомы высокой загрузки процессора браузером (IE) как правило связаны с большим количеством значений в параметрах (даже если пользователь выбирает 1 значение, браузер вынужден перелопачивать все значения) и/или сложным дизайном отчета. При этом запросы в SSMS и отчет в BIDS могут выполняться действительно очень быстро.
...
Рейтинг: 0 / 0
13.07.2012, 12:48
    #37877996
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
Bigheadman3) Внимательно проанализировать количество параметров, а также количество возможных значений каждого параметра. Если количество возможных значений (условно) >100, то еще раз подумать над структурой параметров отчета.


Согласен, но у меня, например, в отчетах параметры нередко тащат за собой over 500-600 значений. Не айс, не хорошо, но иначе никак. И ничего отчеты вполне себе летают шустро.
...
Рейтинг: 0 / 0
13.07.2012, 13:37
    #37878131
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно открывается отчет SSRS, в IE.
KlickСогласен, но у меня, например, в отчетах параметры нередко тащат за собой over 500-600 значений. Не айс, не хорошо, но иначе никак. И ничего отчеты вполне себе летают шустро.500-600 - это уже тяжеловато для IE. Хотя если конфигурация ПК на хорошем уровне, то может работать действительно шустро.
Но вот когда речь идет о тысячах, то совсем плохо становится.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Очень медленно открывается отчет SSRS, в IE. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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